[题解]BZOJ1004 序列函数

原题找不到了,应该是usaco之类的题目吧。给一个可以交题的链接:http://www.cqoi.net:2012/problem.php?id=1004

思路:将素数一个一个往里乘,保证扫描的顺序是从小到大的就可以了。思路跟usaco training的丑数有点像,算是那道题的简单版吧。

我的实现:

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 #include <cstring>
 5 using namespace std;
 6 #define MAXN 10020
 7 #define INF 100000000000000000
 8 #define llt long long
 9 llt N,n,ans;
10 llt c[5],Num[5],mul[MAXN];
11 inline void Get_llt(llt &Ret)
12 {
13     char ch;
14     bool flag=false;
15     for(;ch=getchar(),ch<‘0‘||ch>‘9‘;)
16         if(ch==‘-‘)
17             flag=true;
18     for(Ret=ch-‘0‘;ch=getchar(),ch>=‘0‘&&ch<=‘9‘;Ret=Ret*10+ch-‘0‘);
19     flag&&(Ret=-Ret);
20 }
21 int main()
22 {
23     llt i,j;
24     Get_llt(N);
25     while(N--)
26     {
27         Get_llt(c[1]);Get_llt(c[2]);Get_llt(c[3]);
28         Get_llt(n);
29         mul[0]=1;
30         memset(Num,0,sizeof(Num));
31         for(i=0;i<n;i++)
32         {
33             ans=INF;
34             for(j=1;j<=3;j++)
35             {
36                 while(c[j]*mul[Num[j]]<=mul[i])
37                     Num[j]++;
38                 ans=min(ans,c[j]*mul[Num[j]]);
39             }
40             mul[i+1]=ans;
41         }
42         printf("%lld\n",mul[i]);
43     }
44     return 0;
45 }

[题解]BZOJ1004 序列函数,布布扣,bubuko.com

时间: 2024-10-15 08:53:49

[题解]BZOJ1004 序列函数的相关文章

r语言之生成规则序列,规则序列函数及用法

在生成序列时,“:”的优先级最高 (1)从1到20的整数序列: > 1:20 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (2)用函数seq生成实数等差序列:(两种表示方法) seq(start,end,d)     start表示起点,end表示终点,d表示步长. > seq(1,20,2) [1] 1 3 5 7 9 11 13 15 17 19> seq(1,20,3)[1] 1 4 7 10 13 16 19 &g

题解:序列 (Standard IO)

题解 序列 (Standard IO) Time Limits: 1000 ms  Memory Limits: 262144 KB  Detailed Limits Description Fiugou想要在一个长度为N的序列A中找到不同位置的三个数,以这三个数为三边长来构成一个三角形.但是它希望在满足条件下,这三个数的位置尽量靠前.具体地,设这三个数的为Ai,Aj,Ak(i<j<k), Fiugou希望k尽量小:当k相等时,满足j尽量小:当k,j均相等时,满足i尽量小.但是这个序列中的数可

个人永久性免费-Excel催化剂功能第36波-新增序列函数用于生成规律性的循环重复或间隔序列

啃过Excel函数的表哥表姐们,一定对函数的嵌套.数组公式等高级的应用有很深的体会,威力是大,但也烧死不少脑细胞,不少人就在这样的绕函数中光荣地牺牲了,走向从入门到放弃.Excel催化剂的创立,初衷就是为了让普通用户,借助类似化学催化剂的作用,让平常难以有反应的常规使用,能够瞬间被点燃,借力完成过去很难完成的事情.此篇给大家介绍一些过往用函数潜逃较为复杂完成的事情,如今仅通过简单的一个自定义函数即可完成. 文章出处说明 原文在简书上发表,再同步到Excel催化剂微信公众号或其他平台上,文章后续有

【题解】序列

题目描述 一个长度为k的整数序列b1,b2,...,bk(1≤b1≤b2≤...≤bk≤N)称为“好序列”当且仅当后一个数是前一个数的倍数,即bi+1是bi的倍数对任意的i(1≤i≤k-1)成立. 给定N和k,请算出有多少个长度为k的“好序列”,答案对1000000007取模. 输入格式 一行,包含2个用空格隔开的整数N和k. 输出格式 一行,包含一个整数,表示长度为k的“好序列”的个数对1000000007取模后的结果. 输入样例 3 2 输出样例 5 数据规模 对于40%的数据,1≤N≤30

Leetcode 与树(TreeNode )相关的题解测试工具函数总结

LeetCode收录了许多互联网公司的算法题目,被称为刷题神器.最近在剑指Offer上也刷了一些题目,发现涉及到数据结构类的题目,比如说"树"."链表"这种题目,如果想在本地IDE进行测试,除了完成题目要求的算法外,还需要写一些辅助函数,比如树的创建,遍历等,由于这些函数平时用到的地方比较多,并且也能加深对常用数据结构的理解,这里将Leetcode中与树(TreeNode)相关题目会用到的测试辅助函数做一个总结. 代码文件说明 LeetCode 剑指Offer在线编

bzoj 1874 取石子游戏 题解 &amp;amp; SG函数初探

[原题] 1874: [BeiJing2009 WinterCamp]取石子游戏 Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 334  Solved: 122 [Submit][Status] Description 小H和小Z正在玩一个取石子游戏. 取石子游戏的规则是这种,每一个人每次能够从一堆石子中取出若干个石子,每次取石子的个数有限制,谁不能取石子时就会输掉游戏. 小H先进行操作,他想问你他是否有必胜策略,假设有,第一步怎样取石子. In

luogu2568GCD题解--欧拉函数

题目链接 https://www.luogu.org/problemnew/show/P2568 分析 题目即求\(\sum_{i=1}^N \sum_{j=1}^N [gcd(i,j)\) \(is\) \(a\) \(prime\) \(number\) \(]\) 我们提出这个素数变成\(\sum_p \sum_{i=1}^{\frac{N}{p} \ } \sum_{j=1}^{\frac{N}{p} \ } [gcd(i,j)\) \(is\) \(1]\) 对于后面两个\(sigma

【题解】序列终结者

题目链接 \(splay\)维护区间加,区间翻转,区间\(max\). 维护标记,区间加标记和区间翻转标记.记住两个是同级的,都要更新. 更详细的解释请参考笔者的题解:数列. #include<cstdio> #include<iostream> #include<cstring> using namespace std; const int MAXN=5e5+10; const int inf=2e9; int n,m,id,rt,vx[MAXN]; struct S

序列函数

row_number:会对所有数值,输出不同的序号,序号唯一且连续,如:1.2.3.4.5. rank:会对相同数值,输出相同的序号,而且下一个序号间断,如:1.1.3.3.5. dense_rank:会对相同数值,输出相同的序号,但下一个序号不间断,如:1.1.2.2.3. 1.ROW_NUMBER() row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后