142 条题解
-
0boyzkk LV 10 @ 2008-09-17 18:48:40
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms每次摘完看看能不能回去,不能输出上次结果,能,继续搜
不用排序,直接AC -
02008-09-17 18:34:32@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-09-06 17:43:46@
var
m,n,time,money,q,l,i,j,t1,t2,t3:longint;
a,b:array[1..20,1..20]of longint;
x,y,c:array[1..400]of longint;begin
read(n,m,time);
l:=0;
for i:=1 to n do
begin
for j:=1 to m do
begin
read(q);
if q0
then
begin
inc(l);
x[l]:=i;
y[l]:=j;
c[l]:=q;
end;
end;
readln;
end;
for i:=1 to l-1 do
for j:=i+1 to l do
if c[i]=2*x[1]+1
then
begin
money:=money+c[1];
time:=time-x[1]-1;
end;for i:=2 to l do
if time-abs(y-y[i])-x[i]-abs(x[i]-x)-1>=0
then
begin
time:=time-abs(y[i]-y)-1-abs(x-x[i]);
money:=money+c[i];
end
else break;
write(money);
end. -
02008-08-31 18:03:29@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案错误...程序输出比正确答案长
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:90 有效耗时:0ms谁能告诉我怎么回事?
program P1120;const
filein='p1120.in';
fileout='p1120.out';
maxm=20;
maxn=20;type
Tin=longint;
Tarr1=array[1..maxm,1..maxn]of Tin;
Tarr2=array[1..maxm*maxn]of Tin;
Tarr3=array[1..maxm*maxn,1..2]of Tin;
Trec=record
sum:Tin;
value:Tarr2;
xy:Tarr3;
end;var
m,n,k,total:Tin;
map:Tarr1;
order:Trec;procedure init;
var
i,j,num:Tin;
begin
order.sum:=0;
readln(m,n,k);
for i:=1 to m do
begin
for j:=1 to n do
begin
read(num);
if num>0 then
begin
inc(order.sum);
order.value[order.sum]:=num;
order.xy[order.sum,1]:=i;
order.xy[order.sum,2]:=j;
end;
end;
readln;
end;
end;procedure qsort(l,r:Tin);
var
i,j,mid,t:Tin;
begin
i:=l;
j:=r;
mid:=order.value[(l+r) div 2];
repeat
while order.value[i]>mid do inc(i);
while mid>order.value[j] do dec(j);
if ij;
if i=(order.xy+1+abs(order.xy-order.xy)+abs(order.xy-order.xy)))and(i -
02008-08-31 10:49:55@
BEGIN
在读入花生地的情况时,我们可以设置一个1..500的数组(在这我们叫他状态数组吧,表示状态的数组),类型为记录类型,这个等等再说,读入时,只要读入的值不是0,那么就把在状态数组中以这个数值为下标的那个记录类型中的表示这个值是否存在的那个值赋为1(假设我们用1表示存在,用0不是没有,当然开始时要把所有的全先初始为0)。这就是这个题的一个优化,由于在题中的这么一句:“注意可能只有部分植株下面长有花生,假设这些植株下的花生个数各不相同。”所以完全不用担心重复,在把它设为1的同时,把它的(x,y)也同时记录下来(所以用记录类型)。
那么就开始了,用一个循环把状态数组从500扫到1,只要碰到一个存在的数,那么,把它的权值qz(暂且这么叫吧,表示多多到它那的花费时间总和)与时间比较,其中:
Qz:=abs(存在的数的X减去多多现在的X)+abs(存在的数的Y减去多多现在的Y)+1{采花生的时间}+存在的数的X{因为多多从某一颗植物上回到路边的值就是坐标的X的值}
如果qz>time
那么循环结束,输出,程序结束。
如果qztime,退出,输出(0)。第一次要单独处理。
那么这个题就结束了,恩,因为没有用到排序,所以时间复杂度可能会比较低。
另外就是题中“你先找出花生最多的植株,去采摘它的花生;然后再找出剩下的植株里花生最多的,去采摘它的花生”表示,假设最多的你采了,而次多的你采不到,但是可以采集别的,这时,别的完全放弃,只拿着你采到的回去就可以了,也就是“只要在判断过程中,有一个采不到,立刻退出判断,输出结果,结束程序”
END. -
02008-08-23 11:45:42@
贪心还是挺有魅力的~~~偶是用贪心过的~~~
-
02008-08-17 16:54:04@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
最开始把采摘需要一个时间点高忘了
从路边到第一个的时间就是第一个的横坐标
(回去是一样的)
当然,不一定要用二维数组(我就用的一维,这样方便排序)
用冒泡!!!用选择!!!
因为只有最多400各数据,快排桶排堆排纯熟浪费脑细胞. -
02008-08-14 21:36:59@
向给出样例的人致敬!(无敌的样例啊,怎么都能过)
-
02008-08-09 14:05:40@
竟然交了5次!!!!!!!!!!!!!!!!!!!!
-
02007-12-01 13:14:45@
要注意是从路边到田中需要一步,回路边也要一步.
而且有可能出现不能达到任何一个;
最主要的是!如果当前最大走不了,就退回路边了!(让我UNAC4次啊);
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02007-11-16 08:16:11@
编译通过...
├ 测试数据 01:运行超时...
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:运行超时...
├ 测试数据 05:运行超时...
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:运行超时...
├ 测试数据 09:运行超时...
├ 测试数据 10:运行超时...
---|---|---|---|---|---|---|---|-
我用快排也超时,太夸张了点?? -
02007-11-14 22:48:32@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms交4遍才AC..
-
02007-11-12 14:58:03@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
贪心拉。。。 -
02007-11-11 12:46:59@
基础题。。。。
模拟就可以了。。。。。 -
02007-11-11 10:55:53@
这个简单,先排序,在一步一步来,如果下一步没过时间,就去采,不行了就回路边
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02007-11-03 21:00:33@
其实不用快排的 但我还是用了
-
02007-10-30 13:49:10@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02007-10-29 22:42:25@
我在想啊,如果多多采完了花生回到路边时,恰好一棵花生当道,它是摘呢?还是不摘?
-
02007-10-27 21:40:45@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms数据有点弱弱的.弱弱的花生|
-
02007-10-27 21:38:39@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms总是死在简单题上 我承认我智商出现偏差了
第1次WA 想多了用随机贪心
第2~3次WA 发现数组竟然少打个0!
第4~6次WA 多次改变方法.发现不出错误.
第7次WA 原来是QUICKSORT的变量打错了
第8次 AC 安静下来调试了一下- -#......无语.天.