对于最开始的时候,统计负极性电池('-')和正极性电池('+')各有多少个,优先考虑把所有 '-' 变成 '+',此时已经消耗了一定数量的操作次数,如果还有剩余的次数,此时已经全部是 '+' 了,剩余的次数都对一个电池循环操作,还剩偶数答案不变,否则答案减一。
#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
小理有一排 n 个电池,每个电池的初始极性由字符 '+'(正极朝上)或 '-'(负极朝上)描述。一次操作可以选择一个电池,将其极性反转('+' 变为 '-','-' 变为 '+')。小理想经过 恰好 k 次操作后,使得正极朝上的电池数量尽可能多。请你帮他计算最多能有多少个正极朝上的电池。
数据保证:n 和 k 满足 1≤n≤105,1≤k≤109。
第一行包含两个整数 n 和 k,用一个空格分隔。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册