ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#197897 | #2399. 全连 | tkswls | 100 | 1929ms | 34288kb | C++ | 1.2kb | 2023-11-16 11:27:38 | 2023-11-16 12:06:10 |
answer
#include <bits/stdc++.h>
#define ll long long
#define int long long
using namespace std;
ll maxn[1000006], f[1000006], n, a[1000006], ans;
int t[1000006];
struct node {
int name, num, id;
bool operator<(const node& p)const {
return name > p.name;
}
};
priority_queue<node> que;
inline int lowbit(int p) {
return p & -p;
}
inline void add(int p, int q) {
while (p <= n) {
maxn[p] = max(maxn[p], q);
p += lowbit(p);
}
}
inline int query(int p) {
int cnt = 0;
while (p >= 1) {
cnt = max(cnt, maxn[p]);
p -= lowbit(p);
}
return cnt;
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> t[i];
}
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
for (int i = 1; i <= n; i++) {
while (que.size()) {
if (que.top().name <= i) {
add(que.top().id, que.top().num);
// cout << que.top().id << ' ' << que.top().num << "[]\n";
que.pop();
} else {
break;
}
}
// cout << maxn[1] << "!!!\n";
f[i] = query(i - t[i]) + a[i] * t[i];
ans = max(ans, f[i]);
que.push(node{i + t[i], f[i], i});
// cout << f[i] << ' ' << maxn[i] << "||";
}
cout << ans;
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 5
Accepted
time: 0ms
memory: 1272kb
input:
5 5 3 5 5 1 480208416 560202151 230193932 182093570 999846296
output:
2680452749
result:
ok single line: '2680452749'
Test #2:
score: 5
Accepted
time: 0ms
memory: 1272kb
input:
10 3 2 9 3 4 1 4 7 1 8 32905395 72720216 54089340 289875333 847413895 598817637 206111130 144722879 ...
output:
4191763507
result:
ok single line: '4191763507'
Test #3:
score: 5
Accepted
time: 0ms
memory: 1276kb
input:
15 9 2 13 7 2 4 10 4 2 3 3 1 2 2 2 860947809 695835339 13996045 709112244 119816376 441006970 575090...
output:
10490468135
result:
ok single line: '10490468135'
Test #4:
score: 5
Accepted
time: 0ms
memory: 1272kb
input:
20 2 10 15 4 7 1 2 2 7 3 17 6 4 4 5 4 4 4 2 1 457301510 838843149 408120703 43551970 387080784 10169...
output:
11883246598
result:
ok single line: '11883246598'
Test #5:
score: 5
Accepted
time: 0ms
memory: 1320kb
input:
1000 103 2 2 13 4 5 183 175 29 1 675 1 199 195 1 8 7 19 1 945 4 6 574 8 1 13 2 16 2 40 175 33 2 3 35...
output:
1162897804752
result:
ok single line: '1162897804752'
Test #6:
score: 5
Accepted
time: 0ms
memory: 1364kb
input:
2000 1252 2 2 3 189 1847 22 114 7 48 15 157 1160 1419 10 31 76 114 2 369 2 5 1 460 63 1 8 1130 63 17...
output:
2771903520915
result:
ok single line: '2771903520915'
Test #7:
score: 5
Accepted
time: 2ms
memory: 1480kb
input:
5000 4842 6 3352 7 318 163 170 1 4325 378 15 2 1289 1 2 7 946 12 1945 1 9 9 255 4 4543 8 3006 28 2 3...
output:
7861941062084
result:
ok single line: '7861941062084'
Test #8:
score: 5
Accepted
time: 2ms
memory: 1672kb
input:
10000 87 8310 1 21 9174 12 1524 1 1 457 1 1380 9929 121 2 3846 4 4 41 6282 9 8 445 807 362 32 8986 8...
output:
17334962387424
result:
ok single line: '17334962387424'
Test #9:
score: 5
Accepted
time: 10ms
memory: 2348kb
input:
30000 79 110 19001 3892 137 20285 2 104 167 12458 29 12 1 7544 35 18127 147 21 2712 29763 868 24597 ...
output:
51316652640940
result:
ok single line: '51316652640940'
Test #10:
score: 5
Accepted
time: 18ms
memory: 2980kb
input:
50000 1547 1187 141 27 15818 12251 7271 29 2 8 13 2 3818 398 8167 17161 14 16962 6760 540 8784 7 240...
output:
88026787637620
result:
ok single line: '88026787637620'
Test #11:
score: 5
Accepted
time: 32ms
memory: 4632kb
input:
100000 9736 5862 1 2099 11612 21 24021 14624 446 396 81 2 1899 49526 781 69432 7 10177 1320 124 471 ...
output:
180410914037070
result:
ok single line: '180410914037070'
Test #12:
score: 5
Accepted
time: 67ms
memory: 7940kb
input:
200000 1412 5 2 13253 1 1 1 185647 47 1 507 150635 376 7 74 47462 53 4 5411 3 5154 130 19 265 8 185 ...
output:
376348758470573
result:
ok single line: '376348758470573'
Test #13:
score: 5
Accepted
time: 165ms
memory: 17752kb
input:
500000 383 119 2 1429 1026 29 301750 117 28940 26 375666 2347 249 62156 74903 8 22 2670 430211 140 3...
output:
959624672322043
result:
ok single line: '959624672322043'
Test #14:
score: 5
Accepted
time: 323ms
memory: 27892kb
input:
800000 886 1 403044 156168 25247 19 6686 1935 1483 338 2 7 26 6 84 62996 2 1 4 21109 41190 9828 7294...
output:
1542878834606328
result:
ok single line: '1542878834606328'
Test #15:
score: 5
Accepted
time: 380ms
memory: 34216kb
input:
1000000 237 426 2208 4 36156 454152 1 48361 76425 46521 3 684890 41403 32 274 7077 53 20 6 4 191644 ...
output:
1908394076801355
result:
ok single line: '1908394076801355'
Test #16:
score: 5
Accepted
time: 363ms
memory: 34288kb
input:
1000000 60 188620 109 225192 99984 137997 442 75 6451 26437 72089 45937 92 2011 49603 10 613 30841 7...
output:
1915598573008513
result:
ok single line: '1915598573008513'
Test #17:
score: 5
Accepted
time: 17ms
memory: 4420kb
input:
100000 314 314 314 314 314 314 314 314 314 314 314 314 314 314 314 314 314 314 314 314 314 314 314 3...
output:
94625535409026
result:
ok single line: '94625535409026'
Test #18:
score: 5
Accepted
time: 23ms
memory: 4520kb
input:
100000 2050 2050 2050 2050 2050 2050 2050 2050 2050 2050 2050 2050 2050 2050 2050 2050 2050 2050 205...
output:
99469079815450
result:
ok single line: '99469079815450'
Test #19:
score: 5
Accepted
time: 259ms
memory: 32560kb
input:
1000000 1003 1003 1003 1003 1003 1003 1003 1003 1003 1003 1003 1003 1003 1003 1003 1003 1003 1003 10...
output:
969470905350325
result:
ok single line: '969470905350325'
Test #20:
score: 5
Accepted
time: 268ms
memory: 32772kb
input:
1000000 15023 15023 15023 15023 15023 15023 15023 15023 15023 15023 15023 15023 15023 15023 15023 15...
output:
1003927881833136
result:
ok single line: '1003927881833136'
Extra Test:
score: 0
Extra Test Passed