Ural 1544 Classmates 3
来源:互联网 发布:plc万能解密软件 编辑:程序博客网 时间:2024/06/04 19:49
这道题目看似很经典的一题,之前肿么就是没有做到过呢?
题意就是在一个50个点之内的无向图中,每个顶点有一种颜色,每一次操作可以将我们该点和周围所有通过该种颜色相邻的点都转变为另外一种颜色,最少需要几次可以将图中所有的点转变为同一种颜色,并且输出操作。
解法:将相邻的同一种颜色缩成一个点,那么然后枚举每一个顶点,从这个点开始进行最短路,距离最远的那个点的距离就是需要从这个点开始染色需要的次数,然后取一个最小值。
证明:为什么是这样的呢,假设我们从一个点开始进行一次最短路,那么将所有的顶点按照距离进行分层。因为这是一个分层的网络,所以不相邻的两层之间必定没有边,这边意味着在这个分层网络中,要将所有的点染成一种颜色至少需要2*某一种颜色层数,因为必定是双支的,否则一定可以通过抽动使得最短距离变短。所以这个就是理论下届。枚举所有的顶点就求出来了。
- Ural 1544 Classmates 3
- Ural 1362 Classmates 2
- ural 1362Classmates 2
- URAL 1362. Classmates 2
- 【算法设计与数据结构】URAL 1323. Classmates
- classmates
- Family,Friends,classmates
- 英语练习 My foreign Classmates
- POJ Problem 3931 Classmates题解
- URAL
- 【ural】
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- head first-------------iterator pattern
- 关于旋转的动画
- poj1691 状态压缩~最优值
- JAVA反射机制自定义框架测试代码,留着以后复习用!
- 深入浅出C语言中的柔性数组
- Ural 1544 Classmates 3
- 黑马程序员----java之多态(1)
- ECMAScript5的新方法计算平均值和标准差与普通写法的区别
- doc 命令查看帮助
- poj3264 poj3468 poj2528【线段树】
- linux内核中memcpy和memmove函数的区别和实现
- 在读取网络资源的时候发现太小,怎么办
- Dota2 安装
- hdu2142