The 16th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple (Mirror)
G Lucky 7 in the Pocket
签到题,然而因为刚睡醒打错一个字母WA了三次,还活生生改不出来,重构才过,?,队友们,我对不起你们。。。
# include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
for(int j=0;j<t;j++){
if(j!=0) printf("\n");
int a;
scanf("%d",&a);
if(a%7==0&&a%4!=0){
printf("%d",a);
continue;
}
int d=(a/7+1)*7;
for(int i=d;;i++){
if(i%7==0&&i%4!=0){
printf("%d",i);
break;
}else{
continue;
}
}
}
return 0;
}
F Abbreviation
另一个签到题,除了首字母位置上的,其他位置上的元音字母不输出就行
# include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while(t--){
string s;
cin>>s;
for(int i=0;i<s.length();i++){
if(i==0){
printf("%c",s[i]);
}else{
if(s[i]=='a'||s[i]=='e'||s[i]=='i'||s[i]=='y'||s[i]=='o'||s[i]=='u'){
continue;
}else{
printf("%c",s[i]);
}
}
}
printf("\n");
}
return 0;
}
I Fibonacci in the Pocket
可以打表得到斐波那契函数的奇偶情况,(奇数输出1,偶数输出0),发现是以三个一循环的
在发现这个规律后,再来考虑这个问题。每三个一循环,那么数就变成了偶数,0是偶数,可以用0来代替其他偶数,1是奇数,可以代替其他奇数,那么只要算除了完整循环之外的就行(感觉没有说清楚,看代码吧QAQ),有一个坑点就是要注意是否在区间里面有完整的循环,这一点很重要,不是完整循环的单独出来考虑
# include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int main()
{
int t;
scanf("%d",&t);
while(t--){
string a,b;
LL as=0,bs=0;
LL sum=0;
cin>>a;
cin>>b;
int lena=a.length();
int lenb=b.length();
int l=lena-1;
int flag1=0;
int aa=a[l]-'0';
int bb=b[l]-'0';
if(lenb==lena){
for(int i=0;i<lena;i++){
if(a[i]==b[i]) continue;
else{
l=i;
}
}
if(l!=(lena-1)) flag1=1;
else{
if((bb-aa)>=3) flag1=1;
}
}
//cout<<"@"<<flag1<<endl;
if((lena!=lenb)||flag1){
for(int i=0;i<a.length();i++){
int d=a[i]-'0';
as=((as%3)+(d%3))%3;
}
as=as%3;
//cout<<"a"<<" "<<as<<endl;
if(as==0){
sum+=0;
}else if(as==1){
sum+=2;
}else if(as==2){
sum+=1;
}
for(int i=0;i<b.length();i++){
int d=b[i]