首页 > 代码库 > Codeforces Round #375 (Div. 2)
Codeforces Round #375 (Div. 2)
题目链接:
A:The New Year: Meeting Friends
B:Text Document Analysis
C:Polycarp at the Radio
分析:这场第一题送分,第二题模拟,第三题构造+特殊处理。做出几道说几道,QAQ
A.
求出最大值与最小值之差即可
B.
多种情况判断一下,分为
‘_‘:判断前一个是否为单词,是且在括号内则cnt++,不在括号内则比较最大值
‘(‘:flag++,判断前一个是否为单词,是则同上处理
‘)‘:flag--,同样判是否为单词,是则cnt++
若为单词且不在括号内则 len++
详情见代码
1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 using namespace std; 5 6 char s[256]; 7 int n,cnt,maxlen,len,i,flag; 8 9 int main()10 {11 cin>>n>>s;12 while(s[i]!=‘\0‘)13 {14 switch(s[i++])15 {16 case ‘_‘:if(!flag) {maxlen=max(maxlen,len),len=0;} 17 else if(i>1&&(s[i-2]>=‘a‘&&s[i-2]<=‘z‘||s[i-2]>=‘A‘&&s[i-2]<=‘Z‘)) {cnt++;}break;18 case ‘(‘:flag++;maxlen=max(maxlen,len),len=0;break;19 case ‘)‘:flag--;if(s[i-2]>=‘a‘&&s[i-2]<=‘z‘||s[i-2]>=‘A‘&&s[i-2]<=‘Z‘) {cnt++;}break;20 default:if(!flag) len++;21 }22 }23 maxlen=max(maxlen,len);24 printf("%d %d\n",maxlen,cnt);25 }
C.
对每一个<=m的数记录次数,然后要求的最大的最小值即为n/m
遍历数组b,若b[i]<=m&&a[b[i]]>x||b[i]>m,那么遍历a,找到a[i]<x,然后处理,注意判断的顺序
详情见代码
1 #include<cstdio> 2 #include<algorithm> 3 #include<iostream> 4 using namespace std; 5 6 int n,m,x,a[2020],b[2020],cnt,num; 7 8 int main() 9 {10 scanf("%d %d",&n,&m);11 for(int i=1;i<=n;++i)12 {13 scanf("%d",b+i);14 if(b[i]<=m) a[b[i]]++;15 }16 x=n/m;17 for(int i=1;i<=n;++i) if(b[i]>m||b[i]<=m&&a[b[i]]>x)18 {19 //printf("b[%d]=%d\n",i,b[i]);20 for(int j=1;j<=m;++j) if(a[j]<x)21 {22 //printf("a[%d]=%d\n",j,a[j]); 23 if(b[i]<=m)a[b[i]]--;b[i]=j;a[j]++;cnt++;break;24 }25 //for(int i=1;i<=n;++i) printf("%d%c",b[i],i==n?‘\n‘:‘ ‘);26 }27 printf("%d %d\n",x,cnt);28 for(int i=1;i<=n;++i) printf("%d%c",b[i],i==n?‘\n‘:‘ ‘);29 }
Codeforces Round #375 (Div. 2)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。