92 条题解
-
0玛维-影之歌 LV 10 @ 2009-09-20 15:49:55
编译通过...
├ 测试数据 01:答案正确... 72ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:72ms
没有秒杀...RP不好
直接简排+剪枝......
貌似不排序剪枝跟没剪差不多
排序以后剪枝就很强了... -
02009-09-19 10:47:48@
Accepted 有效得分:100 有效耗时:0ms
交了3次,注意读完了n个数后要readln!然后eof就不会错了~
只用邻接矩阵,效率还挺高的嘛~~~剩余最大价值不要包含前面的就可以啦~ -
02009-09-16 17:18:20@
好吧.....这个只加上最优化剪枝是不行的(剩余的数都加上没有最优值大就剪去)
它还得再加个排序.......吐血...... -
02009-08-19 12:20:37@
var{o(>﹏max then max:=s;
for i:=k to n do
if c[i]=0 then
begin
m:=0;
for j:=1 to b do
inc(c[b]);
for j:=i+1 to n do
if c[j]=0 then inc(m,a[j]);
if s+m+a[i] -
02009-08-12 10:50:46@
如对本题有疑问可以参看我的题解:http://xujieqi.blog.hexun.com/35722312_d.html
-
02009-08-06 10:59:35@
编译通过...
├ 测试数据 01:答案正确... 25ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 338ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:363ms
不用排序也能轻松过的,只要用最优性剪枝就行了
代码也很短:
program p1048;
var
b:array[0..100,0..100] of longint;
a,c:array[1..100] of longint;
i,j,n,tt,kk,max:longint;
procedure dfs(k,s:longint);
var
i,j,m:longint;
begin
if s>max then max:=s;
for i:=k to n do
if c[i]=0 then
begin
m:=0;
for j:=1 to b do
inc(c[b]);
for j:=i+1 to n do
if c[j]=0 then inc(m,a[j]);
if s+m+a[i] -
02009-07-27 12:53:21@
编译失败...|错误号:-1
这是什么意思啊?
-
02009-07-27 03:44:41@
当前价值+剩余所有价值
-
02009-07-24 16:05:47@
话说神这东西真的很神奇。。
编译通过...
├ 测试数据 01:运行超时...
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 634ms
├ 测试数据 10:答案正确... 259ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:90 有效耗时:893ms编译通过...
├ 测试数据 01:答案正确... 150ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 72ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:222mstype
arr1=array [0..101] of longint;
var{神啊,让我过吧}
i,n,maxcount,s1,t:longint;
a:array [0..101] of longint;
b:array [0..101,0..101] of boolean;
c:array [0..101] of longint;
s:arr1;
function gu(count,p:longint):boolean;
begin
for i:=p+1 to n do
count:=count+a[i];
if countmaxcount then maxcount:=count;exit;end;
if not gu(count,p) then exit;
p:=p+1;
if tu(p,s) then
try(p,0,s,count)
else
begin
inc(s[0]);
s[s[0]]:=p;
count:=count+a[p];
try(p,1,s,count);
s[s[0]]:=0;
dec(s[0]);
count:=count-a[p];
try(p,0,s,count);
end;
end;
procedure qsort(l,r:longint);
var
i,j,m,t:longint;
begin
i:=l;j:=r;
m:=a[random(r-l+1)+l];
while im do inc(i);
while a[j] -
02009-07-07 17:02:10@
终于AC了
感觉剪枝力度很小,但实际上力度很大.
还有排不排序,差距也很大. -
02009-06-27 15:16:25@
var
i,n,x,y,max,maxn,leng :integer;
g,a,stack :array[0..55]of integer;
c :array[0..55,0..55]of boolean;
procedure quicksort(i,j:integer);
var
x,y,z,k,p :integer;
begin
x:=i;
y:=j;
z:=(a[x]+a[y])shr 1;
while xz do inc(x);
while a[y] -
02009-05-26 18:47:18@
强大的puppy
-
02009-04-16 18:17:58@
这题可以用贪心+随机化(毕竟N一个固定的值T,
那么 就做出选取Ai的决策,并做相应调整
}
Smax=Max{过程中出现的S}这个就是脑残版的遗传算法
-
02009-04-02 18:33:39@
灵异事件,
qsort=超时;
冒泡=ac
没法秒杀.....
核心代码
procedure dfs(k,maxx:longint);
var i,j,l:longint;
flag:boolean;
begin
if maxx>max then max:=maxx;
if maxx+yy[k] -
02009-03-18 16:01:52@
邻接表+搜索剪枝
-
02009-03-12 19:53:19@
排序后
最优化剪枝的DFS -
02009-03-12 19:23:12@
0ms,
写了半天方法,发现和楼下的一样…… -
02009-02-16 20:57:50@
终于AC了。本题的思路就是DFS+优化。
现将原来的书写质量从大到小排个序,然后开始搜索。
再加上最优化剪枝(当前书写质量总和加上剩余可取的和大于max)就能秒杀了。
p.s. 由于细节问题,我WA了n次…… -
02008-12-20 12:39:31@
-
02008-11-13 09:39:48@
解题思路没有一个人写,只会写些别人写过的快排,把自己的分数贴上去有个屁用!