题目链接:51nod 1181 质数中的质数(质数筛法) #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; ; ]; void getPrime(){ memset(prime, , sizeof(prime)); ;i <= N; i++){ if(!prime[i]) pr…
如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数.例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数.现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用质数筛法来做).   Input 输入一个数N(N <= 10^6) Output 输出>=N的最小的质数中的质数. Input示例 20 Output示例 31解:最初版本 15 ms 9812 KB #include <stdio.h> #define MAXN 2000000 i…
如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数.例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数.现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用质数筛法来做). Solution 拿个筛子来筛筛然后暴力统计就可以了 我居然被 \(0\) 卡掉了,我是智障 #include <bits/stdc++.h> using namespace std; const int MAXN = 2000005; int prime[MAXN+1]; //…
1181 质数中的质数(质数筛法) 如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数.例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数.现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用质数筛法来做). 收起 输入 输入一个数N(N <= 10^6) 输出 输出>=N的最小的质数中的质数. 输入样例 20 输出样例 31 题解:         1.记录质数编号:筛选出质数(未标记的)并编号,后将所有由质数i组成的数标记:         2.…
1181 质数中的质数(质数筛法) 题目来源: Sgu 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数.例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数.现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用质数筛法来做).   Input 输入一个数N(N <= 10^6) Output 输出>=N的最小的质数中的质数. Input示例 20 Outp…
题目链接 51nod 1277 字符串中的最大值 题解 对于单串,考虑多串的fail树,发现next数组的关系形成树形结构 建出next树,对于每一个前缀,他出现的次数就是他子树的大小 代码 #include<cstdio> #include<cstring> #include<algorithm> inline int read() { int x = 0,f = 1; char c = getchar(); while(c < '0' || c > '9…
51nod 1785 数据流中的算法 题面 动态求平均数.方差.中位数. 题解 这道题的坑: 平均数在答案中是向下取整输出并在后面添加".00" 方差:平方的平均数减去平均数的平方 中位数:维护两个multiset,一个存较小的一半元素,另一个存较大的一半.当两个multiset的大小相差超过二时,把较大的multiset中多出来的那个放到另一个multiset中.这样就知道中位数或中间两个数了. 注意multiset中,st.erase(1)会删除所有大小为1的元素! #includ…
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1181 思路:欧拉筛出所有素数和一个数的判定,找到大于n的最小质数序号p,并且判断p是不是质数,输出这个数. /* ━━━━━┒ギリギリ♂ eye! ┓┏┓┏┓┃キリキリ♂ mind! ┛┗┛┗┛┃\○/ ┓┏┓┏┓┃ / ┛┗┛┗┛┃ノ) ┓┏┓┏┓┃ ┛┗┛┗┛┃ ┓┏┓┏┓┃ ┛┗┛┗┛┃ ┓┏┓┏┓┃ ┛┗┛┗┛┃ ┓┏┓┏┓┃ ┃┃┃┃┃┃ ┻┻┻┻┻…
解题关键: 注意下标 #include<bits/stdc++.h> #define maxn 10000002 using namespace std; typedef long long ll; ]; ]; int sieve(){ ; fill(is_prime,is_prime+maxn,true); is_prime[]=is_prime[]=false; ;i<maxn;i++){ if(is_prime[i]){ prime[p++]=i; *i;j<=maxn;j+…
题目:http://www.51nod.com/Challenge/Problem.html#!#problemId=1362 首先,\( f[i][j] \) 是一个 \( i \) 次多项式: 如果考虑差分,用一个列向量维护 0 次差分到 \( n \) 次差分即可,在第 \( n \) 次上差分数组已经是一个常数: 最后一行再维护一个 0 次差分的前缀和,0 次差分其实就是答案: 为了预处理 0 位置上的各次差分值,一开始先 n^2 求出 \( f[0][0] \) 到 \( f[n][n…