56 条题解
-
0luyifan LV 10 @ 2009-01-19 10:13:26
晕,201是答案错误,开小了数组,AC 水题
-
02008-11-21 18:00:54@
不用排序照样AC,详情见SP教主题解
ans:=-1;
for i:=1 to m do
for j:=1 to n do
begin
f:=-1;
for k:=0 to n do
begin
if j=k then continue;
if(i>=t[j,k]+c[j])and(a[k] -
02008-11-13 15:43:37@
膜拜fjxmlhx教主
-
02008-11-13 14:20:26@
先按 a[] 排序(注意,排序后下标会改变,而两树之间距离是未改变时的)
int b[100], s[101][1001], t[101][101];
struct node
{
int num, v, w;
}a[100];int main()
{
int m, n, res = 0;
scanf("%d%d", &n, &m);
for (int i = 1; i ?= s[j][k-t[b[j]][b[i]]-a[b[i]].w]+a[b[i]].v;
res >?= s[i][k];
}
printf("%d\n", res);
} -
02008-11-13 10:32:28@
感谢_jaly_大牛提醒!
-
02008-11-11 17:20:26@
谢楼上牛的提醒……
-
02008-11-11 16:56:24@
万分羞涩地秒杀~
一开始30分WA了,需要注意的是我按果子数目排序后是a[num[i]],前后两个可能存在相同果子的情况,所以在1..i-1 中,我们需保证前面的比 a[num[i]]小..这个要注意,会WA一个点.
还有一个会WA6个点~ 每个f值应先初始为只捡第num[i]个的时间..~这个我开始没注意~呵呵
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-11-11 08:41:07@
- -||把m看成100了..
..无奈..
为什么数组越界你给我判错误答案..puppy神机啊..!!~~
- -||把m看成100了..
-
02008-11-10 12:57:05@
编译通过...
├ 测试数据 01:答案正确... 72ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 56ms
├ 测试数据 10:答案正确... 56ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:184ms水题 一次ac
冒泡就够了 干嘛用快排? -
02008-11-09 13:49:55@
program p1370;
const nmax=101;
mmax=1001;
verybig=1000000000;
var ans,n,m:Longint;
f:array[0..nmax,0..mmax]of longint;
dist:array[0..nmax,0..nmax]of longint;
mark:array[0..nmax,0..mmax]of boolean;
a,s,c:array[0..nmax]of longint;
i,j:Longint;
function dp(now,t:Longint):Longint;
var i,j:Longint;
begin
if tans then ans:=f;
writeln(ans);
end. -
02008-11-03 20:49:31@
汗!~~AC率啊。。前几次把K打成J了,后来一次没设定边界。。囧啊。。。
-
02008-11-02 16:25:33@
编译通过...
├ 测试数据 01:答案正确... 25ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 9ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:34msM数组开小了..
竟然开了100..汗..WA了2次..时间还算可以
先QSORT.然后DP
时间复杂度是O(M*N^2)
过得去`` -
02008-10-23 21:30:38@
……考察细心程度的背包
-
02008-10-22 20:46:00@
#include
#include
#include
using namespace std;
ifstream infile("in.txt",ios::in);
ofstream outfile("out.txt",ios::out);
int f[101][1001]={0},a[101]={0},s[101]={0},c[101][2]={0};
int kuai(int low,int high)
{int k,t;
k=a[low];
while(lowM;
for(i=1;i>a[i]>>s[i]>>c[i][0];c[i][1]=i;}
for(i=1;it[i][j];
qsort(1,n);
for(i=1;i -
02008-10-12 23:28:48@
竟然AC了- -。。汗。。怎么对的都不知道。。
-
02008-10-11 21:20:42@
囧...偷懒冒泡排序的时候把q打成p...WA了1次...
Accepted 有效得分:100 有效耗时:381ms
哪位大牛出来详细说一下0ms的算法?
DP的话讲下优化 DFS的话解释下怎么剪枝
谢谢~ -
02008-10-08 21:00:35@
先以a[i]为关键字排序。for i:=1 to n do for k:=1 to i-1 do for j:=m downto dis[p[k],p[i]]+c[i] do f[j,i]:=max(f[j,i],f[j-dis[p[k],p[i]]-c[i],k]+s[i])扫一遍输出最大值。请教0ms算法?
-
02008-10-07 19:49:53@
编译通过...
├ 测试数据 01:答案正确... 25ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 416ms
├ 测试数据 09:答案正确... 525ms
├ 测试数据 10:答案正确... 291ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:1257ms -
02008-10-07 19:48:39@
编译通过...
├ 测试数据 01:答案正确... 228ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 572ms
├ 测试数据 10:答案正确... 369ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:1169ms
颇慢,,我近10次才AC!因为,我忘记了记录原来树的编号!读进来的数之间的距离与排序后的不一样!!!! -
02008-10-07 12:07:54@
囧死了。。。粗心可能会导致任何诡异的错误
第一次交:
s[rank[i]]打成了 有效得分:100 有效耗时:0ms============================Orz