文章图片
文章图片
题意分析:
【c++|Codeforces 693 D. Even-Odd Game】给定一个数组,Alice和Bob轮流抽取数组中的数,
(1)当Alice抽取的是偶数,Alice的分数加上这个数;如果是奇数,Alice不加分
(2)当Bod抽取的是奇数,Bob的分数加上这个数;如果是偶数,Bob不加分
那么我们分别来看一下奇数和偶数给Alice和Bob的情况:(score来记录分差
)
(1)如果是偶数的话,给Alice的话,score+x
,给Bob的话,score
不变
(2)如果是奇数的话,给Alice的话,score+0
,给Bob的话,score-x
那么,Alice想要将score最大,Alice一直拿最大的数;Bob也同样如此。
答案可能爆int
#include
#include
#include using namespace std;
void solve()
{ int n;
cin >> n;
vector a(n);
for(int i = 0;
i < n;
i++) cin >> a[i];
sort(a.rbegin() , a.rend());
// 使用逆迭代器,从大到小排序
long long s = 0;
// 记录分数
for(int i = 0;
i < n;
i++)
{if(i % 2 == 0) // Alice
{if(a[i] % 2 == 0) s += a[i];
}else // Bob
{if(a[i] % 2) s -= a[i];
}
}
if(s > 0) puts("Alice");
else if(!s) puts("Tie");
else puts("Bob");
}int main()
{ int t;
cin >> t;
while(t--) solve();
return 0;
}
推荐阅读
- 数据结构|Leetcode——989. 数组形式的整数加法
- 刷题记录|力扣周赛310场题解
- C++基础|C++实现Fibonacci数列
- Leetcode|Leetcode989: 数组形式的整数加法 (简单题)python3
- 补题大全|2021CCPC网络赛题解加总结
- 算法|字节跳动VQScore算法拿下ICME 2021“压缩UGC视频质量评估”比赛第一名
- 图卷积及图像超分辨率干货分享|基于TensorRT和C++推理的SOTA图像超分辨率网络
- #|基于改进的蚂蚁群算法求解最短路径问题、二次分配问题、背包问题【Matlab&Python代码实现】
- #|基于粒子群算法的电力系统无功优化研究(IEEE14节点)(Matlab代码实现)