191 条题解
-
0lirenjue LV 10 @ 2008-12-01 21:21:17
第1200个ac,50题庆祝!!!
-
02008-11-11 19:06:16@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 166ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 447ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 697ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:1310ms终于做对了啊啊啊啊~
-
02008-11-10 22:58:13@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms回复luyifan
n div 2 downto 0 do
只是为了省时间
用n downto 0 do 也可以,只不过f[i](i>n div 2)的就全部白算了,(因为题目说过只要用一半啦)40*j (因为选了j个数字,f[j][k]表示随便选j个数字是否能和成数值为k,不是前j个的和啊,我当时这里没搞清楚,弱……)
-
02008-11-10 17:34:25@
感谢楼下强大的提示
-
02008-11-06 15:41:48@
#include
#include
#include
#include
#define maxn 200
#define INF 2000000000
long n,blood[maxn+10];
int main()
{
long i,ans_one,ans_two,ans,here,tmp;
long which,lim[2],number[2],quantity[2];
scanf("%ld",&n);
for(i=1;i -
02008-11-06 13:46:56@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms没用dp,利用单调性
//P1153
#include
#include
#define ABS(ttt) ((ttt)>0?(ttt):-(ttt))
int n,b[201],tot=0,arv,x[101],y[101],xt=0,yt=0;
int isok(int xn,int yn)
{
if(ABS(xt-x[xn]+y[yn]-arv) -
02008-11-03 19:41:09@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 41ms挖哈哈哈哈哈哈哈哈哈哈哈哈,随机的
-
02008-11-02 09:44:45@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0msDP才是王道 用f 开boolean
i表示多少个兵
j表示能达到的血的量
然后尽量减少循环数 -
02008-10-29 09:19:17@
我随机200000次超时
随机50000次 AC -
02008-10-28 22:09:32@
program p1153;
var i,j,k,n,m,ans:longint;
a,s:array[0..201]of longint;
f:array[0..101,-50..8000]of boolean;
begin
readln(n);
for i:=1 to n do
begin
read(a[i]);
s[i]:=s+a[i];
end;
m:=n div 2;
f[0,0]:=true;
for i:=1 to n do
for j:=m downto 1 do
for k:=40*j downto 0 do f[j,k]:=f[j,k] or f[j-1,k-a[i]];ans:=20082008;
i:=0;j:=0;
for k:=0 to s[n] do
if f[m,k] and (abs(s[n]-2*k) -
02008-10-28 22:02:25@
假,我大大的囧..
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 9ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 165ms
├ 测试数据 09:答案正确... 103ms
├ 测试数据 10:答案正确... 118ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:395ms -
02008-10-28 22:05:56@
赞同cx24(已经过程序验证)
7eleven的算法显然有后效性
只能算是无敌贪心(话说这数据也太水了) -
02008-10-28 21:55:20@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 118ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:运行超时...
├ 测试数据 09:答案正确... 321ms
├ 测试数据 10:答案正确... 352ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:90 有效耗时:791ms我囧...
-
02008-10-28 17:45:54@
7eleven的算法是错的,反例在此
101 40 0 8
20 120 2 2单个交换无法使和差距变小
但是0、8和2、2同时交换的话,和会变小 -
02008-10-27 09:15:40@
用广度扩展过了。。。
8000*200*100 +点优化program p1153;
var
re:array[1..2000] of longint;
b:array[0..8000,0..200] of BOOLEAN;
SP:ARRAY[0..8000,0..200] OF LONGINT;
i, j, k, l, m, n, sum :longint;
x, y, ans :longint;
begin
readln(n);
for i:=1 to n do
begin
readln(re[i]);
inc(sum,re[i]);
end;
b[0,0]:=TRUE; ans:=maxlongint;
sp[0,0]:=1; sp[0,1]:=0;
for i:=1 to n do
for j:=sum-re[i] downto 0 do
FOR K:=1 TO SP[J,0] DO
if b[j,SP[J,K]] and (sp[j,k] -
02008-10-22 23:17:43@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案错误... ├ 标准行输出 360 3..
├ 错误行输出 358 3..
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:90 有效耗时:0msprogram p1153;
var
n,i:1..201;
a:array[1..201]of 0..40;
z,y,x:integer;
l,r,p,q:0..102;
procedure wxd;
begin
if (zy or y>z x:=xiao}
if x=y then begin y:=y+a[i];inc(p);end
else begin z:=z+a[i];inc(q);end;
end;
if z-y>0 then writeln(y,' ',z)
else writeln(z,' ',y);
end.哪位大牛能告诉我哪错了 怎么修改啊??
-
02008-10-22 17:31:24@
why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??why??
要 N DIV 2 DOWNTO 0 DO
AND
40*J DOWNTO 0 DO -
02008-10-19 21:08:29@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 103ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 72ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:175ms穷举题。
-
02009-05-16 15:18:12@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 259ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 197ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:456ms
楼上的是什么办法,能0MS过。。。。。。。。。。。 -
02008-10-17 20:14:51@
编译通过...
├ 测试数据 1:答案正确... ms
├ 测试数据 2:答案正确... ms
├ 测试数据 3:答案正确... ms
├ 测试数据 4:答案正确... ms
├ 测试数据 5:答案正确... ms
├ 测试数据 6:答案正确... ms
├ 测试数据 7:答案正确... ms
├ 测试数据 8:答案正确... ms
├ 测试数据 9:答案正确... ms├ 测试数据 1:答案正确... ms
Accepted 有效得分:1 有效耗时:ms
7eleven太吊了...真是经典的算法...
f:=true;
while f do
begin
f:=false;
for i:=1 to l1 do
for j:=1 to l2 do
begin
p:=sum1-a[i]+b[j];
q:=sum2+a[i]-b[j];
if abs(p-q)