184 条题解
-
0xukemn LV 7 @ 2008-11-03 22:36:46
学会了用2的快速幂来判断素数。。。
-
02008-10-31 21:52:20@
dfs伪素数判断(费马小定理)
注意特判2!!!
var
a:array[1..20] of longint;
p,n,k,ans,i:longint;
function bin(x:longint):longint;
var t:longint;
begin
if x=1 then exit(2);
t:=bin(x div 2) mod p;
if x and 1 = 1 then
t:=t*t*2 mod p else t:=t*t mod p;
exit(t);
end;
procedure dfs(x:longint);
begin
if n-x+1n then begin if (k=0)and((bin(p-1)=1)or(p=2)) then inc(ans); exit; end;
p:=p+a[x];
dec(k);
if k>=0 then
dfs(x+1);
inc(k);
p:=p-a[x];
dfs(x+1);
end;
begin
readln(n,k);
for i:=1 to n do read(a[i]);
dfs(1);
writeln(ans);
end. -
02008-10-30 20:54:13@
MAB 没说清楚可以重复害我多交一次
-
02008-10-30 19:28:58@
Accepted without 剪枝……
-
02008-10-29 21:30:04@
DFS+费马小定理。。。好象数据很弱,写麻烦了
-
02008-10-28 12:27:04@
心情好~
如果大家愿意就看看我的吧
有点像背包问题
procedure choose(b,j,i:longint);
begin
if j=k then choose(b,j,i+1);
end;
if j=k then
if sushu(b) then inc(c);
end;
还有一个判断素数 就ok了 -
02008-10-27 18:32:59@
haha
2^20搜索
顶歇! -
02008-10-27 12:06:52@
强的验证码,你猜是什么?
我的是:oilj(OI垃圾)
正好1128又是我的生日
巧了!! -
02008-10-23 22:22:15@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms忘记了可能由两个数生成另一个数了。。。。。。
-
02008-10-23 00:13:25@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msOh Yeah
朴素的素数判断也0ms,没有技术含量啊 -
02008-10-22 12:11:44@
睡前水题一道,练练手也不错……
-
02008-10-20 15:49:16@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
裸搜水题!!!
#include
#include
using namespace std;
int n,k,ans=0;
int s[21];
int ps(int num){
if(numn>>k;
for(int i=1;i>s[i];
dfs(0,1,0);
cout -
02008-10-19 21:28:33@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
注意形参和值参 -
02008-10-16 12:40:54@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-10-10 13:23:13@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msAC 50 题!纪念!
很适合新手练习的DFS~很好的基础题。
附上DFS代码:
void search(int left,int now){
if (left>n-now+1) return;
else {
if (left==0&&now==n+1){
time+=check(sum);
return;
}
else {
search(left,now+1);
if (left>0){
sum+=x[now];
search(left-1,now+1);
sum-=x[now];
}
}
}
}search(k,1)即可。
check()为朴素的枚举判断素数法。 -
02008-10-07 23:25:27@
dfs+素数预处理
-
02008-10-06 09:30:02@
编译通过...├ 测试数据 01:答案正确... 0ms├ 测试数据 02:答案正确... 0ms├ 测试数据 03:答案正确... 0ms├ 测试数据 04:答案正确... 0ms├ 测试数据 05:答案正确... 0ms-------------------------Accepted 有效得分:100 有效耗时:0ms
搜索+打素数表=AC -
02008-09-29 23:35:54@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
一星半,记录一下 -
02008-10-17 20:40:07@
var a,b,c:array[1..20] of integer;
n,k:integer;sum,total:longint;
procedure init;
var i:integer;
begin
assign(input,'e:/lo.in');
reset(input);
readln(n,k);
for i:=1 to n do
read(a[i]);
for i:=1 to k do
begin
b[i]:=i;
c[i]:=n-k+i;
end;
close(input);
end;procedure cal;
var i:integer;
begin
sum:=0;
for i:=1 to k do
sum:=sum+a[b[i]];
end;procedure judge;
var i:longint;tru:boolean;
begin
tru:=false;
for i:=2 to trunc(sqrt(sum))+1 do
if sum mod i =0 then begin
tru:=true;
exit;
end;
if tru=false then total:=total+1;
end;procedure combo(bb:integer);
begin
if bb>k then exit;
while b[bb] -
02008-09-20 21:26:06@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
秒杀!
思想:组合的生成+基础素数判断
Water Problem