【BZOJ】【P4401】【块的计数】【题解】【???】
2016-01-16 18:57
281 查看
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4401
一开始写了一个O(约数个数*n)的……T了……
咦我记得n的约数个数好像不到O(sqrt(n))啊……(虽然肯定比logn大……)
忘记了TAT……求路过的同学告诉我n的约数个数究竟有多大……
枚举约数,统计子树size%B的个数
Code:
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+5;
int n;
vector<int>G[maxn];
int fa[maxn],siz[maxn],lef[maxn];
int B;
void dfs(int u){
siz[u]=1;
for(int i=0;i<G[u].size();i++){
int v=G[u][i];
if(v==fa[u])continue;
fa[v]=u;
dfs(v);
siz[u]+=siz[v];
}
}
int main(){
scanf("%d",&n);
for(int i=1;i<n;i++){
int u,v;scanf("%d%d",&u,&v);
G[u].push_back(v);
G[v].push_back(u);
}
dfs(1);
int ans=0;
static int cnt[maxn];
for(int i=1;i<=n;i++)cnt[siz[i]]++;
for(int i=1;i<=n;i++)if(n%i==0){
int cot=0;
for(int j=i;j<=n;j+=i)cot+=cnt[j];
if(cot==n/i)ans++;
}
cout<<ans<<endl;
return 0;
}
一开始写了一个O(约数个数*n)的……T了……
咦我记得n的约数个数好像不到O(sqrt(n))啊……(虽然肯定比logn大……)
忘记了TAT……求路过的同学告诉我n的约数个数究竟有多大……
枚举约数,统计子树size%B的个数
Code:
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+5;
int n;
vector<int>G[maxn];
int fa[maxn],siz[maxn],lef[maxn];
int B;
void dfs(int u){
siz[u]=1;
for(int i=0;i<G[u].size();i++){
int v=G[u][i];
if(v==fa[u])continue;
fa[v]=u;
dfs(v);
siz[u]+=siz[v];
}
}
int main(){
scanf("%d",&n);
for(int i=1;i<n;i++){
int u,v;scanf("%d%d",&u,&v);
G[u].push_back(v);
G[v].push_back(u);
}
dfs(1);
int ans=0;
static int cnt[maxn];
for(int i=1;i<=n;i++)cnt[siz[i]]++;
for(int i=1;i<=n;i++)if(n%i==0){
int cot=0;
for(int j=i;j<=n;j+=i)cot+=cnt[j];
if(cot==n/i)ans++;
}
cout<<ans<<endl;
return 0;
}
相关文章推荐
- BZOJ3275 Number (最小割)
- [bzoj1003] [ZJOI2006]物流运输trans
- [bzoj1500][NOI2005]维修数列
- [bzoj1208] [HNOI2004]宠物收养所
- [bzoj1269][AHOI2006]文本编辑器editort
- [bzoj1503][NOI2004]郁闷的出纳员
- bzoj3926 广义后缀自动机
- bzoj2780 广义后缀自动机+parent树+Dfs序+树状数组
- BZOJ1997 2-sat
- bzoj4027 贪心
- [BZOJ2038][2009国家集训队][莫队][分块]小z的袜子
- [BZOJ2594][WC2006][LCT][MST]水管局长数据加强版
- [BZOJ2300][HAOI2011][动态凸包]防线修建
- [BZOJ1045][HAOI2008][贪心]糖果传递
- [BZOJ2539][CTSC2000][KM]丘比特的烦恼
- [BZOJ1004][HNOI2008][Burnside引理][DP]Cards
- [BZOJ1202][HNOI2005][并查集]狡猾的商人
- [BZOJ1179][APIO2009][Tarjan][拓扑排序][递推]Atm
- [BZOJ1095][ZJOI2007][线段树]Hide捉迷藏
- [BZOJ1089][SCOI2003][递推][高精度]严格n元树