2014 编程之美 资格赛 第一题 同构
来源:互联网 发布:js select改变事件 编辑:程序博客网 时间:2024/05/21 11:10
看到各种大神各种染色,各种搜索求同构,真是淡淡得忧伤
首先对于一个块儿,其实它是相对独立的,即我给这个块一种染色方案,不会因为与本块相连的其它枝叶而导致该染色方案不成立。
比如对于某边,左端为点A,右端为点B,我们策略只有两种,A与B同色,A与B不同色,而除了本边之外的其它边不能决定A与B的关系,因为在这个树上,沟通A与B的边是唯一的。而块就是边的推广。
然后对于本题。。很显然连续的一段儿我们们会对它进行间隔染色。那么什么样的块不可避免地只有同一种颜色?:对于一个度为n的点,一定会产生一个以该点为顶点,连接有(n+1)/2个度为1的点的块。所以问题就转换成了B是不是A中所产生的最大同色块(度最大的点产生)的一个子块。
所以判断一下读书,数一数,搞一搞就好啦。
#include<stdio.h>#include<stdlib.h>#include<string.h>int n1,n2;int du1[1000005];int du2[1000005];int main(){int T,ans;int R=0;scanf("%d",&T);while(T--){R++;int i,j,ta,tb,fuck1=0,cn1=0,fuck2=0;memset(du1,0,sizeof(du1));memset(du2,0,sizeof(du2));scanf("%d",&n1);for(i=1;i<n1;i++){scanf("%d%d",&ta,&tb);du1[ta]++;du1[tb]++;}for(i=1;i<=n1;i++)if(du1[i]>fuck1)fuck1=du1[i];scanf("%d",&n2);for(i=1;i<n2;i++){scanf("%d%d",&ta,&tb);du2[ta]++;du2[tb]++;}for(i=1;i<=n2;i++){if(du2[i]==1)cn1++;if(du2[i]>fuck2)fuck2=du2[i];}if(fuck2==1)cn1--;if(fuck2==cn1&&cn1==n2-1&&(fuck2<=(fuck1+1)/2))printf("Case %d: NO\n",R);else printf("Case %d: YES\n",R);}return 0;}
0 0
- 2014 编程之美 资格赛 第一题 同构
- 编程之美资格赛 同构
- 编程之美大赛资格赛第一题
- 2015编程之美资格赛第一题
- 2015编程之美资格赛第一题
- 编程之美资格赛第一题:传话游戏
- 编程之美2013 资格赛 第一题 解题报告
- 2014编程之美资格赛
- 2014 编程之美 资格赛
- 编程之美资格赛
- 编程之美资格赛
- 2014编程之美资格赛第三题-格格取数
- (1)2014微软编程之美资格赛赛题
- 2014编程之美挑战赛资格赛
- 2014 编程之美 资格赛(小数据)
- 编程之美2014 - 资格赛题解
- 编程之美资格赛第二题
- 编程之美资格赛第二题:长方形
- Android WebView自定义处理错误页面显示(404等)
- NGUI 基础 -- 功能组件
- 网络负载均衡
- 学习笔记_oracle——安装
- boost::asio学习之[四]udp client server 异步server
- 2014 编程之美 资格赛 第一题 同构
- 过滤器、监听器、拦截器的区别
- 2003+IIS6.0+PHP5.2.5
- 学习笔记_oracle——基础操作
- 在Android中查看和管理sqlite数据库
- javascript基础学习-语法学习(三)
- 启动Android模拟器报 PANIC: Could not open:xxxx 问题解决
- 内部Handler类引起内存泄露
- STL容器默认的内存分配器(std::alloc)