xjoi奋斗群群赛10

来源:互联网 发布:vue.js 日期格式化 编辑:程序博客网 时间:2024/05/29 19:32

群赛地址:

https://vjudge.net/contest/185399#problem

(缺后三题)

A - 初出茅庐

 CodeForces - 845A 

题意:给出2*n个数,要把他们分成长度为n的两队,使一队的数比另一队都小.

题解:

#include<bits/stdc++.h>using namespace std;int n,a[1100];int main(){cin>>n;n*=2;for(int i=1;i<=n;i++)cin>>a[i];sort(a+1,a+1+n);if(a[n/2]==a[n/2+1])cout<<"NO";else cout<<"YES";}

B - 崭露头角

 CodeForces - 845B 

题意:给出一个六个数字的字符串,每次修改可以把一个字符改成任意一个数字,求使左边三个字符和右边三个字符和相等的最小操作次数.

题解:

#include<bits/stdc++.h>using namespace std;int main(){char a[6];int sum1=0,sum2=0,lb,ls,rb,rs,k;scanf("%s",a);for(int i=0;i<6;i++)a[i]-=48;sum1=a[0]+a[1]+a[2];sum2=a[3]+a[4]+a[5];for(k=0;sum1!=sum2;k++){lb=ls=0;rb=rs=3;for(int j=0;j<3;j++){if(a[j]>a[lb])lb=j;if(a[j]<a[ls])ls=j;}for(int j=3;j<6;j++){if(a[j]>a[rb])rb=j;if(a[j]<a[rs])rs=j;}if(sum1<sum2){if(9-a[ls]>a[rb]){int t=min(sum2-sum1,9-a[ls]);sum1+=t;a[ls]+=t;}else{int t=min(sum2-sum1,(int)a[rb]);sum2-=t;a[rb]-=t;}}else{if(a[lb]>9-a[rs]){int t=min(sum1-sum2,(int)a[lb]);sum1-=t;a[lb]-=t;}else{int t=min(sum1-sum2,9-a[rs]);sum2+=t;a[rs]+=t;}}}cout<<k;}

C - 渐入佳境

 CodeForces - 845C 

题意:某人有两台电视,他有一些节目要看,一台电视在一个时间只能播放一个节目.给出节目的开始与结束时间,问他能否看所有节目.

题解:

#include<bits/stdc++.h>using namespace std;int p1=-1,p2=-1,n;struct point{int l,r;}a[200010];bool cmp(const point &a,const point &b){return a.r<b.r;}int main(){cin>>n;for(int i=1;i<=n;i++)scanf("%d%d",&a[i].l,&a[i].r);sort(a+1,a+1+n,cmp);int i;for(i=1;i<=n;i++){if(p1>p2){if(p1<a[i].l)p1=a[i].r;else{if(p2<a[i].l)p2=a[i].r;else break;}}else{if(p2<a[i].l)p2=a[i].r;else{if(p1<a[i].l)p1=a[i].r;else break;}}}if(i==n+1)printf("YES");else puts("NO");}


D - 炉火纯青

 CodeForces - 845D 

题意:某人在开车,路上会遇到各种路标:有限速,取消限速,禁止超车,允许超车.他也会改变车速和超车.求使他不违反交规的最少忽视路标次数.

题解:

#include<bits/stdc++.h>using namespace std;int n,type,s,sumover,speed,ans;stack<int>sumspd;int main(){scanf("%d",&n);while(n--){scanf("%d",&type);switch(type){case 1:{scanf("%d",&speed);while(!sumspd.empty()&&sumspd.top()<speed){sumspd.pop();ans++;}break;}case 3:{scanf("%d",&s);sumspd.push(s);while(!sumspd.empty()&&sumspd.top()<speed){sumspd.pop();ans++;}break;}case 5:while(!sumspd.empty())sumspd.pop();break;case 2:ans+=sumover;sumover=0;break;case 4:sumover=0;break;case 6:sumover++;break;}}printf("%d",ans);}

E - 登峰造极

 CodeForces - 845E 


F - 事了拂衣去

 CodeForces - 845F 


G - 深藏功与名    

CodeForces - 845G