1998(965div2)
A. Find K Distinct Points with Fixed Center
给你三个整数
找到
做麻烦了...
void solve() {
int x, y, k;cin >> x >> y >> k;
if (k & 1) {
cout << x * k << " " << y * k << '\n';k--;
} else {
cout << x * (k / 2) + 100000000 << " " << y * (k / 2) + 100000000 << '\n';
cout << x * (k - k / 2) - 100000000 << " " << y * (k - k / 2) - 100000000 << '\n';
k -= 2;
}
for (int i = 1;i <= k;i++) {
if (i & 1)
cout << - i - 1 + 10000000 << " " << - i - 1 + 10000000 << '\n';
else
cout << i - 10000000 << " " << i - 10000000 << '\n';
}
}
void solve() {
int x, y, k; cin >> x >> y >> k;
for(int i = 0; i < k - k % 2; i++){
cout << x - (i & 1 ? 1 : -1) * (i / 2 + 1) << " " << y << "\n";
}
if(k & 1){
cout << x << " " << y << "\n";
}
}
B. Minimize Equal Sum Subarrays
给你一个长度为
求长度为
也就是说要让两个排列尽量不要出现在
rotate(p.begin(), p.begin() + 1, p.end());
void solve() {
int n;cin >> n;
vector<int> a(n + 1), b(n + 1);
for (int i = 1;i <= n;i++)cin >> a[i];
for (int i = 1;i < n;i++)cout << a[i + 1];
cout << a[1] << ' ';cout << '\n';
}
C. Perform Operations to Maximize Score
给你一个长度为
您最多可以执行以下操作
- 选择一个索引
( ),使得 .设置 (即将 增加 )。
您的分数定义为
找出如果以最佳方式进行运算,你能得到的最高分。
Solution
这个题目我赛时思路完全正确的,不知道哪里错误了。
思路:只有两种情况:
- 全部
交给 即 使得这个值达到最大,则此时最大值就是 - 最大值就是不能操作的数,此时的
全部去提升中位数,运用二分答案即可。
打完牛客周赛 55 继续补