CodeForce #429 DIV2 A B C题解
来源:互联网 发布:矩阵特征值分解 编辑:程序博客网 时间:2024/06/15 06:01
A:http://codeforces.com/contest/841/problem/A
题意:n个气球分给k个人,是否有这样的解:每个人手里的气球都颜色不重复
思路:个数最多的颜色个球的个数 >k, 就必然有人手里两个球
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;int main(int argc, char *argv[]) {//freopen("A.txt", "r", stdin);int SZ = 26;int n,k;int num[SZ];while(~scanf("%d%d", &n, &k)) {memset(num, 0, sizeof(num));string s;cin >> s;for (int i = 0; i < s.size(); i++) {num[s[i] - 'a'] += 1;}int mx = 0;for (int i = 0; i < SZ; i++) {mx = max(mx, num[i]);//cout << num[i] << " " << mx << endl;}//cout << mx << endl;if (mx > (int)(k))printf("NO\n");elseprintf("YES\n");}return 0;}
B:http://codeforces.com/contest/841/problem/B
题意:一个数组,A可以删除和为奇数的连续子串,B可以删除和为偶数的连续子串,不能操作的输,A是先手,问谁赢
思路:
1、如果和为奇数,A一定赢
2、如果和为偶数,那么有两种情况,一是没有奇数,那么A一定输,如果有奇数,那么奇数必然是偶数个。A作为先手,只能取和为奇数的序列,那么剩下的和必然是奇数,而接下来B只能取和为偶数的序列,B取剩下的就和一定是奇数,那么第二轮A就能取完剩下的所有数字,于是A就赢了。
综合来看,只要有奇数出现,B一定会熟
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <cstdlib>using namespace std;int main(int argc, char *argv[]) {int x, n, r;while(~scanf("%d", &n)) {r = 2;for (int i = 0; i < n; i++) {scanf("%d", &x);if(x%2) {r = 1;} }if (r == 1) {printf("First\n");} else {printf("Second\n");}}return 0;}
C:http://codeforces.com/contest/841/problem/C
解很简单,看下example应该都能找到规律。
证明:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int SIZE = 1e5 *2 +1;//int A[SIZE];struct Node {int v;int idx;Node(){}Node(int vv, int i) {v = vv;idx = i;}};Node A[SIZE];Node B[SIZE];bool cmp(const Node a, const Node b) {return a.v > b.v;}bool cmp2(const Node a, const Node b) {return a.v < b.v;}bool cmp3(const Node a, const Node b) {return a.idx < b.idx;}int main() {//freopen("A.txt", "r", stdin);int m;while(~scanf("%d", &m)) {//cout << "m:" << m << endl;for (int i =0; i < m; i++) {scanf("%d", &(A[i].v));A[i].idx = i;}for (int i = 0; i < m; i++) {scanf("%d", &(B[i].v));B[i].idx = i;}sort(A, A+m, cmp);sort(B, B+m, cmp2);for (int i = 0; i < m; i++) {//cout << "i:" << i << " A:" << A[i].v << "," << A[i].idx << " B:"<< B[i].v << "," << B[i].idx << endl;A[i].idx = B[i].idx;} sort(A, A+m, cmp3);printf("%d", A[0].v);for (int i = 1; i < m; i++) {printf(" %d", A[i].v);}putchar('\n');}return 0;}
阅读全文
1 0
- CodeForce #429 DIV2 A B C题解
- Codeforce Round #437 div2 A B C E 题解
- Codeforce Round #439 A B C 题解
- codeforces round # 273 div2 A, B, C题题解
- Codeforces Round #434 div2 A, B , C,D 题 题解
- codeforce #247 B(div2)
- CodeForce 339:A+B+C
- cf_290(div2)A,B,C
- codeforce 416 div2 C
- codeforce 168#div2 B题
- Codeforce 445(A,B,C,D,E)
- Codeforce 621(A,B,C,D,E)
- CodeForce 837 A/B/C解题报告
- Codeforces 228 div2 A,B,C
- codeforces 239 (div2) A B C D
- codeforces 208(div2) A+B+C+D
- Codeforces Rounds #254 div2:A,B,C
- codeforces 260 div2 A,B,C
- Dorado 64位安装所需全部软件
- qt开发环境
- 对现阶段存在并发场景的OD项目相关编码的一些思考
- 在Eclipse中开发C/C++项目
- 计算机设备名称英语词汇(1)
- CodeForce #429 DIV2 A B C题解
- 设计模式(3) 代理模式 动态代理
- 如何让QT支持C++11
- win10 安装tensorflow
- Win10 TensorFlow(gpu)安装详解
- TI-CC2640R2-cache as ram 应用
- Git Push 避免用户名和密码方法(整理,已验证ok)
- 计蒜客-搜狗输入法的分词算法
- UVA 12563 Jin Ge Jin Qu hao(01背包|经典动态规划)