牛客练习赛 55
A - 等火車
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<set> #include<map> #include<cmath> #include<queue> #include<string> #include<vector> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<unordered_map> using namespace std; typedef long long ll; typedef pair<int,int> pii; const int mod=1e9+7; int main() {IO;int T=1;//cin>>T;while(T--){int s,q;cin>>s>>q;while(q--){int t;cin>>t;if(t%s) cout<<s-t%s<<'\n';else cout<<0<<'\n';}}return 0;}B - 數(shù)字游戲
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<set> #include<map> #include<cmath> #include<queue> #include<string> #include<vector> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<unordered_map> using namespace std; typedef long long ll; typedef pair<int,int> pii; const int mod=1e9+7; int main() {IO;int T=1;//cin>>T;while(T--){ll n;cin>>n;cout<<n-1<<'\n';}return 0;}C - 最大生成樹
貪心直接求即可
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<set> #include<map> #include<cmath> #include<queue> #include<string> #include<vector> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<unordered_map> using namespace std; typedef long long ll; typedef pair<int,int> pii; const ll mod=998244353; int main() {IO;int T=1;//cin>>T;while(T--){ll n;cin>>n;ll a=n/2;a%=mod;cout<<((3*a*a%mod-3*a%mod+1)%mod+mod)%mod;}return 0;}E - 樹
真就化簡式子唄???
dist(x,y)=dep(x)+dep(y)?2dep(lca(x,y))dist(x,y)=dep(x)+dep(y)-2dep(lca(x,y))dist(x,y)=dep(x)+dep(y)?2dep(lca(x,y))
于是可知
∑x=1n∑y=1ndist2(x,y)=∑x=1n∑y=1ndep2(x)+dep2(y)+2dep(x)dep(y)+4dep2(lca(x,y))?4dep(lca(x,y))×(dep(x)+dep(y))\sum_{x=1}^{n}\sum_{y=1}^{n}dist^2(x,y)=\sum_{x=1}^{n}\sum_{y=1}^{n}dep^2(x)+dep^2(y)+2dep(x)dep(y)+4dep^2(lca(x,y))-4dep(lca(x,y))×(dep(x)+dep(y))x=1∑n?y=1∑n?dist2(x,y)=x=1∑n?y=1∑n?dep2(x)+dep2(y)+2dep(x)dep(y)+4dep2(lca(x,y))?4dep(lca(x,y))×(dep(x)+dep(y))
對于前三項
∑x=1n∑y=1ndep2(x)+dep2(y)=2∑x=1ndep2(x)\sum_{x=1}^{n}\sum_{y=1}^{n}dep^2(x)+dep^2(y)=2\sum_{x=1}^{n}dep^2(x) x=1∑n?y=1∑n?dep2(x)+dep2(y)=2x=1∑n?dep2(x)
2∑x=1n∑y=1ndep(x)dep(y)=2∑x=1ndep(x)∑y=1ndep(y)=2(∑x=1ndep(x))22\sum_{x=1}^{n}\sum_{y=1}^{n}dep(x)dep(y)=2\sum_{x=1}^{n}dep(x)\sum_{y=1}^{n}dep(y)=2(\sum_{x=1}^{n}dep(x))^22x=1∑n?y=1∑n?dep(x)dep(y)=2x=1∑n?dep(x)y=1∑n?dep(y)=2(x=1∑n?dep(x))2
對于后兩項可以枚舉公共祖先
∑x=1n∑y=1ndep2(lca(x,y))=∑u=lca(x,y)dep2(u)×(sz2(u)?∑j∈son(u)sz2(j))\sum_{x=1}^{n}\sum_{y=1}^{n}dep^2(lca(x,y))=\sum_{u=lca(x,y)}dep^2(u)×(sz^2(u)-\sum_{j\in son(u)}sz^2(j))x=1∑n?y=1∑n?dep2(lca(x,y))=u=lca(x,y)∑?dep2(u)×(sz2(u)?j∈son(u)∑?sz2(j))
∑x=1n∑y=1ndep(lca(x,y))×(dep(x)+dep(y))=∑u=lca(x,y)[2∑j∈son(u)sum(j)(sz(u)?sz(j))+2dep(u)sz(u)]\sum_{x=1}^{n}\sum_{y=1}^{n}dep(lca(x,y))×(dep(x)+dep(y))=\sum_{u=lca(x,y)}[2\sum_{j\in son(u)}sum(j)(sz(u)-sz(j))+2dep(u)sz(u)]x=1∑n?y=1∑n?dep(lca(x,y))×(dep(x)+dep(y))=u=lca(x,y)∑?[2j∈son(u)∑?sum(j)(sz(u)?sz(j))+2dep(u)sz(u)]
這就是數(shù)學(xué)的魅力嗎?愛了愛了
要加油哦~
總結(jié)
- 上一篇: 刚买来的无线路由器怎么用手机设置买了新路
- 下一篇: 2019-2020 ICPC Asia