首页 > 2021/4/11百度java笔经
头像
码不停Ti2001
编辑于 2021-04-13 16:41
+ 关注

2021/4/11百度java笔经

第一道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) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