96 条题解
-
0rakerichard LV 8 @ 2009-06-23 19:51:19
交表
#include
int main()
{
long a[8][100]={
{2,3,5,7},
{23,29,31,37,53,59,71,73,79},
{233,239,293,311,313,317,373,379,593,599,719,733,739,797},
{2333,2339,2393,2399,2939,3119,3137,3733,3739,3793,3797,5939,7193,7331,7333,7393},
{23333,23339,23399,23993,29399,31193,31379,37337,37339,37397,59393,59399,71933,73331,73939},
{233993,239933,293999,373379,373393,593933,593993,719333,739391,739393,739397,739399},
{2339933,2399333,2939999,3733799,5939333,7393913,7393931,7393933},
{23399339,29399999,37337999,59393339,73939133}
};
int n,i;
scanf("%d",&n);
i=0;
while( a[n-1][i]!=0 )
{
printf("%ld\n",a[n-1][i]);
i++;
}
return 0;
} -
02009-05-12 11:24:36@
不交表,不回溯,用枚举也秒杀,Yeah!
const js:array[1..4] of byte=(1,3,7,9);
begin
readln(n);
z[1]:=4;
zs[1,1]:=2;zs[1,2]:=3;zs[1,3]:=5;zs[1,4]:=7;
for i:=2 to n do
begin
for j:=1 to z do
for m:=1 to 4 do
begin
x:=zs*10+js[m];
if ss(x) then begin inc(z[i]);zs:=x;end;
end;
end; -
02009-08-03 15:59:47@
深搜超时 无奈 选择交表
大家不要学我
会降RP的
编译通过...├ 测试数据 01:答案正确... 0ms├ 测试数据 02:答案正确... 0ms├ 测试数据 03:答案正确... 0ms├ 测试数据 04:答案正确... 0ms├ 测试数据 05:答案正确... 0ms-------------------------Accepted 有效得分:100 有效耗时:0ms附程序:
program P1359;
var n:longint;
begin
read(n);
case n of
1:begin
writeln(2);
writeln(3);
writeln(5);
writeln(7);
end;
2:begin
writeln(23);
writeln(29);
writeln(31);
writeln(37);
writeln(53);
writeln(59);
writeln(71);
writeln(73);
writeln(79);
end;
3:begin
writeln(233);
writeln(239);
writeln(293);
writeln(311);
writeln(313);
writeln(317);
writeln(373);
writeln(379);
writeln(593);
writeln(599);
writeln(719);
writeln(733);
writeln(739);
writeln(797);
end;
4:begin
writeln(2333);
writeln(2339);
writeln(2393);
writeln(2399);
writeln(2939);
writeln(3119);
writeln(3137);
writeln(3733);
writeln(3739);
writeln(3793);
writeln(3797);
writeln(5939);
writeln(7193);
writeln(7331);
writeln(7333);
writeln(7393);
end;
5:begin
writeln(23333);
writeln(23339);
writeln(23399);
writeln(23993);
writeln(29399);
writeln(31193);
writeln(31379);
writeln(37337);
writeln(37339);
writeln(37397);
writeln(59393);
writeln(59399);
writeln(71933);
writeln(73331);
writeln(73939);
end;
6:begin
writeln(233993);
writeln(239933);
writeln(293999);
writeln(373379);
writeln(373393);
writeln(593933);
writeln(593993);
writeln(719333);
writeln(739391);
writeln(739393);
writeln(739397);
writeln(739399);
end;
7:begin
writeln(2339933);
writeln(2399333);
writeln(2939999);
writeln(3733799);
writeln(5939333);
writeln(7393913);
writeln(7393931);
writeln(7393933);
end;
8:begin
writeln(23399339);
writeln(29399999);
writeln(37337999);
writeln(59393339);
writeln(73939133);
end;
end;
end. -
02009-04-25 12:08:31@
除第一位外,其他位和1,3,5,7,9有关系么?
-
02009-03-17 23:45:49@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms#include "stdio.h"
#include "math.h"
int n;
int panduan(int num)
{
int i,p;
if(num==2) return 1;
if(numn) printf("%d\n",num);
else
for(num*=10,i=0;i -
02009-03-15 22:36:25@
第500个AC!
搜索! -
02009-03-15 22:32:42@
水题.......
-
02009-02-10 22:41:52@
这题太猥琐了……递归构造秒杀。
可怜我第一次乖乖地模拟。。艾!为什么不打表……浪费AC率…… -
02008-12-31 16:02:16@
C:
#include
#include
int n;
int isprime(int num) {
int i,p;
if(num2) return 0;
for(p=(int)sqrt(num),i=3;ip;
}
void work(int num,int depth) {
int i;
if(depth>n) printf("%d\n",num);
else for(num*=10,i=0;in then writeln(num)
else
begin num:=num*10;
for i:=1 to 10 do
begin if isprime(num) then work(num,depth+1);
inc(num)
end
end
end;
begin
read(n);
work(0,1)
end. -
02008-12-08 13:38:11@
program p1359;
var
n:integer;
function p(k:longint):boolean;
var
i:longint;
begin
if k=1 then exit(false);
for i:=2 to trunc(sqrt(k)) do
if (k mod i=0) then exit(false);
exit(true);
end;
procedure doit(a:longint;s:string);
var
s1,s2:string;
k,i,code:longint;
begin
if a=n+1 then begin writeln(s);exit; end;
if a=1 then
for i:=1 to 9 do
begin
str(i,s1);
s2:=s+s1;
val(s2,k,code);
if p(k) then doit(a+1,s2);
end
else
for i:=0 to 9 do
begin
str(i,s1);
s2:=s+s1;
val(s2,k,code);
if p(k) then doit(a+1,s2);
end;
end;
begin
readln(n);
doit(1,'');end.
-
02008-11-29 20:15:30@
不知是USACO那章节的
挺水的
真的
-
02008-11-29 12:43:08@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-11-02 15:40:08@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms百题留念 !
下午要回去学校的时候
看了下 99道 ...此water problem浮现眼前...
直接找了之前usaco的程序交 .....
-
02008-10-27 09:24:34@
- -||主程序定义一大堆变量..最后就用到一个N..
-
02008-10-19 21:48:57@
这题越做越想哭。开始写了个筛选的预处理,结果全超了。后来交了个表,秒杀,感觉很爽。最后改成了边搜边判素数,竟然0ms。我哭了……
-
02008-10-15 07:32:28@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms不能用筛素数的方法
可以每一位判断,然后再用判断素数的方法
用米勒-罗宾判断也行(不过很麻烦我没用)
刚做完的usaco就看到这道题了var
n:longint;
a:array[1..8]of longint;
procedure su(k:longint);
var
i,j,m:longint;
f:boolean;
begin
for i:=0 to 9 do
if (k=1) and ((i=0) or (i=1)) then continue
else
begin
a[k]:=i;
m:=0;
for j:=1 to k do
m:=m*10+a[j];
f:=true;
for j:=2 to trunc(sqrt(m)) do
if m mod j=0 then
begin
f:=false;
break
end;
if not f then continue;
if k=n then
writeln(m)
else
su(k+1);
end;
end;
begin
readln(n);
su(1);
end. -
02008-10-11 18:39:38@
看过《算法d论》的都应该知道,
判素数本来应该更简单的... -
02008-10-05 13:31:43@
剪枝+回溯=秒杀 and AC
注意啊 一个数n只要除不尽2 到 Trunc(sprt(n) 之间的任一个数就是素数
悔过啊~~悔过啊~~分情况考虑 最高位可以是2,3,5,7 其它位1,3,7,9 这样就递归4次即可
庆祝AC的第35题!!!!!!
-
02008-09-25 12:05:35@
有的时候,真的觉得写程序是很艺术的事情.
function thatis(k:longint):boolean;
var i:longint;
begin
for i:=1 to trunc(sqrt(k))do if k mod i=0 then exit(false);
exit(true)
end;
procedure check(now,k:longint);
begin
if k=n+1 then writeln(now);
if thatis(now*10+1)then check(now*10+1,k+1);
if thatis(now*10+3)then check(now*10+3,k+1);
if thatis(now*10+7)then check(now*10+7,k+1);
if thatis(now*10+9)then check(now*10+9,k+1)
end;主程序:
readln(n);
check(2,2);
check(3,2);
check(5,2);
check(7,2) -
02008-09-20 17:04:51@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms