174 条题解
-
0chenjunhao LV 7 @ 2009-11-10 09:12:54
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
一遍AC...................当上管理员,人品就爆发 -
02009-11-05 21:08:59@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 118ms
├ 测试数据 03:答案正确... 150ms
├ 测试数据 04:答案正确... 228ms
├ 测试数据 05:答案正确... 181ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 352ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:1029ms
oh ye!! -
02009-11-04 19:02:37@
貌似用手动输入会爆掉
我自己用文件录入与大牛们的标解对比最苛刻的数据 答案完全相同...
但是过不了 怎么办?
-
02009-11-04 11:10:19@
一定要记录路径长度!!!!
取最短的!!!! -
02009-10-31 17:01:28@
为何先后扫不对(78分),同时扫就对了?
-
02009-10-22 19:08:51@
Orz 尖端才子
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02009-10-18 08:17:03@
for i:=1 to m do
for j:=1 to n do read(a);
一道水题,竟然降了我的AC率!!!!
两次把题目看错:
1:题目结尾说按顺序输出,结果我写了个quick-sort对房间号排序,自然是挂了
2:最愚蠢的错误。。。。
题目中说读入数据的第i行代表第i层楼的每个签证员收取的费用,但是我看成了读入数据是按楼层的形式排布的(第一行代表最高层),这个错误让我浪费了N多的时间!!!!!!!!!注意审题!!!!!! -
02009-10-15 22:33:09@
小水题。。一次AC。。拿来练DP路径不错。。
方程f=min{f,f,f}+a
然后开个数组记录取得最优决策时的i和j,最后递归打出来就完了。。
我的DP顺序是第一遍先上后左,第二遍右。。
程序就不晒了。。很无聊的。。 -
02009-10-14 13:58:53@
开始写了个记忆化搜索……后来发现它总是在相邻的两个上转悠……于是想用DP解决……又发现不好更新值,那么干脆先找一个一定不能被其它值更新的值来更新别的……时间复杂度mnlogn。
或者干脆来回两趟。……时间复杂度mn……。
第一种思路类似dijkstra,第二种吗,自己想得……
想了想还是第二种好……
注意可以滚动数组……
还有楼下的……没必要int64。话说我交了2次……AC两次。
晒晒主要代码:
for i:=2 to m do
begin
f[1]:=f[1]+a;
for j:=2 to n do
if f[j-1] -
02009-10-13 19:57:48@
f=min{f,f,f}+map
dp时记录路径,dp完了递归打路径
方程简单,数据猥琐...
int64!!!
每个转移要有单独的for...
不知道为什么不能加一圈最大值后用两个for...
10次AC... -
02009-10-12 23:13:06@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0msvar i,j,k,m,n,min,k1,k2,u:longint;
w,f,pre1,pre2:array[0..100,0..500] of longint;
c:array[0..100000] of longint;
begin
read(m,n);readln;
for i:=1 to m do
begin
for j:=1 to n do
read(w);
readln;
end;
for i:=1 to n do
f[1,i]:=w[1,i];
for i:=2 to m do
begin
min:=maxlongint;
for j:=1 to n do
if f -
02009-09-16 22:06:25@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
好有成就感,16%的题竟然被我一次ac了…… -
02009-09-14 19:50:04@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms由于没有CHECK,又舍不得AC率,又不想开小号了,于是就抄个代码,反正会做了,就是左右各扫一遍,有CHECK肯定AC。
-
02009-09-09 16:28:13@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms要考虑清楚 为什么对于每一行,左扫一遍,右扫一遍就可以保证此行最优。
这是关键,其余就是普通的动规了。 -
02009-09-09 13:20:16@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms.....
两个方向DP一起做两次。。。 -
02009-09-07 20:05:15@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms菜是沙茶——先是以为f由f,f,f转移过来不知道到底该从左到有还是该从右到左;(其实分别做一遍就行了)
然后又是把输出顺序搞错;最后数组开小了216错误;
……面壁中………… -
02009-09-07 20:04:51@
water
water
water
water
water
water
water
water -
02009-09-06 16:27:33@
f:=min(f,f,f)+a!!!!!!
-
02009-09-05 18:31:08@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar
m,n,i,j,k,mx,my:longint;
f,a:array[1..500]of int64;
path:array[1..500,1..500]of longint;
procedure print(m,i:longint);
begin
if m=0 then exit;
if path[m,i]=i then print(m-1,i)
else print(m,path[m,i]);
writeln(i);
end;
begin
readln(m,n);
for i:=1 to m do
begin
for j:=1 to n do
begin
read(a[j]);path:=j;
f[j]:=f[j]+a[j];
end;
for k:=1 to 2 do
begin
for j:=2 to n do
if f[j]>f[j-1]+a[j] then
begin
f[j]:=f[j-1]+a[j];
path:=j-1
end;
for j:=n-1 downto 1 do
if f[j]>f[j+1]+a[j]then
begin
f[j]:=f[j+1]+a[j];
path:=j+1;
end;
end;
end;
my:=maxlongint;
for i:=1 to n do
if f[i] -
02009-09-01 17:12:46@
比那只猪HILL简单多了...........
DP很好想 ...........