Codeforces Round #269 (Div. 2) A,B,C,D
来源:互联网 发布:plc编程介绍 编辑:程序博客网 时间:2024/06/06 03:33
CodeForces - 471A
首先要有四个数相等,然后剩下两个数不同就是Bear,否则就是Elephant。
#include <bits/stdc++.h>using namespace std;typedef pair<int,int> PII;int num[10];int a;int main(){ memset(num,0,sizeof(num)); for(int i=1;i<=6;i++) { scanf("%d",&a); num[a]++; } bool flag=false; for(int i=1;i<=9;i++){ if(num[i]>=4){ num[i]-=4; flag=true; break; } } if(flag){ for(int i=1;i<=9;i++){ if(num[i]==2){ puts("Elephant"); return 0; } } puts("Bear"); } else{ puts("Alien"); } return 0;}
CodeForces - 471B
先要判断满足,然后sort完本身是一种,然后交换一次又是一种,标记掉,再交换,就有三种了。
#include <bits/stdc++.h>using namespace std;typedef pair<int,int> PII;int tp;int num[2010];int n;struct asd{ int id; int w;};asd a[2010];bool cmp(asd x,asd y){ if(x.w==y.w) return x.id<y.id; return x.w<y.w;}int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i].w); num[a[i].w]++; a[i].id=i; } sort(a+1,a+n+1,cmp); int sum=1; for(int i=1;i<=2000;i++){ if(num[i]){ sum*=num[i]; if(sum>=3){ puts("YES"); for(int i=1;i<=n;i++) printf("%d ",a[i].id); puts(""); for(int i=1;i<=n;i++){ if(i+1<=n){ if(a[i].w==a[i+1].w){ printf("%d %d ",a[i+1].id,a[i].id); tp=i; i++; } else printf("%d ",a[i].id); } else printf("%d ",a[i].id); } puts(""); for(int i=1;i<=n;i++){ if(i+1<=n){ if(a[i].w==a[i+1].w&&i!=tp){ printf("%d %d ",a[i+1].id,a[i].id); i++; } else printf("%d ",a[i].id); } else printf("%d ",a[i].id); } return 0; } } } puts("NO"); return 0;}
CodeForces - 471C
#include <bits/stdc++.h>using namespace std;typedef long long LL;typedef pair<int,int> PII;int main(){ LL n; int k=0; scanf("%lld",&n); for(LL i=3-n%3;; i+=3) { if((2*(n+i))<(3*i*(i+1))) break; k++; } printf("%d\n",k); return 0;}
CodeForces - 471D
思路:
先特判掉m=1的时候,因为只要满足变化规律匹配就OK,所以相邻做个差,得到两个新串,然后就是求b串在a串里出现的次数(注意这个次数aa在aaa中出现2次),KMP即可;#include <bits/stdc++.h>using namespace std;typedef long long LL;typedef pair<int,int> PII;const int N=2e5+10;int n,m;int a[N],b[N];int a_num,b_num;int Next[N];void GetNext(){ int i=0,j=-1; Next[0]=-1; while(i<b_num){ if(j==-1||b[i]==b[j]) Next[++i]=++j; else j=Next[j]; }}int KMP(){ GetNext(); int ans=0; int i=0,j=0; while(i<a_num){ if(j==-1||a[i]==b[j]) { i++; j++; if(j==b_num){ j=Next[j]; ans++; } } else j=Next[j]; } return ans;}int main(){ int pre,x; scanf("%d%d",&n,&m); if(m==1){ printf("%d\n",n); return 0; } a_num=b_num=0; scanf("%d",&pre); for(int i=2;i<=n;i++){ scanf("%d",&x); a[a_num++]=x-pre; pre=x; } scanf("%d",&pre); for(int i=2;i<=m;i++){ scanf("%d",&x); b[b_num++]=x-pre; pre=x; } printf("%d\n",KMP()); return 0;}
0 0
- Codeforces Round #269 (Div. 2) A,B,C,D
- Codeforces Round #179 (Div. 2)A、B、C、D
- Codeforces Round #186 (Div. 2)A、B、C、D、E
- Codeforces Round #202 (Div. 2) (A、B、C、D)
- Codeforces Round #211 (Div. 2)(A,B,C,D)
- Codeforces Round #220 (Div. 2)(A,B,C,D)
- Codeforces Round #231 (Div. 2)A, B, C, D
- Codeforces Round #258 (Div. 2)-(A,B,C,D,E)
- Codeforces Round #246 (Div. 2) A,B,C,D
- Codeforces Round #261 (Div. 2) A,B,C,D,E
- Codeforces Round #259 (Div. 2) A/B/C/D
- Codeforces Round #257 (Div. 2) A/B/C/D
- Codeforces Round #256 (Div. 2) A/B/C/D
- Codeforces Round #262 (Div. 2)-A,B,C,D
- Codeforces Round #263 (Div. 2) A,B,C,D,E
- Codeforces Round #264 (Div. 2) A,B,C,D,E
- Codeforces Round #276 (Div. 2) A B C D
- Codeforces Round #277 (Div. 2) A,B,C,D,E
- Android-25种开源炫酷动画框架
- 关于linux shel脚本语言的多分支判断结构
- 前端问题——CSS合集
- java中函数使用变长参数
- java导入excel
- Codeforces Round #269 (Div. 2) A,B,C,D
- 信号与系统实用总结
- Eagerly caching bean '' to allow for resolving potential circular references
- android中的ListView控件
- JS闭包
- 506. Relative Ranks
- 安卓-通知栏
- Altium Designer画元器件封装三种方法
- 转载:BufferedInputStream和BufferedOutputStream用法简介