【jzoj4757】【树上摩托】
来源:互联网 发布:芒果tv没有mac版 编辑:程序博客网 时间:2024/04/27 17:40
题目大意
把这棵树砍去任意条边,拆成若干棵新树,让每棵新树的节点数相同。
有多少种方法分割这棵树。
解题思路
首先可以变成有根树,枚举每棵树的节点数k,则size为k的倍数的个数有等于n/k。我们可以开一个桶存size,枚举size统计个数判断即可。
暴力code
#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#define LL long long#define max(a,b) ((a>b)?a:b)#define min(a,b) ((a>b)?b:a)#define fo(i,j,k) for(int i=j;i<=k;i++)#define fd(i,j,k) for(int i=j;i>=k;i--)using namespace std;int const maxn=1000000,maxm=100,inf=2147483647;int n,m,gra,size[maxn+10],du[maxn+10],q[maxn+10],begin[maxn+10],to[maxn*2+10],next[maxn*2+10];bool visit[maxn+10];int read(){ char ch=getchar();int val=0; for(;(ch<'0')||(ch>'9');ch=getchar()); for(;(ch>='0')&&(ch<='9');val=val*10+ch-'0',ch=getchar()); return val;}void insert(int u,int v){ to[++gra]=v; next[gra]=begin[u]; begin[u]=gra;}void dfs(int now){ int l=0,r=0;q[++r]=now; visit[now]=1; for(;l!=r;){ now=q[++l]; for(int i=begin[now];i;i=next[i]) if(!visit[to[i]]){ q[++r]=to[i]; visit[to[i]]=1; } } fd(j,r,1){ size[q[j]]=1;now=q[j]; for(int i=begin[now];i;i=next[i]) if(!visit[to[i]]) size[now]+=size[to[i]]; visit[q[j]]=0; }}int main(){ freopen("d.in","r",stdin); freopen("d.out","w",stdout); n=read(); fo(i,1,n-1){ int u=read(),v=read();du[u]++;du[v]++; insert(u,v); insert(v,u); } fo(i,1,n) if(du[i]==1){ dfs(i); break; } int ans=0,sqrtn=sqrt(n),cnt,ii; fo(i,1,sqrtn) if(n%i==0){ cnt=0; fo(j,1,n) if(size[j]%i==0)cnt++; if(cnt==n/i) ans++; cnt=0;ii=n/i; if(i==ii)continue; fo(j,1,n) if(size[j]%ii==0)cnt++; if(cnt==i) ans++; } printf("%d",ans); return 0;}
0 0
- 【jzoj4757】【树上摩托】
- Jzoj4757 树上摩托
- 【NOIP模拟】树上摩托
- JZOJ 4757 树上摩托
- NOIP提高组模拟 树上摩托
- 【NOIP提高组模拟】树上摩托
- 【NOIP2016提高A组模拟9.4】树上摩托
- 树上摩托【NOIP2016提高A组模拟9.4】
- 暴力摩托
- 摩托Demo
- 【观影】摩托日记、盲井
- 热情的摩托
- 无锡的摩托&黑客
- 【动态规划】暴力摩托
- 摩托技术面
- 容器就像骑摩托
- 哈喽摩托
- 暴力摩托如何联机玩?
- leetcode_easy 344、reverse string
- 11 安卓各种弹窗总结和代码例子
- 数论的巴拉拉魔法大门就此打开,请收下这波来自数论的友好邀请信,准备变身各位小魔仙噗哈哈哈哈
- 阿里云云虚拟主机上个人网站的Https访问配置
- 消息队列入门(三)JMS标准及实现
- 【jzoj4757】【树上摩托】
- 图片三级缓存原理
- 派生
- UVA(11300)
- Android 对话框 Dialog
- Android--对话框详解
- STM32定时器溢出模式计时设置 .
- POJ 3255 A* k_th path
- 通过KGDB进行双机内核调试