比赛10 总结
来源:互联网 发布:网络暴力 论文 编辑:程序博客网 时间:2024/06/09 20:27
- T1
- 题面
- 题意
- 方法
- 代码
- T2
- 题面
- 题意
- 代码
- T3
- 题面
- 题意
- 方法
- 代码
- T4
- 题面
- 题意
- 注意点
- 代码
- T5
- 题面
- 题意
- 代码
- T6
- 题面
- 题意
- 代码
- T7
- 题面
- 题意
- 代码
T1
题面
题意
输入n,和2*n个数。那么是否可以分成两组,使一组的任意一个数比另一个组的所有数都要大。
方法
排序判断中间两个数是否相等。
代码
#include<bits/stdc++.h>using namespace std;int main(){ int i,j,n,a[1005],k=0,l=0; cin>>n; for(i=1;i<=2*n;i++) { scanf("%d",&a[i]); } sort(a+1,a+2*n+1); if(a[n+1]>a[n]) { cout<<"YES"; } else cout<<"NO";}
T2
题面
题意
输入六个数,请问至少进行几次操作可以使前三个数之和等于后面三个数。
操作可以将任意一个数换为另外一个任意数
代码
#include<bits/stdc++.h>using namespace std;string s;int b[7],i,n,j,z,y,ans=0,bl[7],bl2[7],a[7],x;int main(){ cin>>s; for(i=0;i<=5;i++) { b[i+1]=s[i]-48; bl[i+1]=b[i+1]; bl2[i+1]=9-b[i+1]; } z=b[1]+b[2]+b[3]; y=b[4]+b[5]+b[6]; if(z==y) { cout<<0; return 0; } if(z>y) { x=z-y; for(i=1;i<=6;i++) { if(i<=3) { a[i]=bl[i]; } else { a[i]=bl2[i]; } } sort(a+1,a+7); for(i=6;i>=1;i--) { ans++; x-=a[i]; if(x<=0) { cout<<ans; return 0; } } } if(z<y) { x=y-z; for(i=1;i<=6;i++) { if(i<=3) { a[i]=bl2[i]; } else { a[i]=bl[i]; } } sort(a+1,a+7); for(i=6;i>=1;i--) { ans++; x-=a[i]; if(x<=0) { cout<<ans; return 0; } } }}
T3
题面
题意
有两个电视,要看n个节目,且不能给出n(小于等于2*10^5)和每一个节目的开始时间和结束时间(小于等于10^9),且一个节目结束后要在下一时刻才能看其他节目,问,能否全部看完这几个节目?输出YES或NO。
方法
模拟,一个个节目去判断。
代码
#include<bits/stdc++.h>using namespace std;int n,p=-1,q=-1;struct TV{ int begin,end;}tv[200005];bool cmp(TV x,TV y){ return x.begin<y.begin||(x.begin==y.begin&&x.end<y.end);}int main(){ int i,j; cin>>n; for(i=1;i<=n;i++) { scanf("%d%d",&tv[i].begin,&tv[i].end); } sort(tv+1,tv+n+1,cmp); for(i=1;i<=n;i++) { if(tv[i].begin>p) { p=tv[i].end; } else if(tv[i].begin>q) { q=tv[i].end; } else { cout<<"NO"; return 0; } } cout<<"YES";}
T4
题面
题意
有六个事件,详见题目。判断去掉几个标志牌才能使他遵守交通规则。
注意点
若超车,则说明在该事件之前直到允许超车的所有不可超车的告示牌都要被拆掉,若调整车速后小于限速,则之前大于该速度的告示牌全部要拆掉。
代码
#include<bits/stdc++.h>using namespace std;int ans=0,kk=0,k[200005],l=0;void shch(int p){ int i; kk--; for(i=p;i<kk;i++) { k[i]=k[i+1]; }}int main(){ int i,j,v,xv=500,n,m; cin>>n; for(i=1;i<=n;i++) { scanf("%d",&m); if(m==1) { scanf("%d",&v); if(v>xv) { for(j=kk;j>=1;j--) { if(k[j]>=v) { xv=k[j]; break; } else { ans++; shch(j); } } } } if(m==2) { ans+=l; l=0; } if(m==3) { scanf("%d",&xv); if(v>xv) { ans++; continue; } kk++; k[kk]=xv; } if(m==4) { l=0; } if(m==5) { xv=500; kk++; k[kk]=500; } if(m==6) { l++; } } cout<<ans;}
T5
题面
题意
代码
T6
题面
题意
代码
T7
题面
题意
代码
阅读全文
1 0
- 比赛10 总结
- 2016-9-10比赛总结
- 比赛总结
- 比赛总结
- 比赛总结
- 比赛总结
- 比赛总结
- 比赛总结
- 纪中2016.12.10比赛总结
- 比赛总结+近期总结
- 比赛总结+近期总结
- 8.8号比赛总结
- 总结小车比赛
- 蓝桥杯比赛总结
- 华中赛区比赛总结
- DIV3I比赛总结
- SRM 562 比赛总结
- SRM 563 比赛总结
- 获取文件大小
- poj 3301 Texas Trip 题解
- MySql学习笔记(一)
- 棋盘覆盖【递归分治法】
- window安装Python环境
- 比赛10 总结
- c3p0联合struts2与DBUtils组件连接SQL Server 2008数据库
- 【2017新疆网络赛】H Skiing 最短路径spfa 模版
- 求一个数组中前K大的数或者第K大的数
- python运行出现IDLE's subprocess didn't make connection. Either IDLE can't start or personal firewal的解决方案
- FPGA与DSP5509A通过MCBSP接口通信
- PAT 乙级-1025 链表反转
- D
- 5.1 父类和子类的类型转换总结