QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#647404#8354. T2junee0 8ms41144kbC++141.3kb2024-10-17 13:54:212024-10-17 13:54:22

Judging History

你现在查看的是最新测评结果

  • [2024-10-17 13:54:22]
  • 评测
  • 测评结果:0
  • 用时:8ms
  • 内存:41144kb
  • [2024-10-17 13:54:21]
  • 提交

answer

#include<iostream>
#include<iomanip>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<random>
#include<chrono>
using namespace std;
mt19937_64 rnd(chrono::steady_clock::now().time_since_epoch().count());
typedef long long LL;
const int N=2e6+10;
int n,m,k;
LL f[N],st[N];
LL ans[N];
struct node{
	int x,v,t;
}p[N];
struct query{
	int op,x;
}q[N];
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	cin>>n>>m>>k;
	for(int i=1,x,y;i<=n;i++)cin>>x>>y,p[i]={x,y,x*y};
	for(int i=1;i<=m;i++){
		int op,x;
		cin>>op>>x;
		q[i]={op,x};
	}
	memset(f,0,sizeof f);
	memset(st,0,sizeof st);
	for(int T=1;T<=m;T++){
		int op=q[T].op,x=q[T].x;
		if(op==1)st[x]=1;
	}
	for(int i=1;i<=n;i++){	
		if(st[i])continue;
		for(int j=k;j>=p[i].t;j--)
			f[j]=max(f[j],f[j-p[i].t]+p[i].v);
	}
	for(int T=m;T;T--){
		int op=q[T].op,x=q[T].x;
		if(op==1){
			for(int j=k;j>=p[x].t;j--)
				f[j]=max(f[j],f[j-p[x].t]+p[x].v);
		}
		else if(op==2)ans[T]=f[x]-1;
	}
	for(int i=1;i<=m;i++){
		if(ans[i]!=0)cout<<ans[i]+1<<'\n';
	}
	return 0;
}
/*
感觉 sub2 是好做的,直接做一个大小为 k 的背包?感觉会 T 咋办?

欸!我有一计,直接时间回溯,把最后的背包做出来,一步一步往前坐,能行吗? 
 
*/

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 11
Accepted
time: 4ms
memory: 40916kb

input:

3205 5000 5000
1 1
2 1
3 1
7 1
8 1
9 1
10 1
11 1
12 2
13 1
14 2
16 1
17 2
20 3
22 1
24 1
26 2
27 1
30 1
32 2
33 1
34 1
41 1
44 2
49 2
51 1
54 2
58 2
61 2
65 2
66 1
68 2
70 1
71 2
72 2
74 8
75 3
76 5
77 1
78 7
79 5
80 5
81 1
82 2
84 1
86 6
87 6
88 3
89 9
90 5
91 1
92 2
93 3
95 7
96 2
97 2
98 8
99 8
1...

output:

81
69
32
40
42
90
32
83
44
50
91
70
53
65
82
50
68
59
86
38
67
70
79
45
50
65
88
43
37
74
29
63
73
7
53
57
75
20
44
50
47
36
73
55
30
42
78
75
47
80
66
87
36
21
73
23
88
37
68
53
57
28
46
59
56
69
28
84
26
41
64
59
35
60
5
42
35
74
63
54
87
73
83
59
39
38
45
48
89
69
62
23
82
84
31
85
56
87
81
80
66...

result:

ok 2487 lines

Test #2:

score: 11
Accepted
time: 4ms
memory: 40064kb

input:

162 5000 5000
836 4
837 5
838 5
839 5
840 4
841 4
842 4
843 4
844 4
845 4
846 5
847 4
848 4
849 5
850 4
851 5
852 5
853 4
854 5
855 4
856 5
857 4
858 4
859 4
860 5
861 5
862 4
863 4
864 4
865 5
866 5
867 4
868 5
869 4
870 4
871 5
872 4
873 4
874 5
875 4
876 4
877 5
878 5
879 4
880 4
881 5
882 5
883 ...

output:

5
0
0
3
0
5
5
0
0
4
5
0
0
0
4
3
0
5
4
0
0
0
0
0
0
4
0
0
4
0
0
5
0
0
3
3
0
0
3
0
0
4
4
0
3
3
0
4
0
0
0
4
0
0
0
0
0
0
0
0
5
0
0
0
0
0
3
0
0
0
4
0
0
5
0
0
3
5
4
0
0
3
0
4
5
4
0
0
5
4
0
0
0
0
3
0
0
0
4
5
5
5
0
4
4
4
3
5
5
5
0
3
0
3
0
4
0
4
5
3
0
0
0
3
0
5
3
0
0
0
0
0
3
0
0
4
0
0
0
0
3
4
5
3
0
4
5
3
5
0
...

