C++算法算法训练第十二天
C++算法算法训练第十二天以下为牛客挑战
今日收获
知道了小根堆的写法priority_queueq;用于小根堆,每次直接用top()取,得到里面最小的。问图中有多少个连续的子集0001100我们只需要取判断,s!=s的个数就行了。我们可以看到一共有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,b,c,pre;void solve(){ int n; cin>>n; string s,s1; cin>>s>>s1; for(int i=0;i>v; g.push_back(v); g.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 yyds。多谢分享 感谢分享,学习下。 感谢,下载保存了 用心讨论,共获提升! 鼓励转贴优秀软件安全工具和文档! yyds。多谢分享 感谢,下载保存了 前排留名,哈哈哈 热心回复! 收藏一下 不知道什么时候能用到 感谢分享,下载保存了,貌似很强大 感谢,下载保存了 感谢分享,下载保存了,貌似很强大 前排留名,哈哈哈 懂技术并乐意极积无私分享的人越来越少。珍惜
页:
[1]