第一道A了
#include<iostream>
#include<vector>
using namespace std;
int ans(int a,int b){
vector<int>aa;
vector<int>bb;
aa.push_back(a);
bb.push_back(b);
while(a>0){
aa.push_back(a/2);
a/=2;
}
while(b>0){
bb.push_back(b/2);
b/=2;
}
int la = aa.size()-1;
int lb = bb.size()-1;
//cout << la<<" "<<lb<<endl;
int i=0;
for(;i<=la&&i<=lb;i++){
if(aa[la-i]==bb[lb-i]){
continue;
}else{
break;
}
}
return la-i+lb-i+2;
return 0;
}
int main(){
int t;
cin>>t;
int a,b;
for(int i=0;i<t;i++){
cin>>a>>b;
cout<<ans(a,b)<<endl;
}
return 0;
}
第二道A了
@@ -0,0 +1,35 @@
#include<iostream>
using namespace std;
int num[105][105];
int main(){
int n,m,p;
cin>>n>>m>>p;
int a,b;
for(int i=0;i<m;i++){
cin>>a>>b;
num[a][b]=1;
num[b][a]=-1;
for(int j=1;j<=100;j++){
if(num[j][a]==1){
num[j][b]=1;
num[b][j]=-1;
}
if(num[b][j]==1){
num[a][j]=1;
num[j][a]=-1;
}
}
}
int gao=0;
int di=0;
for(int i=1;i<=n;i++){
if(num[p][i]==1)gao++;
if(num[p][i]==-1)di++;
}
//cout<<gao<<" "<<di<<endl;
for(int i=di+1;i<=n-gao;i++){
if(i>di+1)cout<<" ";
cout<<i;
}
return 0;
}
第三道 骗分10%
@@ -0,0 +1,47 @@
#include<iostream>
#include<vector>
using namespace std;
int main(){
string s;
string t;
int k;
cin>>s>>t>>k;
string ss = s+s;
int i=0;
for(i=0;i<s.size();i++){
if(ss.substr(i,s.size())==t){
break;
}
}
long long int ans=0;
//cout<<i<<endl;
int mmax = (s.size()-1)*k;
int mmin = 1*k;
//cout<<mmax<<" "<<mmin<<"****8"<<endl;
int flag=1;
vector<int>md1(s.size(),1);
vector<int>md0(s.size());
for(int j=1;j<k;j++){
vector<int>mdt(s.size(),0);
for(int p=1;p<=s.size()-1;p++){
for(int q=1;q<=s.size()-1;q++){
// cout<<p<<"+"<<q<<endl;
mdt[(p+q)%s.size()] += md1[p];
}
}
for(int p=1;p<=s.size();p++){
md1[p]=mdt[p]%1000000007;
}
}
// for(int i=0;i<s.size();i++){
// cout<<md1[i]<<" ";
// }
// for(int j=mmin;j<=mmax;j++){
// if(j%s.size()==i)ans++;
// }
cout<<md1[i-1];
//cout<<0<<endl;
return 0;
}
全部评论
(1) 回帖