2020年04月25日个人赛
2020-04-29 16:03:12来源:博客园 阅读 ()
2020年04月25日个人赛
A - Romaji
题意:本题比较简单,给你一个字符串,要你判断字符串中的每一个辅音字符后面是否有一个元音字符。
题解:简单签到题,模拟即可。
代码:
#include<iostream> #include<cstring> #include<algorithm> #define ll long long using namespace std; int main(){ string ptr; string ar="aeiou";//云 cin>>ptr; int f=1; for(int i=0;i<ptr.length();i++){ if(ptr[i]!='n'&&ar.find(ptr[i])==-1){//辅音 if(ar.find(ptr[i+1])!=-1){ }else{ f=0; break; } } } if(f==1){ cout<<"YES"<<endl; }else{ cout<<"NO"<<endl; } return 0; }
B - Turn the Rectangles
题意:本题比较简单,给你一长串长方形的长宽,要你判断在相对位置不发生改变,你可以将任意一个矩形进行旋转,角度为90度,方向任意的情况下,能否形成高度递减排列。
题解:本题是一个简单题,我们令num为第一个矩形的中两条边中的最大值,之后我们不多更新num的值,遍历剩下的输入序列,num取之后的每一个矩形的两条边中小于上一个num的值并且最接近num的值,如果整个序列的矩形否能找到,则我们能达到题目的要求,反之,不能。
代码:
#include<iostream> #include<cstring> #include<set> #include<algorithm> #define ll long long using namespace std;int main(){ ll n; cin>>n; ll a,b; cin>>a>>b; int num=max(a,b); ll x,y; int f=1; for(int i=1;i<n;i++){ cin>>x>>y; if(x<=num&&y<=num){ num=max(x,y); }else{ if(x<=num){ num=x; } else if(y<=num){ num=y; }else{ f=0; } } } if(f==0){ cout<<"NO"<<endl; }else{ cout<<"YES"<<endl; } return 0; }
D - Stages
题意:本题也是一个简单题,也是一个比较有趣的题,大概意思就是说该你一个长度为len的字符串,从中选出k个组成字符串s,要求s中的字符不能重复,且它们的和最小(“和”等于每个字母子在字母表中的排序位置的序号有关,比如'a'=1,'z'=26);
题解:这里,我们可以先将输入的字符按升序排序,这样就保证了选出的字符的和是最小的,然后根据:(ptr[i]-t)>1是否成立来判断所选的两个字母是否符合位置的相关要求。
代码:
#include<iostream> #include<cstring> #include<set> #include<algorithm> #define ll long long using namespace std; int main(){ int n,k; char ptr[100],c; cin>>n>>k; cin>>ptr; sort(ptr,ptr+n); ll sum=(ptr[0]-'a'+1); char t=ptr[0]; int num=1; for(int i=1;i<n;i++){ if(num==k){ break; } if(ptr[i]-t>1){ t=ptr[i]; sum=sum+(ptr[i]-'a'+1); num++; } } if(num==k){ cout<<sum<<endl; }else{ cout<<-1<<endl; } // cout<<ptr; return 0; }
E - Planning The Expedition
题意:这一题就比较有意思了,要你去分食物,比较奇怪的是每一个人它们只吃一种食物,总共有m袋,n个人,每天吃一袋,问最多能吃几天?
题解:这是一个模拟题,你只要把这个分食物的过程模拟出来就可以了,我们该开始时候一袋一袋分,这样就可以保证每个人只吃一种食物,人后在两袋两袋的分、三袋三袋的分,一直进行到最后即可。
代码:
#include<iostream> #include<cstring> #include<algorithm> #define ll long long using namespace std; int main(){ int n,m,t; cin>>n>>m/*食品袋子的总数量*/; int num[120]={0}; int re=-1; for(int i=0;i<m;i++){ cin>>t; num[t]++; re=max(re,t); } int temp[100]={0}; int ans=0; for(int i=1/*每一个人所得到的数量*/;i*n<=m;i++){ int tt=1;/*第 t 种*/ for(int r=1;r<=100;r++) temp[r]=num[r]; for(int j=1;j<=n;j++){//分到第 j 个人 while(temp[tt]<i){ tt++; if(tt>re) break; } temp[tt]=temp[tt]-i; } if(tt<=re) ans=max(ans,i); } cout<<ans<<endl; return 0; }
原文链接:https://www.cnblogs.com/blogxsc/p/12805215.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:模板大全
- 2020年04月19日个人赛 2020-04-23
- 2020年04月12日个人赛 2020-04-18
- 2020年04月10日UCF Local Programming Contest 2017 2020-04-10
- 2020年3月28日UCF Local Programming Contest 2016 2020-03-31
- 2020年3月21日Benelux Algorithm Programming Contest 2019 2020-03-25
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash