codeforce 893B (模拟)
来源:互联网 发布:淘宝楠楠家是洋垃圾 编辑:程序博客网 时间:2024/06/05 00:26
大意:有n行座位,每行如下分布,共8个座位
现在有k组人,每组人数在1~10000 之间,要求给他们安排座位,并且使不同组的人不相邻;{1, 2}, {3, 4}, {4, 5}, {5, 6} or {7, 8}.被认为是相邻的座位
先处理中间的四连坐,再处理两遍的二连坐,
①让四连座坐大于等于4的和三的组数,如果有剩余,证明剩余组的人数小于3,在模拟分配一下;注意两个四连座可分配最多三个二人组;
②如果四连座没剩余,则只剩2的座位,模拟分配一下
自己的写法确实啰嗦,网上有代码length60-,Orz,但这个是自己想出来的,贴一下吧
#include <iostream>#include <stdio.h>#include <algorithm>using namespace std;int a[200];int main(){int n,sum,de,v,re,flag,three,one,two,nu_f,nu_tw,k,r,ans,minn;while (scanf("%d%d",&k,&n)!=EOF){ sum=0; flag=0; three=two=one=nu_f=nu_tw=0;for (int i=0;i<n;i++)scanf("%d",&a[i]);sort(a,a+n);nu_tw=k*2;nu_f=k;for (int i=n-1;i>=0;i--){if (a[i]!=0){if (a[i]>=4){if (nu_f>0){r=a[i]/4;if (r>nu_f){a[i]-=4*nu_f;nu_f=0; }else{nu_f-=r;a[i]=a[i]%4; }}}if (a[i]==3&&nu_f>0){nu_f--;a[i]=0; }if (a[i]==1)one++;if (a[i]==2)two++;}elsebreak;} if (nu_f!=0) { minn=min(two,one); int mn=minn; minn-=nu_f; if (minn>=0) { two-=nu_f; one-=nu_f; if (one+two>nu_tw) cout<<"NO"<<endl; else cout<<"YES"<<endl;}else{two-=mn;one-=mn;nu_f-=mn;if (two==0){if (nu_f*2+nu_tw<one)cout<<"NO"<<endl;elsecout<<"YES"<<endl;}else{ int kk=nu_f/2; kk=kk*3+nu_f%2; nu_f=kk;if (nu_f+nu_tw<two)cout<<"NO"<<endl;elsecout<<"YES"<<endl;}} } else { flag=0; sort(a,a+n); for (int i=n-1;i>=0;i--) { if (a[i]!=0) { if (a[i]>=2) { r=a[i]/2; if (nu_tw>=r) { nu_tw-=r; if (a[i]%2!=0) { if (nu_tw<=0) { flag=1; break; } else nu_tw-=1; } } else { flag=1; break; } } else { if (nu_tw<=0) { flag=1; break; } nu_tw--;} }elsebreak; } if (flag) cout<<"NO"<<endl; else cout<<"YES"<<endl; } }return 0;}
阅读全文
0 0
- codeforce 893B (模拟)
- 【模拟】Codeforce 302B
- Codeforce 264 B Caisa and Pylons(模拟)
- codeforce 777B(水)
- Gluttony(codeforce-891B)
- Codeforce 893A Chess For Three (模拟)
- Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) B(模拟) && codeforce 724B Batch Sort
- CodeForce 825B Five-In-a-Row<简单模拟>
- codeforce-A. Gabriel and Caterpillar(模拟)
- CodeForce 3B Lorry(贪心)
- codeforce 329B Biridian Forest(bfs)
- codeforce 3B. Lorry(贪心)
- Codeforce 741B (XOR运算)
- codeforce 4B(思维水题)
- CodeForce 124B Permutations(水题)
- Codeforce # B Sequence Formatting
- codeforce 298 B Sail
- 【codeforce】B. Flag Day
- Material Design 中的应用栏该怎么设计?
- 5475. 【NOIP2017提高组正式赛】逛公园
- dsoframer控件学习小结(打开WORD,EXCEL等文件)
- Retrofit 上传文件显示进度及踩坑记录
- 分阶段剖析新站seo教程优化三部曲
- codeforce 893B (模拟)
- JS选项卡切换
- 80C51单片机模仿实例100—1 LED闪烁
- 【一周头条盘点】中国软件网(2017.11.20~2017.11.24)
- 5476. 【NOIP2017提高组正式赛】奶酪
- 模型优化:BatchNorm合并到卷积中
- iframe与父页面、子页面的交互
- 道理都懂,为什么还是做不好需求分析?
- 合并俩个已排序的链表