【codeforces】Round #269 ABCD
来源:互联网 发布:北京unity3d培训2ds 编辑:程序博客网 时间:2024/05/30 04:20
A:判断熊象,六个参数,有4个是腿,必须一样,另外两个如果相同是象,不同是熊,不符合要求是喵星人!
B:给出几个数,将他们以不下降的方式排一下,若有三种及其以上排法,输出YES,然后任意输出三种排法(序号),有SPJ。
C:有n张牌,搭建房子,问有多少种可以搭出来的层数。
来张图吧!表示怎么搭,看不懂?GO HITTING ME!(来打我吖?)
我来一个20以内的表:01001,01101,10111,11111,没有能摆出2的,不要问我为什么。
D:给一个大墙(高度略参差不齐),然后再给一面小墙,往上拼接!
比如下图,答案就是2,同样不要问我为什么,看代码吧。
E:没读题。
题解:
A,B:略、
C:枚举每一层,看能不能得到,我代码里for每次循环都是一层,fr表示当前层数。
D:预处理+KMP。快速水过,代码写渣了,只需要对m==1特判一下,其它就是正常的裸KMP,来一发就过了。
E:233。
代码:按顺序是ABCD,大不了你去找样例跑一遍就知道哪题是哪题了。
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int f[10],num[10];int main(){// freopen("test.in","r",stdin); int i,j,k,flag=0; for(i=1;i<=6;i++)scanf("%d",&f[i]); sort(f+1,f+7); for(i=1;i<=6;i++) { if(f[i]==f[i-1]) { num[i]=num[i-1]; } num[i]++; if(num[i]==4) { flag=1; for(j=0;j<4;j++) { f[i-j]=0; } } } if(!flag) { printf("Alien\n"); return 0; } else { sort(f+1,f+7); if(f[5]==f[6]) { puts("Elephant"); } else puts("Bear"); } return 0;}
#include <cstdio>#include <cstring>#include <algorithm>#define N 2005using namespace std;struct KSD{ int x,f; bool operator < (const KSD& a)const { return x<a.x; }}s[N];struct Syndra{ int v,next;}e[N];int head[N],cnt,num[N],visit[N];int n,ans,m;void add(int u,int v){ cnt++; e[cnt].v=v; e[cnt].next=head[u]; head[u]=cnt;}int pre[N];int ppp[N],star;void print(int x,int p){ int flag=0; if(x>m) { ans++; for(star=n;p;p=pre[p])ppp[star--]=s[p].f; for(star=1;star<=n;star++)printf("%d ",ppp[star]); puts(""); if(ans==3)exit(0); return ; } int i,v; for(i=head[x];i;i=e[i].next) { v=e[i].v; if(!visit[v]) { flag=1; visit[v]=1; pre[v]=p; print(x,v); visit[v]=0; } } if(!flag)print(x+1,p);}int main(){ int i,j,k,flag=0; scanf("%d",&n); for(i=1;i<=n;i++)scanf("%d",&s[i].x),s[i].f=i; sort(s+1,s+n+1); for(i=1;i<=n;i++) { if(s[i].x!=s[i-1].x)num[++m]=1; else num[m]++; if(num[m]>=3)flag+=2; if(num[m]==2)flag++; add(m,i); } if(flag<2) { puts("NO"); return 0; } else { puts("YES"); print(1,0); } return 0;}
#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>using namespace std;long long n,sum,now,ans,fr;int main(){ long long i,j,k; cin>>n; for(sum=now=2;sum<=n;now+=3,sum+=now) { fr++; if((n+fr)%3==0)ans++; } cout<<ans; return 0;}
#include <cstdio>#include <cstring>#include <algorithm>#define N 201000using namespace std;int fix,a[N],pre[N],n,m,s[N],ans;int main(){// freopen("test.in","r",stdin); int i,j,k,x,y; scanf("%d%d",&n,&m); if (m == 1) { printf("%d\n", n); return 0; } if (n < m) { printf("0"); return 0; } scanf("%d",&x); for(i=1;i<n;i++) { scanf("%d",&y); a[i]=y-x;x=y; }n--; scanf("%d",&x); for(i=1;i<m;i++) { scanf("%d",&y); s[i]=y-x;x=y; }m--; s[m + 1] = 1 << 30; for(fix=0,i=2;i<=m;i++) { while(fix&&s[fix+1]!=s[i])fix=pre[fix]; if(s[fix+1]==s[i])fix++; pre[i]=fix; } for(fix=0,i=1;i<=n;i++) { while(fix&&s[fix+1]!=a[i])fix=pre[fix]; if(s[fix+1]==a[i])fix++; if(fix==m)ans++; } printf("%d\n",ans); return 0;}
好吧,其实我是来贴代码的,题解神马的根本就没好好写。
不爽?来打我吖?!!
复制去Google翻译翻译结果
0 0
- 【codeforces】Round #269 ABCD
- Codeforces Round 237 ABCD
- Codeforces Round #318(ABCD)
- Educational Codeforces Round 27 ABCD
- CodeForces Round#34 ABCD解题报告
- Codeforces Beta Round #67 (Div. 2) ABCD
- Codeforces Round #191 (Div. 2) ABCD
- Codeforces Round #193 (Div. 2) ABCD
- Codeforces Round #211 (Div. 2) ABCD
- Codeforces Round #213 (Div. 1) ABCD
- Codeforces Round #208 (Div. 2) ABCD
- Codeforces Round #219 (Div. 1) ABCD
- Codeforces Round #220 (Div. 2) ABCD
- Codeforces Round #221 (Div. 1) ABCD
- Codeforces Round #223 (Div. 1) ABCD
- Codeforces Round #222 (Div. 2) ABCD
- Codeforces Round #232 (Div. 1) ABCD
- Codeforces Round #240 (Div. 1) ABCD
- 深入理解HTTP协议(图文版)
- 滤波器设计指标
- 数字信号处理中各种频率关系
- 学习FPGA的网站推荐
- 常见算法在实际项目中的应用
- 【codeforces】Round #269 ABCD
- 配置ssh公钥访问oschina
- Codeforces #269 (Div. 2) B. MUH and Important Things(水题:麻烦)
- 使用接插件需要注意的问题
- 绽笛秤哑路局炙塘肛士炼吐攘蚊淮
- 轮愿猩炙幽境裙嫉冉扛抢谟吐耘共
- 琅讣咕吻然俨剖撬稚抑瘟捕忌讼逗
- 势桨晾阎翘妆垂揽渴翘琅尘痘虑鸵
- 揭压蓖咽嫡诚探急共信厣厣官厣谙