QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#165717 | #5500. Bars | arseny_y# | TL | 1ms | 3432kb | C++23 | 1.7kb | 2023-09-05 21:09:20 | 2023-09-05 21:09:20 |
Judging History
answer
//I wrote this code 4 u today
#include <bits/stdc++.h>
template<class t> using vc = std::vector<t>;
#define nd node*
#define pnd pair<nd, nd>
typedef long long ll;
template<const ll MOD>
struct mod_mul : std::multiplies<const ll> {
ll operator()(const ll a, const ll b) {
return (a * b) % MOD;
}
};
template<typename T>
inline void sort(T &a) {
std::sort(a.begin(), a.end());
}
template<typename T>
inline void unique(T &a) {
a.resize(std::unique(a.begin(), a.end()) - a.begin());
}
template<typename T>
inline void reverse(T &a) {
std::reverse(a.begin(), a.end());
}
const ll INF = 9023372036854775808ll;
const ll MOD = 1000000007ll;
using namespace std;
const int K = 1488;
mt19937 rnd(228);
int32_t main() {
std::cin.tie(nullptr)->ios_base::sync_with_stdio(false);
#define int ll
ll t;
cin >> t;
while (t--) {
int n;
cin >> n;
vector<int> a(n);
for (auto &i : a) {
cin >> i;
}
vector<int> dp(n + 1, 0);
a.insert(a.begin(), 0);
int mx = 0;
for (int i = 1; i <= n; ++i) {
for (int j = i - 1; j >= max(1LL, i - K); --j) {
dp[i] = max(dp[i], dp[j] + (i - j) * (a[i] + a[j]));
}
for (int j = 1; j <= K && j < i; ++j) {
dp[i] = max(dp[i], dp[j] + (i - j) * (a[i] + a[j]));
}
for (int c = 0; c < K; ++c) {
if (i != 1) {
int j = rnd() % (i - 1) + 1;
dp[i] = max(dp[i], dp[j] + (i - j) * (a[i] + a[j]));
}
}
mx = max(mx, (n - i) * a[i] + dp[i]);
}
cout << mx << "\n";
}
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 3432kb
input:
2 4 5 2 2 6 5 1 5 4 4 1
output:
33 29
result:
ok 2 lines
Test #2:
score: -100
Time Limit Exceeded
input:
10000 4 5 2 2 6 5 1 5 4 4 1 197 763787596 15221694 898228999 187472305 466351873 822742732 437754202 800092772 843092246 915675776 166265020 346340615 796714085 497548541 182089610 64356048 363276768 181268733 257949015 236568898 752096761 928725929 443146784 114577469 833053207 38120723 14891030 41...
output:
33 29 382465638565 663641330002 550288673161 458946673513 296420749955 875760099157 632854843886 586309163102 225238173690 716890380495 466644027129 283505446030 585094154153 201707398762 336548832140 483300272586 606382970973 587469399170 408018096564 827347820764 975377092201 925120038848 26408806...