当时晚上打CF时候比较晚,加上是集训期间的室友都没有晚上刷题的习惯,感觉这场CF很不在状态.A题写复杂WA了一发后去厕所洗了个脸冷静了下,换个简单写法,可是用cin加了ios::sync_with_stdio(false)还是WA了,真无语.B题读半天题,读懂后轻松A了,看了下比赛时间就快结束了,把C题读了一遍后,感觉能做,最后还是选择了睡觉23333..................
A题大意:
平平平 增平减 ,缺任一都可,判断是否为这样的数列
#include<stdio.h> #include<cmath> #include<string.h> #include<iostream> #include<algorithm> #define INF 0x3f3f3f3f using namespace std; #define maxn 1005 #define inf 0x3f3f3f3f int main() { int n,a[maxn]; while(~scanf("%d",&n)) { for(int i=1;i<=n;i++) scanf("%d",&a[i]); a[n+1]=inf; int p=2; while(a[p]>a[p-1]) p++; while(a[p]==a[p-1]) p++; while(a[p]<a[p-1]) p++; if(p>n) printf("YES "); else printf("NO "); } return 0; }
B题大意:
就是题目意思不好理解而已QAQ
给出三个字符串,其中第一和第二字符串长度都为26,在第三个字符串每个字符
若在第一个字符串找到相同的英文字母,则将第二个字符串中对应的英文字母打
印(注意大小写即可),若无对应,则将直接打印TwT
#include<stdio.h> #include<cmath> #include<cstring> #include<stdlib.h> #include<iostream> #include<algorithm> #define INF 0x3f3f3f3f using namespace std; #define maxn 1005 char a[maxn],b[maxn],c[maxn]; int main() { while(~scanf("%s%s%s",a,b,c)) { int len1=strlen(a),len2=strlen(c),p; for(int i=0;i<len2;i++) { if(c[i]>='a'&&c[i]<='z') { for(int j=0;j<len1;j++) if(a[j]==c[i]) {p=j;break;} printf("%c",b[p]); } else if(c[i]>='A'&&c[i]<='Z') { for(int j=0;j<len1;j++) if(a[j]==c[i]+32) {p=j;break;} printf("%c",b[p]-32); } else printf("%c",c[i]); } printf(" "); } return 0; }