编程之美测试赛第二题—大神与三位小伙伴
来源:互联网 发布:什么面试是设计算法 编辑:程序博客网 时间:2024/04/29 01:31
大神与三位小伙伴
时间限制:2000ms
单点时限:1000ms
内存限制:256MB
- 样例输入
131 22 321 2
- 样例输出
Case 1: NO
描述
给定2个树A和B,保证A的节点个数>=B的节点个数。
现在你需要对树A的边进行二染色。
一个好的染色方案,指不存在一个树A中的连通块,同时满足以下2个条件
1. 其中只有同色的边
2. 和B同构。两个树同构是指,存在一个一一映射(既是单射又是满射),将树B的各节点映射到不同的树A的节点,使得原来在树B中相邻的点,在映射后,仍相邻。
问是否存在一种好的染色方案。
输入
第一行一个整数T (1<=T<=10),表示数据组数。
接下来是T组输入数据,测试数据之间没有空行。
每组数据格式如下:
第一行一个整数N ,表示树A的节点总数。
接下来N-1行,每行2个数a, b (1 <= a, b <= N)表示树A的节点a和b之间有一条边。
接下来一行,一个整数M(1 <= M <= N),表示树B的节点总数。
接下来M-1行,每行2个数a, b (1 <= a, b <= M)表示树B的节点a和b之间有一条边。
输出
对每组数据,先输出“Case x: ”,x表示是第几组数据,然后接“YES”/“NO”,表示是否存在所求的染色方案。
数据范围
小数据:1 <= N <= 20
大数据:1 <= N <= 1000000
样例解释
无论如何染色,只要从A中挑一条边就行了。
- 此题比较简单,自己推了一下数学公式,基本上就一次性AC了。1^3+2^3+...+n^3+i*j*k*6对不同ijk求和(i<j<k)
- 下面是AC代码,第一题没看懂题目,第三题感觉很难考虑的问题太多,应该是DFS+剪枝吧。细细的想象。。。。。
#include<iostream>using namespace std;long long ans=0;const int maxn=1e9+7;int main(){int T,n;cin>>T;for(int count=1;count<=T;count++){cin>>n;ans=0;for(int i=1;i<=n;i++)ans=(ans+i*i*i)%maxn;for(int i=1;i<=n-2;i++)for(int j=i+1;j<=n-1;j++)for(int k=j+1;k<=n;k++)ans=(ans+i*j*k*6)%maxn;cout<<"Case "<<count<<":"<<ans<<endl;}return 0;}
0 0
- 编程之美测试赛第二题—大神与三位小伙伴
- 2015编程之美测试赛第二题之大神与三位小伙伴
- 2014编程之美资格赛第二题 大神与三位小伙伴
- 编程之美挑战赛 大神与三位小伙伴 题解
- 编程之美 打酱油 大神与三位小伙伴
- 编程之美资格赛 大神与三位小伙伴
- 编程之美2014 资格赛 大神与三位小伙伴
- 编程之美2014---大神与三位小伙伴
- 编程之美资格赛 大神与三位小伙伴
- 编程之美 题目2 : 大神与三位小伙伴
- 编程之美-大神与三位小伙伴
- 大神与三位小伙伴 微软编程之美2014挑战赛之题目2 : 大神与三位小伙伴 题解
- 微软编程之美——大神与三位小伙伴
- 2014编程之美资格赛之2 大神与三位小伙伴
- 微软编程之美2014挑战赛之题目2 : 大神与三位小伙伴 题解
- 编程之美资格赛题目2: 大神与三位小伙伴
- (2014编程之美资格赛)题目2 : 大神与三位小伙伴
- 编程之美资格赛题目2 : 大神与三位小伙伴
- C/C++前置声明和避免隐藏包含
- 最大连续子段和
- 浙江大学PAT_甲级_1006. Sign In and Sign Out (25)
- 为什么说LINUX没有利用80X86微处理器的段分页机制实现程序分段?
- 第六周 【项目1-深复制体验】
- 编程之美测试赛第二题—大神与三位小伙伴
- POJ 2299 Ultra-QuickSort(归并排序·树状数组·逆序对)
- 2014蓝桥杯问题 C: 神奇算式
- 自适应网页设计(Responsive Web Design)
- 移动小球
- centos7下载安装谷歌浏览器
- listview 补充
- 计算任意一天距1949年10月1日的天数
- zookeeper实现原理