303 条题解
-
0zhang1991 LV 3 @ 2008-11-03 19:39:20
#include
main()
{
int t,n;
int info[101][2];
int a[1001]={0};
int i,z;
scanf("%d %d",&t,&n);
for(i=1;ia[z])
{a[z]=a[z-info[i][0]]+info[i][1];}}}
printf("%d\n",a[t]);
} -
02008-11-03 14:34:50@
var
f:array[0..1000] of integer;
t,m,i,j:integer;
v:array[1..100] of integer; {value}
c:array[1..100] of integer; {cost}function max(a,b:integer):integer;
begin
if a>b then exit(a)
else
exit(b);
end;procedure zeroonepack(cost,value:integer);
var
v:integer;
begin
for v:=t downto cost do
f[v]:=max(f[v],f[v-cost]+value);
end;begin
readln(t,m);
for i:=1 to m do
readln(c[i],v[i]);
fillchar(f,sizeof(f),0);
for i:=1 to m do
zeroonepack(c[i],v[i]);
writeln(f[t]);
end.0ms
AC -
02008-11-02 16:20:20@
我晕 用贪心10分
-
02008-11-02 10:36:25@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms#include
#include
#includeusing namespace std;
long g[301][3]={0},f[301][3001]={0};/*g[i][1]为价值,g[i][2]为耗费的时间*/
long T=0,M=0;void in(void)
{ long i;
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);scanf("%ld %ld",&T,&M);
for(i=1;i -
02008-11-01 18:49:19@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msprogram caiyao;
var max:integer;
i,m:1..1000;j,t:1..1000;
a,w:array[1..100] of 1..100;
f:array[0..10001] of integer;
begin
readln(t,m);
for i:=1 to m do readln(a[i],w[i]);
for j:=a[1] to t do f[j]:=w[1];
for i:=2 to m do
for j:=t downto a[i] do
if f[j-a[i]]+w[i]>f[j] then f[j]:=f[j-a[i]]+w[i];
max:=0;
for j:=1 to t do
if f[j]>max then max:=f[j];
writeln(max);
end.
学会了动态第一题! -
02008-10-30 23:31:33@
编译通过...
├ 测试数据 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-10-29 19:27:48@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
这是最简单的背包问题了
可以说是01背包的原题。 -
02008-10-27 23:55:24@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms想当年,在我还不知道dp是什么的时候,我在这一题上选择了现在知道叫做贪心的算法……到现在还记得当时这题只过了1个数据,三题总分21分……
-
02008-10-27 16:00:37@
什么也不了。。。这题。。。
var
t,m,v,c,i,j:longint;
f:Array[0..1000] of longint;
begin
readln(t,m);
for i:=1 to m do
begin
read(c,v);
for j:=t-c downto 0 do
if f[j]+v>f[j+c] then f[j+c]:=f[j]+v;
end;
writeln(f[t]);
end. -
02008-10-23 23:05:16@
yun,tong yang de cheng xu ti jiao liang bian fen shu bu tong!
Why?? -
02008-10-23 19:51:20@
记录号 Flag 得分 记录信息 环境 评测机 程序提交时间
R957993 Unaccepted 20 From 蔡_不菜-
P1104 CPP Vijos Dragon 2008-10-23 19:49:13From zhouyc
采药 全国青少年信息学奥林匹克分区联赛 (NOIp) 竞赛原题编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 05:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 06:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 07:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 08:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 09:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 10:答案错误... ├ 标准行输出
├ 错误行输出
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:20 有效耗时:0ms#include
using namespace std;
main()
{
int t,j,m,i;
cin>>t>>m;
int a[m+1],b[m+1],dp[1001][101];
for (i=0;i>b[i];
for (i=1;i -
02008-10-21 22:17:19@
#include
using namespace std;
main()
{
int s,m,i,j;
cin>>s>>m;
int t[m+1],v[m+1],c;
for(i=1;i>t[i]>>v[i];
for(i=0;i -
02008-10-21 19:15:45@
Nov.Demon
-
02008-10-20 23:12:35@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms01背包哈哈,小菜鸟的第十次AC!!大家不要笑呀,我会努力的!
-
02008-10-20 15:19:40@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msfor i:=1 to m do
for j:=n downto a[i] do
if c[j] -
02008-10-16 16:30:39@
难度2?。。
program medic;
var
t,m,i,j:longint;
time,value:array[1..100] of longint;
a:array[0..1000] of longint;
begin
assign(input,'medic.in');
reset(input);
fillchar(a,sizeof(a),0);
readln(t,m);
for i:=1 to m do readln(time[i],value[i]);
for i:=1 to m do
for j:=t downto time[i] do
begin
if a[j] -
02008-10-14 21:07:22@
var
t,n,i,j,time,v:longint;
a:array[1..100] of longint;
f:array[0..100000] of longint
begin
readln(t,n);
for i:=1 to n do
begin
readln(time,v);
for j:=t downto time do
if f[j] -
02008-10-13 22:07:48@
var a,b,f:array[0..1000]of integer;
m,n,i,j:integer;
begin
read(m,n);
for i:=1 to n do read(a[i],b[i]);
for i:=1 to n do
for j:=m downto a[i] do if f[j]n then n:=f[i];
writeln(n);
end. -
02008-10-13 20:24:03@
记录号 Flag 得分 记录信息 环境 评测机 程序提交时间
R924171 Accepted 1 From O.G.Loc-
P114 FPC Lora Temper 28-1-13 2:22:39From zhouyc
采药 全国青少年信息学奥林匹克分区联赛 (NOIp) 竞赛原题编译通过...
├ 测试数据 1:答案正确... ms
├ 测试数据 2:答案正确... ms
├ 测试数据 3:答案正确... ms
├ 测试数据 4:答案正确... ms
├ 测试数据 5:答案正确... ms
├ 测试数据 6:答案正确... ms
├ 测试数据 7:答案正确... ms
├ 测试数据 8:答案正确... ms
├ 测试数据 9:答案正确... ms├ 测试数据 1:答案正确... ms
Accepted 有效得分:1 有效耗时:ms
-
02008-10-11 12:16:21@
var
t,m,i,j,a,b:integer;
w:array[0..1000] of integer;
begin
readln(t,m);
fillchar(w,sizeof(w),0);
for i:=1 to m do begin readln(a,b);
for j:=t-a downto 0 do
if (w[j]+b)>w[j+a] then w[j+a]:=w[j]+b;
end;
writeln(w[t]);
end.
简单的0/1背包,怎能难倒我燕麦,是吧~O(∩_∩)O~