找回密码
 立即注册
首页 业界区 安全 C++算法算法训练第十二天

C++算法算法训练第十二天

志灿隐 4 小时前
C++算法算法训练第十二天

以下为牛客挑战
今日收获

[code]知道了小根堆的写法priority_queueq;用于小根堆,每次直接用top()取,得到里面最小的。问图中有多少个连续的子集0001100我们只需要取判断,s!=s[i+1]的个数就行了。我们可以看到一共有3个。费马小定理求逆元。ksm(2,mod-2,mod)---》2的-1次方。组合数学 for(int i=2;i t; while (t--)#define TESTconst int N=2e5+10,M=1e3+10,mod=1e9+7;int a[N],b[N],c[N],pre[N];void solve(){    int n;    cin>>n;    string s,s1;    cin>>s>>s1;    for(int i=0;i>v;        g.push_back(v);        g[v].push_back(u);    }    int ans=0;    auto dfs=[&](auto &&self,int u,int fa,int s,int dep)->void{        s*=ksm(g.size(),mod-2,mod);        s%=mod;        if(u>1){            ans+=s*dep%mod;            ans%=mod;        }        for(auto &v:g){            if(v==fa)continue;            self(self,v,u,s,dep+1);        }        s*=g.size();//回溯        s%=mod;    };    dfs(dfs,1,0,1,1);    cout

相关推荐

您需要登录后才可以回帖 登录 | 立即注册