【USACO】sprime
有了前面的基础,做这道题真是so easy啊。 因为要分解后每个数都是素数,所以采用先生成短的素数,长的素数在短素数的基础上生成。 比如长度为1的素数只有 2 3 5 7, 那么符合要求的长度为2的素数只可能是 21- 29 31-39 51-59 71-79 对其他长度类似。 答案的思路和我的差不多,不过更精细一些。 在增加长度时只用考虑1 3 7 9四个尾数就行了,其他都会被2或5整除。 我没有用递归,答案用了递归。 这个说不上哪个好, 我觉得尽量避开递归比较好吧,之前递归总是容易溢出。
一次就AC的代码~
#include <stdio.h> int sp[][] = {}; //全局变量 用于存放已经生成的每个长度的超级素数
int l[] = {}; //记录每个长度的超级素数有多少个 int isprime(int N)
{
int i;
if(N == )
return ;
for(i = ; i * i <= N; i++)
{
if(N % i == )
return ;
}
return ;
} int generate(int n)
{
if(n == )
{
sp[n-][] = ; sp[n-][] = ; sp[n-][] = ; sp[n-][] = ; l[n - ] = ;
}
else
{
int i, j, num;
for(i = ; i < l[n - ]; i++)
{
for(j = ; j <= ; j++)
{
num = sp[n - ][i] * + j;
if(isprime(num))
{
sp[n - ][l[n - ]] = num;
l[n - ]++;
}
}
}
}
return ;
} int main()
{
FILE *in, *out;
in = fopen("sprime.in", "r");
out = fopen("sprime.out", "w"); int N;
fscanf(in, "%d", &N); int i;
for(i = ; i<= N; i++)
{
generate(i);
}
for(i = ; i < l[N - ]; i++)
{
fprintf(out, "%d\n", sp[N - ][i]);
}
}
【USACO】sprime的更多相关文章
- POJ 1986 Distance Queries / UESTC 256 Distance Queries / CJOJ 1129 【USACO】距离咨询(最近公共祖先)
POJ 1986 Distance Queries / UESTC 256 Distance Queries / CJOJ 1129 [USACO]距离咨询(最近公共祖先) Description F ...
- 1642: 【USACO】Payback(还债)
1642: [USACO]Payback(还债) 时间限制: 1 Sec 内存限制: 64 MB 提交: 190 解决: 95 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 &quo ...
- 1519: 【USACO】超级书架
1519: [USACO]超级书架 时间限制: 1 Sec 内存限制: 64 MB 提交: 1735 解决: 891 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 Farmer Jo ...
- Java实现【USACO】1.1.2 贪婪的礼物送礼者 Greedy Gift Givers
[USACO]1.1.2 贪婪的礼物送礼者 Greedy Gift Givers 题目描述 对于一群要互送礼物的朋友,你要确定每个人送出的礼物比收到的多多少(and vice versa for th ...
- 【CPLUSOJ】【USACO】【差分约束】排队(layout)
[题目描述] Robin喜欢将他的奶牛们排成一队.假设他有N头奶牛,编号为1至N.这些奶牛按照编号大小排列,并且由于它们都很想早点吃饭,于是就很可能出现多头奶牛挤在同一位置的情况(也就是说,如果我们认 ...
- 【USACO】Dining
[题目链接] [JZXX]点击打开链接 [caioj]点击打开链接 [算法] 拆点+网络流 [代码] #include<bits/stdc++.h> using namespace std ...
- 【USACO】Optimal Milking
题目链接 : [POJ]点击打开链接 [caioj]点击打开链接 算法 : 1:跑一遍弗洛伊德,求出点与点之间的最短路径 2:二分答案,二分”最大值最小“ 3.1:建边,将 ...
- 【USACO】 Balanced Photo
[题目链接] 点击打开链接 [算法] 树状数组 [代码] #include<bits/stdc++.h> using namespace std; int i,N,ans,l1,l2; ] ...
- 【USACO】 Balanced Lineup
[题目链接] 点击打开链接 [算法] 这是一道经典的最值查询(RMQ)问题. 我们首先想到线段树.但有没有更快的方法呢?对于这类问题,我们可以用ST表(稀疏表)算法求解. 稀疏表算法.其实也是一种动态 ...
随机推荐
- spring 第一篇(1-1):让java开发变得更简单(下)转
spring 第一篇(1-1):让java开发变得更简单(下) 这个波主虽然只发了几篇,但是写的很好 上面一篇文章写的很好,其中提及到了Spring的jdbcTemplate,templet方式我之前 ...
- 【poj2079】 Triangle
http://poj.org/problem?id=2079 (题目链接) 题意 求凸包内最大三角形面积 Solution 旋转卡壳. 只会n²的做法,但是竟然过了.就是枚举每一个点,然后旋转卡壳另外 ...
- MVC传值汇总
方法一: Url传参是通过Get的方式,一般我们都是通过一定规则的Url来传参.比如下面的URL. http://localhost/contorller/action/?Params1=a& ...
- android 常见死机问题--log分析
http://blog.csdn.net/fangchongbory/article/details/7645815 android 常见死机问题--log分析============ ...
- WGS84、Web墨卡托、火星坐标、百度坐标互转
转自:1.http://blog.csdn.net/wildboy2001/article/details/12031351 2.http://kongxz.com/2013/10/wgs-cgj/ ...
- CSS 2D转换 matrix() 详解
2D转换 IE10.Firefox.Opera 支持 transform 属性 Chrome.Safari 需要前缀 -webkit- . IE9 需要前缀 -ms- . translate():接收 ...
- 锋利的jQuery-4--图片切换的一个例子(自己理解后写的,以备忘记时看看)
一个动画切换的效果,如图: 分析步骤: 1.点击左右的箭头图片滚动,左边的小点变化. 2.主要问题是当滚到最后一屏时切换回第一屏,第一屏在向前滚动是切换到最后一屏 :通过判断图片的总数然后除以每屏显示 ...
- zabbix: failed to accept an incoming connection
错误描述 查日志发现: failed to accept an incoming connection: connection from "192.168.186.132" rej ...
- 15个超实用的php正则表达式
在这篇文章里,我已经编写了15个超有用的正则表达式,WEB开发人员都应该将它收藏到自己的工具包. 验证域名 检验一个字符串是否是个有效域名. $url = "http://komunitas ...
- iOS多线程GCD(转)
转自:http://www.cnblogs.com/pure/archive/2013/03/31/2977420.html Grand Central Dispatch (GCD)是Apple开发的 ...