当前位置: 首页 > 面试经验 >

9.8度小满笔试 AK

优质
小牛编辑
95浏览
2023-09-08

9.8度小满笔试 AK

选择题又是C++又是java又是php是什么鬼,第2,3题基本是同一类型的,有点重复了。

1、

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n,k;
    string s;
    cin>>n>>k>>s;
    int cnt=0;
    for(int i=0;i<n;i++)
        if(s[i]=='A')
            cnt++;
    long long ans,r;
    if(k%cnt==0)
    {
        ans=(long long)(k/cnt-1)*n;
        r=cnt;
    }
    else
    {
        ans=(long long)k/cnt*n;
        r=k%cnt;
    }
    cnt=0;
    for(int i=0;i<n;i++)
    {
        if(s[i]=='A')
            cnt++;
        if(cnt==r)
        {
            ans+=i+1;
            break;
        }
    }
    cout<<ans;
}

2、

#include<bits/stdc++.h>
using namespace std;

const int N=50005,mod=1e9+7;

vector<int> g[N];
long long n,c[N],ans[N];

void dfs(int u,int f)
{
    // cout<<u<<endl;
    if(g[u].size()==1)
    {
        ans[u]=1;
        return;
    }
    vector<int> s;
    for(int v:g[u])
    {
        if(v!=f)
        {
            dfs(v,u);
            s.push_back(v);
        }
    }
        
    if(c[u]==1)
        ans[u]=(ans[s[0]]+ans[s[1]])%mod;
    else
        ans[u]=(ans[s[0]]*ans[s[1]])%mod;
}
int main()
{
    cin>>n;
    for(int i=2;i<=n;i++)
    {
        int p;
        cin>>p;
        g[p].push_back(i);
        g[i].push_back(p);
    }
    for(int i=1;i<=n;i++)
        cin>>c[i];
    dfs(1,0);
    cout<<ans[1];
}


3、居然是树哈希,金牌题!

#include<bits/stdc++.h>
#define int long long
using namespace std;

int n,A,B,M;
vector<int> g[10005];
long long h[10005];

long long qmi(int a,int b)
{
    long long ans=1;
    while(b)
    {
        if(b&1)
            ans=ans*a%M;
        a=a*a%M;
        b>>=1;
    }
    return ans;
}
void dfs(int u,int f)
{
    for(int v:g[u])
    {
        if(v!=f)
        {
            dfs(v,u);
            h[u]=(h[u]+(h[v]+qmi(A,u))%M*B%M)%M;
        }
    }
}
signed main()
{
    cin>>n>>A>>B>>M;
    for(int i=2;i<=n;i++)
    {
        int p;
        cin>>p;
        g[i].push_back(p);
        g[p].push_back(i);
    }
    dfs(1,0);
    cout<<h[1];
}

 类似资料: