Codeforces Round #438 (Div.1+Div.2) 总结

时间:2022-02-25 08:36:56

本来兴致勃勃的想乘着这一次上紫,于是很早很早的到了机房

但是好像并没有什么用,反而rating-=47

Codeforces Round #438(Div.1+Div.2)

今天就这样匆匆的总结一下,心情不好qaq

首先是 A.Bark to Unlock

启示:(1)不能直接把char数组进行比较!!!

(2)读题要读清,不能漏读条件!!!

 #include<bits/stdc++.h>
using namespace std;
int bo[][],n;
string s,t;
int main(){
cin>>s;
scanf("%d",&n); cin>>t;
bo[][t[]-'a']=; bo[][t[]-'a']=;
if (bo[][s[]-'a']&&bo[][s[]-'a']||bo[][s[]-'a']&&bo[][s[]-'a']){
printf("YES"); return ;
}
for (int i=;i<=n;++i){
cin>>t;
if (s==t){
printf("YES"); return ;
}
bo[][t[]-'a']=; bo[][t[]-'a']=;
if (bo[][s[]-'a']&&bo[][s[]-'a']){
printf("YES"); return ;
}
}
printf("NO");
}

然后是 B. Race Against Time

总之我的做法时先把时针,分针,秒针在秒意义下的位置,进行排序

然后把t1和t2也转化成相同状态,最后判断t1和t2分别在哪个位置

大概就是这样

 #include<bits/stdc++.h>
using namespace std;
int h,m,s,t1,t2,s1,s2,s3,a1,a2;
int main(){
cin>>h>>m>>s>>t1>>t2;
s1=*(h%)+*m+s; s2=*m+*s; s3=*s;
a1=*(t1%); a2=*(t2%);
if(s1>s2)swap(s1,s2); if(s2>s3)swap(s2,s3); if(s1>s2)swap(s1,s2);
if(a1>a2)swap(a1,a2); bool bo=;
if(s1<=a1&&a2<=s2|| s2<=a1&&a2<=s3)bo=;
if(a2<=s1||a1>=s3)bo=; if(a1<=s1&&a2>=s3)bo=;
if(bo) puts("YES"); else puts("NO");
}

最后只希望今天的CF我的rating不会掉吧,上紫我的水平可能还不够吧