result:

ok 4838 lines

Test #3:

score: 0
Wrong Answer
time: 8ms
memory: 41144kb

input:

3182 5000 5000
1 2597
2 404
3 409
4 220
5 604
6 248
7 48
8 145
9 97
10 356
11 111
12 158
13 192
14 309
15 168
16 251
17 234
18 68
19 223
20 111
21 235
22 152
23 188
24 48
25 75
26 9
27 34
28 153
29 58
30 18
31 153
32 76
33 150
34 52
35 121
36 37
37 7
38 79
39 96
40 101
41 8
42 66
43 61
44 77
45 83
4...

output:

404
464
0
894
701
60
758
461
758
413
758
59
708
607
551
724
59
304
97
403
290
193
194
0
242
49
49
2
363
301
146
205
363
9
97
146
335
333
335
99
410
354
243
343
97
334
343
211
211
236
142
9
134
194
148
60
134
168
128
94
101
0
168
76
165
101
100
61
156
95
2
111
109
152
51
9
9
110
63
20
72
44
44
71
56
...

result:

wrong answer 50th lines differ - expected: '1', found: '236'

Subtask #2:

score: 0
Time Limit Exceeded

Test #11:

score: 0
Time Limit Exceeded

input:

1277351 1 2000000
2 2
5 1
7 3
8 4
10 1
12 1
15 2
16 1
18 1
22 1
25 1
28 3
29 1
32 1
35 1
36 1
38 2
40 1
41 2
42 1
43 2
44 2
45 1
48 1
49 1
50 2
54 2
55 2
56 1
58 2
59 2
60 2
62 1
66 1
68 3
69 1
70 3
72 2
76 1
78 1
79 2
81 2
82 3
84 2
85 1
86 2
89 1
90 2
91 2
92 1
93 1
96 3
98 3
99 2
100 3
101 1
102 ...

output:


result:


Subtask #3:

score: 0
Time Limit Exceeded

Test #21:

score: 0
Time Limit Exceeded

input:

5000 5000 2000000
1 1
2 1
3 1
4 1
6 1
7 1
8 1
9 1
10 1
11 1
14 1
15 3
17 2
18 2
21 1
22 1
24 1
25 3
27 1
28 2
29 1
30 1
31 1
32 1
33 1
34 1
35 1
37 1
38 1
39 1
40 2
41 2
43 1
45 1
47 1
49 1
50 1
51 1
54 1
55 1
56 1
61 1
62 2
64 1
65 1
67 2
68 2
70 2
72 2
74 1
76 3
79 2
82 4
83 2
84 1
88 1
91 1
92 1
...

output:


result:


Subtask #4:

score: 0
Time Limit Exceeded

Test #31:

score: 0
Time Limit Exceeded

input:

191299 5000 300000
1 1
5 1
6 2
7 1
8 1
10 1
11 2
12 2
17 1
18 1
19 1
20 1
21 1
22 2
25 1
28 1
29 2
30 1
31 2
34 1
36 1
37 1
38 1
40 1
42 1
43 1
44 1
45 1
47 2
48 1
51 1
53 3
54 2
56 2
58 2
59 2
61 2
63 4
64 2
67 1
68 2
69 2
70 1
72 1
76 1
77 1
78 1
80 2
83 1
84 1
87 1
88 1
89 1
91 2
93 1
95 1
96 1
9...

output:


result:


Subtask #5:

score: 0
Time Limit Exceeded

Test #41:

score: 0
Time Limit Exceeded

input:

1278949 5000 2000000
4 1
9 1
12 1
13 1
15 2
20 1
21 2
26 1
36 1
39 2
43 1
46 2
59 1
64 1
66 1
71 1
73 1
75 1
78 2
83 1
87 1
89 1
92 1
97 1
103 1
104 1
108 1
111 1
113 1
114 1
117 2
118 1
130 1
137 1
140 1
151 1
152 1
155 1
158 2
163 1
164 1
165 1
168 1
172 1
173 1
183 1
185 1
186 1
192 1
208 1
210 2...

output:


result: