vijosP1359 Superprime】的更多相关文章

vijosP1359 Superprime 链接:https://vijos.org/p/1359 [思路] 搜索+数学. 很明显的搜索,依次确定每一个数,用参数sum记录dfs即可. 本题的关键在于如何快速判断大素数. 这里素数的判定用到了一个O(sqrt(n))的筛选+试除法,如下: 1.  构造sqrt(n)以内的素数表与素数筛. 2.  对于询问n如果位于sqrt(n)之内则直接查素数筛. 3.  否则,用素数表中的数依次试除. [代码] #include<iostream> #inc…
P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib 284通过 425提交 题目提供者该用户不存在 标签USACO 难度普及- 提交  讨论  题解 最新讨论 超时怎么办? 题目描述 农民约翰的母牛总是产生最好的肋骨.你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们.农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二…
题目大意:素数表2,3,5,7,11.....如果一个素数所在的位置还是素数,那么这个素数就是超级素数,比如3在第2位置,那么3就是超级素数.....现在给你一个数,求出来这个数由最少的超级素数的和组成,输出这个超级素数. 分析:因为给的数字并不大,所以直接用完全背包求出来即可. 代码如下: =======================================================================================================…
时间限制:0.25s 空间限制:4M 题目大意:                 在从下标1开始素数表里,下标为素数的素数,称为超级素数(Super-prime),给出一个n(n<=10000),求最少能用几个超级素数的和表示,并以降序输出这些超级素数. Sample Input 6 Sample Output 2 3 3 {=============} 分析:           读入n以后,先将不大于n的Super-prime筛出,然后DP 简单点的直接用完全背包DP, 稍微优化一点,减少一…
题目链接:http://acm.swust.edu.cn/problem/799/ Time limit(ms): 1000 Memory limit(kb): 10000   Description Butchering Farmer John's cows always yields the best prime rib. You can tell prime ribs by looking at the digits lovingly stamped across them, one by…
题意:用最少的super-prime组成n; 找出所有的super-prime数,只有202个.用完全背包记录能取到n值的最少数量.再找出7要哪些元素. #include <iostream> #include <cstdio> #include <cmath> #include <algorithm> #include <vector> #include <iomanip> #include <cstring> #inc…
116. Index of super-prime time limit per test: 0.25 sec. memory limit per test: 4096 KB Let P1, P2, … ,PN, … be a sequence of prime numbers. Super-prime number is such a prime number that its current number in prime numbers sequence is a prime number…
Index of super-prime Problem's Link Mean: 如果一个素数所在的位置还是素数,那么这个素数就是超级素数,比如3在第2位置,那么3就是超级素数. 现在给你一个数,求出来这个数由最少的超级素数的和组成,输出这个超级素数. analyse: 很简单的完全背包,不需要二进制压缩,也不必考虑容量. Time complexity: O(N) view code ) || )         || )        ; () ) )        ) || ) )  …
Superprime 描述 农民约翰的母牛总是生产出最好的肋骨.你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们. 农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说:7 3 3 1全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数. 7331 被叫做长度 4 的特殊质数. 写一个程序对给定的肋骨的数目 N (1<=N<=8),求出所有的特殊质数.数字1不…
Superprime Rib Butchering Farmer John's cows always yields the best prime rib. You can tell prime ribs by looking at the digits lovingly stamped across them, one by one, by FJ and the USDA. Farmer John ensures that a purchaser of his prime ribs gets…
P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib 题目描述 农民约翰的母牛总是产生最好的肋骨.你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们.农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数. 7331 被叫做长度 4 的特殊质数.写一个程序对给定的肋骨的数…
洛谷 P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib 洛谷传送门 JDOJ 1673: Superprime Rib JDOJ传送门 题目描述 农民约翰的母牛总是产生最好的肋骨.你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们.农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根…
洛谷P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib 水题一道…… 题目描述 农民约翰的母牛总是产生最好的肋骨.你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们.农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数. 7331 被叫做长度 4 的特殊质数.写一个程…
/* TASK: sprime LANG: C++ SOLVE: dfs,后面每增加一位,判断当前是否为素数. 第一位不能为0 */ #include<cstdio> int n; void dfs(int x,int d){ for(int i=2;i<=x/i;i++) if(x%i==0)return; if(x==1)return; if(d==n){ printf("%d\n",x); return; } for(int i=(d==0);i<10;i…
题意:给出n,输出n位超级质数,超级质数的定义为“依次去掉右边一位后仍然为质数的数” 因为一个n位质数去掉右边一位数之后仍然为质数,说明它是由n-1位超级质数演变而来的, 同理,n-1位超级质数也由n-2位超级质数演变而来- - -- - 所以按照位数从第一位广搜到n位即可 注意的地方是判重,最开始用的是一个vis[]数组,可是因为位数有8位,mle了 后来又想把每个数分成两半,比如73939133,可以这样判断vis[7393][9133]是否为1,= =后来发现这样用的内存貌似更多= = 最…
这大概是我写的第一个DFS 题目描述 农民约翰的母牛总是产生最好的肋骨.你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们.农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数. 7331 被叫做长度 4 的特殊质数.写一个程序对给定的肋骨的数目 N (1<=N<=8),求出所有的特殊质数.…
深搜,添加数字后如果仍为质数,继续递归. #include <iostream> #include <cstdio> #include <cmath> #include <algorithm> #include <vector> #include <iomanip> #include <cstring> #include <map> #include <queue> #include <set…
[Submit][Status][Forum] Description 农民约翰母牛总是产生最好的肋骨. 你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们. 农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数. 7331 被叫做长度 4 的特殊质数. 写一个程序对给定的肋骨的数目 N (1…
题目 题目描述 超级素数的定义如下:如果有个素数我们从右往左依次去掉一位数,每次去掉一位数剩下的数仍然是素数,那么我们称这个数是超级素数.例如7331,这是一个素数,从右往左依次去掉一位数733, 73, 7,这些数字仍然是素数,所以7331是一个超级素数. 输入一个数字n (1<=n<=8),代表要找的超级素数的长度.现在需要按照从小到大排序的所有长度为n的超级素数. 样例输入 4 样例输出 2333 2339 2393 2399 2939 3119 3137 3733 3739 3793…
sprime解题报告 —— icedream61 博客园(转载请注明出处)------------------------------------------------------------------------------------------------------------------------------------------------[题目] 列出所有N位的超级素数. 所谓超级素数,即指其任意位前缀均为素数.例如7.73.733.7331均为素数,故而7331为超级素数…
题目描述 农民约翰的母牛总是产生最好的肋骨.你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们.农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数. 7331 被叫做长度 4 的特殊质数.写一个程序对给定的肋骨的数目 N (1<=N<=8),求出所有的特殊质数.数字1不被看作一个质数. 输…
链接 分析:满足题目条件的必然是1,2,3,5,7,9这几个数字的组合,DFS按位进行即可,边组合边判断是否合法. /* PROB:sprime ID:wanghan LANG:C++ */ #include "iostream" #include "cstdio" #include "cstring" #include "string" #include "vector" using namespace…
https://vijos.org/p/1359 描述 农民约翰的母牛总是生产出最好的肋骨.你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们. 农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说:7 3 3 1全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数. 7331 被叫做长度 4 的特殊质数. 写一个程序对给定的肋骨的数目 N (1<=N<=8),…
题目传送门 每一个特殊质数都会被从右边切掉,所以除了首位外的其它位数一定都不会是偶数,只能是$1$,$3$,$5$,$7$,$9$ 而每一个特殊质数的首位一定是质数,也就是$2$,$3$,$5$,$7$这四个. 然后大体思路就是一直不停地往初始数上加$1$,$3$,$5$,$7$,$9$,判断是不是质数就可以了. 要做到这些,一个$dfs$就可以了,还是用$for$枚举的话,代码量会有点大. 顺序枚举就可以保证按大小顺序输出. /* ID: Starry21 LANG: C++ TASK: sp…
题目描述 农民约翰的母牛总是产生最好的肋骨.你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们.农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数. 7331 被叫做长度 4 的特殊质数.写一个程序对给定的肋骨的数目 N (1<=N<=8),求出所有的特殊质数.数字1不被看作一个质数. 输…
USACO Chapter 1 解题总结 1.1.1 Your Ride Is Here 基本字符串操作,无压力. 1.1.2 Greedy Gift Givers 基础模拟题,弄明白题意,不怕麻烦,就OK了. 1.1.3 Friday the Thirteenth 自己的做法:三维数组代表年月日,400的数据范围不大,模拟走一下时间的流逝过程即可.时间复杂度O(N*12*31),多好玩. 官方标程好像用到了一个神奇的公式,好像是什么蔡勒公式. 1.1.4 Broken Necklace 2*N…
几天时间就把USACO chapter1重新做了一遍,发现了自己以前许多的不足.蒽,现在的程序明显比以前干净很多,而且效率也提高了许多.继续努力吧,好好的提高自己.这一章主要还是基本功的训练,没多少的思维难度,不过基础也是很重要的. ——2013年11月17日 1.1.1  Your Ride Is Here 题目很简单,长字符串读入,按位相乘,同时取模即可,一开始的时候居然忘记了给d1和d2赋值1,结果无论是什么字符串读入计算结果都为0,虽然是水题,还是要记住初始化! {ID: jiangyi…
USACO1.4 题解 Arithmetic Progressions 题意 让你求长为n的由小于2*m*m的双平方数组成的等差数列有几个 双平方数:形如 B=P*P+Q*Q,p,q>0的数 题解 枚举首项和公差,判n个数是否为等差数列,复杂度为m^4 m*m/(n-1)为公差的枚举次数,m*m为首项的结局次数,n为数列的枚举次数,其中还可以剪枝一下,如果数列的最后一项大于2*m*m,就break: 另一个优化是枚举前两个双平方数,算出首项公差,双平方的数量级是2e4, 代码 #include…
开个坑记录一下刷USACO的Training的记录 可能会随时弃坑 只有代码和做法简述 可能没有做法简述 [USACO1.1]你的飞碟在这儿Your Ride Is He… 模拟,细节已忘 #include<iostream> #include<cstdio> #include<cstring> using namespace std; ],s2[]; int main() { ,ss2=; scanf("%s",&s1); scanf(&q…
http://acm.sgu.ru/problemset.php?contest=0&volume=1 101 Domino 欧拉路 102 Coprime 枚举/数学方法 103 Traffic Lights 最短路 104 Little Shop of Flowers 动态规划 105 Div 3 找规律 106 The Equation 扩展欧几里德 107 987654321 Problem 找规律 108 Self-numbers II 枚举+筛法递推 109 Magic of Dav…