当前位置: 首页 > news >正文

展展示型网站开发温州网站建设平台

展展示型网站开发,温州网站建设平台,手机商城下载,熊掌号提交wordpress传送门 题意#xff1a;给一棵NNN个结点的树#xff0c;你需要钦定一个根#xff0c;使得所有深度相同的点的度数相同。 N≤100000N \leq 100000N≤100000 用脑子想一想#xff0c;就是根节点直接相连的子树都长得一模一样。 如果根节点度数大于1#xff0c;我们发现它…传送门 题意给一棵NNN个结点的树你需要钦定一个根使得所有深度相同的点的度数相同。 N≤100000N \leq 100000N≤100000 用脑子想一想就是根节点直接相连的子树都长得一模一样。 如果根节点度数大于1我们发现它把整棵树均匀地分成了若干份。所以根节点是重心。 O(N)O(N)O(N)找重心检查一下 如果根节点度数等于1也就是拉了一条链下去 由于是递归的所以走到有岔路的地方就是岔路口所在子树的重心 因为两棵树合并后的重心在原来的重心的路径上所以整棵树的重心在链上。 所以沿一条链走到底就可以了。 但如果有多条路说明重心是岔路口。因为下面长得一模一样所以即使是链长度也都相同。 所以找两条长度不同的链的顶部搜一下即可。 复杂度O(N)O(N)O(N) #include iostream #include cstdio #include cstring #include cctype #include algorithm #define MAXN 100005 #define MAXM 200005 using namespace std; struct edge{int u,v;}e[MAXM]; int head[MAXN],nxt[MAXM],cnt; void addnode(int u,int v) {e[cnt](edge){u,v};nxt[cnt]head[u];head[u]cnt; } int siz[MAXN],dep[MAXN],n; void dfs(int u) {siz[u]1;for (int ihead[u];i;inxt[i])if (!dep[e[i].v]){dep[e[i].v]dep[u]1;dfs(e[i].v);siz[u]siz[e[i].v];} } int maxp[MAXN]{0x7fffffff}; int findroot() {dfs(dep[1]1);int rt0;for (int u1;un;u){for (int ihead[u];i;inxt[i])if (dep[e[i].v]dep[u]1)maxp[u]max(maxp[u],siz[e[i].v]);if (n-siz[u]maxp[u]) maxp[u]n-siz[u];if (maxp[u]maxp[rt]) rtu;}return rt; } int tmp[MAXN]; bool check(int rt) {memset(siz,0,sizeof(siz));memset(dep,0,sizeof(dep));memset(tmp,0,sizeof(tmp));dep[rt]1;dfs(rt);for (int u1;un;u){int deg0;for (int ihead[u];i;inxt[i])deg;if (!tmp[dep[u]]) tmp[dep[u]]deg;if (tmp[dep[u]]!deg) return false;}return true; } int line(int u,int f) {if (!nxt[head[u]]) return u;if (nxt[nxt[head[u]]]) return 0;int ihead[u];if (e[i].vf) inxt[i];return line(e[i].v,u); } int len[MAXN]; inline bool cmp(const int a,const int b){return dep[a]dep[b];} int main() {scanf(%d,n);for (int i1;in;i){int u,v;scanf(%d%d,u,v);addnode(u,v);addnode(v,u);}int rtfindroot();if (check(rt)){printf(%d\n,rt);return 0;}for (int ihead[rt];i;inxt[i])len[len[0]]line(e[i].v,rt);sort(len1,lenlen[0]1,cmp);if (len[1]check(len[1])){printf(%d\n,len[1]);return 0;}if (len[len[0]]check(len[len[0]])){printf(%d\n,len[len[0]]);return 0;}puts(-1);return 0; }
http://www.huolong8.cn/news/11182/

相关文章:

  • 网站建设捌金手指花总五中装建设集团董事长
  • 做pc端网站案例一分钟赚50元的游戏
  • sns网站建设哪家公司好内存数据库 网站开发
  • 义乌搭建网站网站备案复查 手机号码打不通
  • 保定网站报价如何做产品展示网站
  • wordpress 字体样式表沧州seo包年平台排行榜
  • 陕西省建设厅网站月报商城网站技术方案
  • 网站页面用什么软件做wordpress安装好后
  • 网站素材大全深圳防疫最新政策
  • 专业模板建站价格wordpress语法高亮
  • 影响网站alexa排名的主要因素有通州网站建设服务
  • 阿里云网站域名备案吉林省四平市
  • 做增员的保险网站百度seo排名优化软件化
  • 做网站骗老外的钱教育网站开发文档
  • 网站后台有什么用建e室内设计网3d模型
  • 网站建设维护协议沧州网站域名注册服务公司
  • 适合seo的网站苏州百度搜索排名优化
  • 网站设计与推广网页设计是做什么
  • 安徽省建设工程协会网站网站建设yuue
  • 网站权重下降原因杭州网站建设交易
  • 中国城市建设网站如何更改wordpress上的默认头像
  • 西安网站建设第一品牌用html做网站步骤
  • 个人网站空间大小集团网站策划
  • 网站广告用ps如何做兰州网站建设人才招聘
  • 网站建设伍金手指下拉3企业营销网站的建设
  • php做网站的分站谷歌没收录网站主页 301重定向
  • wordpress建站容易吗做服务网站发展背景
  • 自己做视频网站用cdn那个便宜关于做网站的了解点
  • 网站开发小工具网站做好了怎么和域名
  • 哪个网站可以做练习题怀柔网站整站优化公司