Codeforces Round #436 (Div. 2)
来源:互联网 发布:王者荣耀数据封神榜67 编辑:程序博客网 时间:2024/06/01 08:10
感冒复出后的第一场,水题场,之前还在为自己未能参加水题南宁网络赛而遗憾,现在立刻来了一场水体版cf
然而,没想到却因为看错题目,而迎来了一场血崩
A. Fair Game
思路:一开始害怕困难时轮流nim问题,看来半天,发现只有一步棋,那直接判就好咯
#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <cstring>#include <map>#include <cmath>#include <string>#include <queue>#include <stack>using namespace std;const int maxn = 1e5+10;int a[maxn];int main(){ int n; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) { scanf("%d",&a[i]); } sort(a,a+n); bool yes = true; int a1 = a[0]; int a2 = a[n-1]; if(a1==a2) { yes = false; } for(int i=0;yes&&i<(n/2);i++) { if(a[i]!=a1) { yes = false; break; } } for(int i=(n/2);yes&&i<n;i++) { if(a[i]!=a2) { yes = false; break; } } if(yes) { printf("YES\n%d %d\n",a1,a2); } else { printf("NO\n"); } } return 0;}
B. Polycarp and Letters
思路:判断pretty position 由于n比较小,直接O(n^3)暴力了
#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <cstring>#include <map>#include <cmath>#include <string>#include <queue>#include <stack>using namespace std;const int maxn = 1e5+10;char s[maxn];bool in[26];int main(){ int n; while(scanf("%d",&n)!=EOF) { scanf("%s",s); int maxsum = 0; for(int i=0;i<n;i++) { for(int j=i;j<n;j++) { memset(in,false,sizeof(in)); int sum = 0; for(int k=i;k<=j;k++) { if(s[k]>='A'&&s[k]<='Z') { sum = 0; break; } if(!in[s[k]-'a']) { sum++; in[s[k]-'a'] = true; } } if(sum > maxsum) { maxsum = sum; } } } printf("%d\n",maxsum); } return 0;}
c题看错题意,直接血崩,看样子像个单变量枚举,找时间再补吧
D. Make a Permutation!
思路:改变最少元素生成最小字典序全排列,那么先枚举位数,在同时双指针枚举数字,双管齐下,关键脑子一定要清晰
#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <cstring>#include <map>#include <cmath>#include <string>#include <queue>#include <stack>using namespace std;const int maxn = 2e5+10;int a[maxn];//posbool in[maxn];//numbool jump[maxn];//numint t[maxn];//numint main(){ int n; while(scanf("%d",&n)!=EOF) { memset(t,0,sizeof(t)); memset(in,false,sizeof(in)); memset(jump,false,sizeof(jump)); int sum = 0; for(int i=0;i<n;i++) { scanf("%d",&a[i]); if(!in[a[i]]) { in[a[i]] = true; sum++; } t[a[i]]++; } int pos = 0; int addnum = 1; for(int pos=0;pos<n;pos++) { while(in[addnum]) { addnum++; } if(jump[a[pos]]) { t[a[pos]]--; a[pos] = addnum; addnum++; } else { if(t[a[pos]]>1) { if(a[pos]<addnum) { jump[a[pos]] = true; } else { t[a[pos]]--; a[pos] = addnum; addnum++; } } } } printf("%d\n",n-sum); for(int i=0;i<n-1;i++) { printf("%d ",a[i]); } printf("%d\n",a[n-1]); } return 0;}
文章地址:http://blog.csdn.net/owen_q/article/details/78089341
阅读全文
1 0
- Codeforces Round #436 (Div. 2)
- Codeforces Round #436 (Div. 2)
- [Codeforces Round #436](Div. 2)
- Codeforces Round #436 (Div. 2)
- Codeforces Round #436 (Div. 2)
- Codeforces Round #436 (Div. 2)
- [Codeforces Round #436 (Div. 2)]
- Codeforces Round #436 (Div. 2)
- Codeforces Round #436 (Div. 2)
- Codeforces Round #436 (Div. 2)
- Codeforces Round #436 (Div. 2)
- Codeforces Round #436 (Div. 2) E. Fire
- Codeforces Round #436 (Div. 2) (题解)
- Codeforces Round #436 (Div. 2)E.Fire
- Codeforces Round #436 (Div. 2) C. Bus
- Codeforces Round #436 (Div. 2) Fire
- Codeforces Round #436 (Div. 2)Bus
- Codeforces Round #436 (Div. 2) 解题报告
- 米勒电容引起的米勒效应
- ChecklistBox的使用总结
- 抽象类
- 深入理解ThreadLocal
- @Scheduled用法
- Codeforces Round #436 (Div. 2)
- 基于神经网络的水下机器人运动预测控制方法-读后总结
- 统计学术语及解释(二)
- 二进制
- 二进制运算
- UVA 12096 The SetStack Computer(stack及其它STL容器综合使用)
- [Dubbo]dubbo只订阅不注册+直连提供者
- Hadoop for .NET Developers(十四):了解MapReduce和Hadoop流
- (一)Spring核心-IoC容器的实现