题目链接 BZOJ
洛谷

题意: 将树划分为k个连通块,要求每个连通块大小相同。输出可能的大小。

结论: 满足条件时颜色的连通块数为k,当且仅当有 \(n/k\) 个节点满足它的子树是k的倍数(显然还有 \(k|n\) )。

证明就不证了,说下理解(然而也说不清楚。。)。
比如一个点的子树大小为 \(x*k\),如果满足上述条件,即这棵子树(包含根节点)一定有x个点子树大小为k的倍数,且把sz[]为k的点依次删去,最后肯定能删掉整棵子树。
因为它就 \(x*k\) 那么大。。说不清楚啊。。想想应该是合理的。
因为父节点编号一定比子节点小,更新sz[]时倒序循环一遍即可,不需要DFS。

//14964kb   3036ms
#include <cstdio>
#include <cctype>
#include <cstring>
#define gc() getchar()
#define XXX (19940105)
const int N=1200005;int n,fa[N],sz[N],num[N],cnt,p[10005],lim[10005];inline int read()
{int now=0;register char c=gc();for(;!isdigit(c);c=gc());for(;isdigit(c);now=now*10+c-'0',c=gc());return now;
}int main()
{n=read();for(int i=2; i<=n; ++i) if(!(n%i)) p[++cnt]=i,lim[cnt]=n/i;//if(i*i!=n) p[++cnt]=n/i;for(int T=1; T<=10; ++T){memset(sz,0,sizeof sz), memset(num,0,sizeof num);;for(int i=2; i<=n; ++i) fa[i]=T==1?read():((fa[i]+XXX)%(i-1)+1);//read()不怂233.for(int i=n; i; --i) sz[fa[i]]+=(++sz[i]);for(int i=1; i<=n; ++i) ++num[sz[i]];printf("Case #%d:\n1\n",T);//判掉1也行。for(int t,i=1; i<=cnt; ++i){t=0;//子树sz为x*p[i]的节点个数 for(int j=1; j<=lim[i]; ++j) t+=num[j*p[i]];if(t*p[i]==n) printf("%d\n",p[i]);}}return 0;
}

转载于:https://www.cnblogs.com/SovietPower/p/8660066.html

BZOJ.3004.[SDOI2012]吊灯(结论)相关推荐

  1. [SDOI2012]吊灯(结论)

    problem 洛谷链接 solution 显然,颜色相同的灯泡形成一个连通块,且连通块的大小 i∣ni\mid ni∣n. 这道题要能发现一个结论:一定至少存在一种颜色的连通块 满足该联通块内的任意 ...

  2. BZOJ 2707: [SDOI2012]走迷宫 [高斯消元 scc缩点]

    2707: [SDOI2012]走迷宫 题意:求s走到t期望步数,\(n \le 10^4\),保证\(|SCC| \le 100\) 求scc缩点,每个scc高斯消元,scc之间直接DP 注意每次清 ...

  3. 洛谷P2351 [SDOi2012]吊灯 【数学】

    题目 Alice家里有一盏很大的吊灯.所谓吊灯,就是由很多个灯泡组成.只有一个灯泡是挂在天花板上的,剩下的灯泡都是挂在其他的灯泡上的.也就是说,整个吊灯实际上类似于[b]一棵树[/b].其中编号为 1 ...

  4. BZOJ 2707: [SDOI2012]走迷宫( tarjan + 高斯消元 )

    数据范围太大不能直接高斯消元, tarjan缩点然后按拓扑逆序对每个强连通分量高斯消元就可以了. E(u) = 1 + Σ E(v) / degree(u) 对拍时发现网上2个程序的INF判断和我不一 ...

  5. bzoj 2707: [SDOI2012]走迷宫(Trajan+高斯消元+Dp)

    2707: [SDOI2012]走迷宫 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 862  Solved: 328 [Submit][Statu ...

  6. bzoj 2705: [SDOI2012]Longge的问题(欧拉函数)

    2705: [SDOI2012]Longge的问题 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 3077  Solved: 1914 [Submit ...

  7. [SDOI2012] 吊灯(树形dp)

    吊灯(divide)题目描述 Alice家里有一盏很大的吊灯.所谓吊灯,就是由很多个灯泡组成.只有一个灯泡是挂在天花板上的,剩下的灯泡都是挂在其他的灯泡上的.也就是说,整个吊灯实际上类似于一棵树.其中 ...

  8. BZOJ.2707.[SDOI2012]走迷宫(期望 Tarjan 高斯消元)

    题目链接 一个点到达终点的期望步数 \(E_i=\sum_{(i,j)\in G}\frac{E_j+1}{out[i]}\),\(out[i]\)为点\(i\)的出度. 那么对于一个DAG可以直接在 ...

  9. bzoj 2705: [SDOI2012]Longge的问题——欧拉定理

    Description Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). Input 一 ...

最新文章

  1. 安装Ecshop首页出现报错:Only variables should be passed by referen
  2. BUUCTF-[网鼎杯 2020 青龙组]singal——angr学习记录
  3. 前端学习(2962):前一天回顾
  4. Signals Slots(Qt5)
  5. 消息称Face++明年上市,还曝光了财务数据
  6. MSSQL同步刷新视图字段长度和源表保持一致
  7. laravel路由不生效,404,除了/ 都不行,关于nginx环境下laravel除了默认路由都出现404报错的处理方法...
  8. Silverlight实用窍门系列:58.Silverlight中的Binding使用(三)-数据集合的绑定
  9. 全国植被覆盖度VFC逐月数据
  10. Win11怎么安装语音包?Win11语音包安装教程
  11. 数学基础30讲:第一讲 高等数学预备知识
  12. JAVA学习——GUI鼠标画图交互练习
  13. win10教育版激活部分方法
  14. Android原生态实现分享转发功能(分享图片到其他APP)
  15. 强强联手|任子行公司董事长景晓军一行到访云畅科技交流
  16. 详解区块链P2P网络
  17. 心动的本质是什么_风动,幡动,仁者心动,到底是什么在动
  18. 笔记本连接显示器后没有声音_笔记本连外接显示器没声音怎么办
  19. QtAV的编译与使用(MSVC2015+Qt5.9.8)
  20. 万兆局域网方案_家庭基础万兆网络——最简单的方案

热门文章

  1. JS的一些扩展:String、StringBuilder、Uri
  2. Mybatis-Plus一个新的报错:数据库表名与SQL的关键字冲突!!!
  3. 我的理想计算机应用作文,我的理想当编程师作文400字
  4. mysql query 查询失败_如何在mysql进行查询缓存及失败的解决方法
  5. ipad如何连接电脑_超能办公课堂丨电脑如何使用无线网络连接方式安装驱动程序...
  6. Edit Control读取与写入踩坑实例与使用方法
  7. MFC关于Radio按钮分组与选择的操作
  8. python dry原则_python使用建议与技巧分享(一)
  9. 如何给6个整数的一维数组某个元素赋值_数组指针详解
  10. 小米MIX 3如何刷成开发版启用Root超级权限