1007 cats 的 k-xor
分析:
1.是对x 取余 得到最后一位
标准答案代码:
#include<bits/stdc++.h>
using namespace std;
long long kxor(long long a,long long b,long long k){
long long ans=0,w=1,c;
while(a>0||b>0)
{
c=(a+b)%k;
a/=k;
b/=k;
ans+=c*w;
w*=k;
}
return ans;
}
int main(){
ios::sync_with_stdio(false),cin.tie(0);
int T;
long long a,b,c,ans,i;
for(cin>>T;T>0;T--)
{
cin>>a>>b>>c;
if(a+b<c)
{
cout<<"0\n";
continue;
}
if(a+b==c)
{
cout<<"-1\n";
continue;
}
ans=0;
for(i=2;i<=45000;i++)
{
if(kxor(a,b,i)==c)ans++;
}
if(a+b-c>45000&&kxor(a,b,a+b-c)==c)ans++;
cout<<ans<<'\n';
}
return 0;
}
1012 cats 的电脑中毒
分析:
标准答案代码:
#include<bits/stdc++.h>
using namespace std;
string s1,s2,s3;
int c[3];
int main(){
ios::sync_with_stdio(false),cin.tie(0);
int T,n,i,ans;
for(cin>>T;T>0;T--)
{
cin>>n>>s1>>s2>>s3;
for(i=0;i<3;i++)c[i]=0;
ans=0;
for(i=0;i<n;i++)
{
if(s1[i]!=s2[i]&&s1[i]!=s3[i])c[0]++;
else if(s2[i]!=s1[i]&&s2[i]!=s3[i])c[1]++;
else if(s3[i]!=s1[i]&&s3[i]!=s2[i])c[2]++;
else ans++;
}
sort(c,c+3);
cout<<ans+c[0]+c[1]+(c[2]-c[1])/2<<'\n';
}
return 0;
}