QFNU-ACM 2020.04.05个人赛补题
Posted bonel
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QFNU-ACM 2020.04.05个人赛补题相关的知识,希望对你有一定的参考价值。
A.CodeForces-124A
(简单数学题)
#include<cstdio> #include<algorithm> #include<iostream> #include<cmath> using namespace std; int main(){ int a,b,n; scanf("%d %d %d",&n,&a,&b); if((n-a)>b){ printf("%d",b+1); }else{ printf("%d",n-a); } }
D.cAPS
要么只包含大写字母,要么除了第一个字母外都是大写,才进行变化,否则输出原来字符串
多注意题目要求,仔细读题。
1 #include<stdio.h> 2 #include<string.h> 3 int main(){ 4 char s[110]; 5 gets(s); 6 int len; 7 len=strlen(s); 8 int flag=0; 9 for(int i=1;i<len;i++){ 10 if(s[i]>=‘a‘&&s[i]<=‘z‘){ 11 flag=1; 12 break; 13 } 14 } 15 if(flag==1){ 16 puts(s); 17 18 }else{ 19 for(int i=0;i<len;i++){ 20 if(s[i]>=‘a‘&&s[i]<=‘z‘){ 21 printf("%c",s[i]-‘a‘+‘A‘); 22 }else{ 23 printf("%c",s[i]-‘A‘+‘a‘); 24 } 25 } 26 } 27 28 }
E.Opposites Attract
数学问题,相反数的个数相乘即可,但是注意0需要特判,数字和数组也要开__int64
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<cmath> 5 using namespace std; 6 __int64 a[11]={0},b[11]={0}; 7 int main(){ 8 __int64 n,m,sum=0; 9 scanf("%I64d",&n); 10 11 for(int i=0;i<n;i++){ 12 scanf("%I64d",&m); 13 if(m>0){ 14 a[m]++; 15 }else{ 16 b[-m]++; 17 } 18 } 19 for(int i=0;i<=10;i++){ 20 sum+=(a[i]*b[i]); 21 } 22 if(b[0]>1){ 23 sum+=(b[0]*(b[0]-1))/2; 24 } 25 printf("%I64d",sum); 26 }
F.The World IS A Theatre
组合数学问题
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<cmath> 5 using namespace std; 6 __int64 calcu(__int64 a,__int64 b); 7 int main(){ 8 __int64 m,n,sum=0,t; 9 scanf("%I64d %I64d %I64d",&n,&m,&t); 10 for(int i=4;i<=t-1;i++){ 11 sum+=(calcu(n,i)*calcu(m,t-i)); 12 } 13 printf("%I64d",sum); 14 15 } 16 __int64 calcu(__int64 a,__int64 b){ 17 __int64 i,item=1; 18 if(b>a) return 0; 19 int j=min(a-b,b); 20 for(i=1;i<=j;i++){ 21 item*=a; 22 a--; 23 item/=i; 24 25 } 26 return item; 27 28 }
以上是关于QFNU-ACM 2020.04.05个人赛补题的主要内容,如果未能解决你的问题,请参考以下文章