求助!!!(悬关)!
  • 板块学术版
  • 楼主cmy20110301
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/7/31 12:49
  • 上次更新2023/11/3 06:46:28
查看原帖
求助!!!(悬关)!
938311
cmy20110301楼主2023/7/31 12:49

小奇采药

Description

小奇是只天资聪颖的喵,他的梦想是成为世界上最伟⼤的医师。

为此,他想拜喵星球最有威望的医师为师。

医师为了判断他的资质,给他出了⼀个难题。

医师把他带到⼀个到处都是草药的⼭洞里对他说:“小奇,这个⼭洞里有⼀些不同的草药,采每⼀株都需要⼀些时间,每⼀株也有它自身的价值。

我会给你⼀段时间,在这段时间里,你可以采到⼀些草药。

如果你是⼀只聪明的喵,你应该可以让采到的草药的总价值最⼤。

Format

Input

第 R ⾏包括 R 个整数 h ,表示数据组数。

对于每组数据,第 R ⾏包括 k 个整数,M ,K ,表示草药的数目和能用于采药的时间。

接下来 M ⾏,每⾏两个整数 ti, vi。

保证 m, ti, vi 在限制范围内均匀随机⽣成。

Output

输出 h ⾏,每⾏ R 个数字,表示每组数据答案。

Limitation

对于 30W 数据,1 ≤ n ≤ 20, 1 ≤ m, vi, ti ≤ 104

对于 60W 数据,1 ≤ n ≤ 100, 1 ≤ m, vi, ti ≤ 105

对于 100W 数据,1 ≤ T ≤ 10, 1 ≤ n ≤ 150, 1 ≤ m, vi, ti ≤ 10^9

Samples

输入数据 1

1
3 70
71 100
69 1
1 2

输出数据 1

3

输入数据 2

10
20 8144
6707 1438
4263 1389
4927 1752
1545 1670
9745 7333
2080 3625
9513 1368
7600 7140
7796 8966
6561 8994
3874 6190
1640 18
7779 9087
1241 2947
7228 2345
6119 705
8408 4203
6202 3573
9228 4403
250 2310
20 7126
3129 2560
8455 3913
2151 5724
6324 6388
1705 2378
1256 6919
5635 2938
4879 7097
6961 1031
748 6596
1065 4124
1068 2248
1429 2628
9610 9134
6660 9100
9227 2638
5465 3038
3797 43
3021 3850
7319 8563
20 4086
6977 7954
3285 2447
5933 7229
447 3993
6484 6798
7265 3140
724 3277
1118 7108
9603 1283
955 6353
3981 1327
3049 1435
9204 8306
8091 461
6901 9738
5833 4995
1864 4761
5258 1499
9837 2927
8957 5209
20 3606
5833 1674
8807 3270
8441 6225
8807 1211
8804 987
9727 1715
3370 7890
6923 6597
1471 2647
218 7453
2424 4456
1614 5886
1434 7747
2996 502
7352 8399
5781 5553
6352 4812
7318 1379
9786 1281
8367 8682
20 3758
6320 8582
8568 3625
2374 2537
4573 5912
3913 1085
5975 4053
6898 4814
2052 3019
8253 1259
740 6295
5419 4285
4348 4968
161 7712
261 4098
4310 7663
752 8282
365 7013
405 9700
6739 1767
6457 979
20 6132
1337 6797
1081 3043
5424 8097
5517 2803
6419 6297
6154 9590
3327 8032
738 5987
2892 2347
470 7584
9811 2545
5926 6891
9256 604
6142 5729
5619 9465
4352 8059
8139 5987
3401 5371
4984 5628
7540 6581
20 3510
181 1739
9718 4247
4178 4124
511 2938
1162 255
4096 9987
1924 8526
9547 5081
7368 1010
5689 2698
2909 4995
8427 5266
5143 5121
2758 4469
1150 3015
4177 2683
7498 6975
8408 3225
4681 3747
2960 2636
20 8138
3146 2062
8405 3383
6217 1463
7072 5888
5892 9304
7444 5398
4008 9830
899 1884
7759 3263
8969 7565
4249 651
1096 6065
9875 380
1723 6741
3952 2442
8035 5941
3386 9788
9183 8972
9315 9342
5231 9690
20 2093
8180 8057
8251 9983
2287 6619
824 8251
6369 7479
4989 468
5351 599
8721 7153
6944 3176
3054 2754
2911 1561
2917 1099
7538 7255
7646 5827
1551 2674
3827 7280
4051 4939
3078 2609
2637 5505
193 7330
20 5123
8317 7604
5070 7776
8408 2568
5975 2437
3434 7845
4566 1950
3747 1610
9797 4575
4335 1202
2077 5015
5943 7053
2308 4532
7711 8007
8966 8549
2619 6055
1716 6705
2513 8212
8502 3932
7310 4775
9462 1160

输出数据 2

15072
25991
20731
21086
43100
28400
13280
24520
15581
14917

本人代码

#include <bits/stdc++.h>
#define int long long
using namespace std;
int t,m,f[1000005],w[1000005],v[1000005];
signed main()
{
    int H;
    cin>>H;
    while(H--) 
	{
        cin>>m>>t;
        for(int i=1;i<=m;i++)
             >>w[i]>>v[i];
        for(int i=1;i<=m;i++)
        {
            for(int j=t;j>=w[i];j--)
                f[j]=max(f[j],f[j-w[i]]+v[i]);
        }
        cout<<f[t]<<endl;
        memset(f,0,sizeof(f));
        memset(w,0,sizeof(w));
        memset(v,0,sizeof(v));
    }
    return 0;
}

只打了60分,RE了4个点。。。

2023/7/31 12:49
加载中...