题意:
树上找两个点 使得其他点到这两点任意一点的距离的最大值最小
思路:
最大值最小 想到二分 在二分的基础上判定这个最大值是否可能
如何判定这个问题就是如何选那两个点的问题 很明显 我们要处理的是直径(不然没意义 最长的就是直径) 那么既然已经有了一个要判定的值x 不妨就选择距离直径两端点距离为x的点就好
直径上的点最多n个 算上二分的复杂度 O(nlogn)可以...
分类:
其他好文 时间:
2014-10-14 16:10:08
阅读次数:
175
http://poj.org/problem?id=2186
Popular Cows
Time Limit: 2000MS
Memory Limit: 65536K
Total Submissions: 23819
Accepted: 9767
Description
Every cow's dream...
分类:
移动开发 时间:
2014-10-14 15:47:28
阅读次数:
267
做同步赛的时候想偏了,状态总是时好时坏,这状态去区域赛果断得GG了。
题目大意:给一棵树,让求出树上两个点,使得别的点到两个点较近的点的距离最大值最小。
赛后用O(n)的算法搞了搞,其实这道题不算难。逗逼的没A。。
其实这两个点一定是树直径上的两个点,如果能想到这个就很好搞了,只需要求出树的直径,然后从中间位置把树拆成两颗子树,然后分别求出子树的中心就好了。
证明如下,假如我们已经求出树上...
分类:
其他好文 时间:
2014-10-13 16:29:39
阅读次数:
172
鉴于自己的直觉总是很准,所以这次再相信一次好了T1:我觉得极有可能考到的是 1.对于栈,队列的模拟; 2.数论(不是像gcd那样的题目,而是加法原理乘法原理斥容,或是极具数学推导的东西,当然有可能用于贪心的证明,在T2出现) 3.博弈论 其次还是要多加练习的...
分类:
其他好文 时间:
2014-10-13 14:53:49
阅读次数:
257
题意 求矩阵中包含‘@’的'.'连通块中元素数量 '@'也看做'.'
最基础的dfs了
#include
#include
using namespace std;
const int N = 30;
char mat[N][N];
int dx[4] = {0, 0, -1, 1}, dy[4] = { -1, 1, 0, 0};
int ans;
void dfs(int r, i...
分类:
其他好文 时间:
2014-10-13 13:40:09
阅读次数:
271
题意 两块农田里面的管道可以直接连接的话 他们就可以共用一个...
分类:
其他好文 时间:
2014-10-13 13:02:39
阅读次数:
203
在图论中,匹配是指两两没有公共点的边集。二分图的最大匹配是这样的:给出一个二分图,找到一个边数最大的匹配,即选尽量多的边,使得任意两条选中的边没有公共点。如果所有的点都是匹配点(匹配中的某一条边的端点),则称这个匹配是完美匹配(perfect matching)。下面我们考虑二分图都是联通图,如果是...
分类:
其他好文 时间:
2014-10-12 12:16:17
阅读次数:
200
题目大意:给出N种木棍(每种木棍数量无限)的长度(i,那么集合Qi中最大的不能被组合出来的数就是 D[i]-P。检查所有的D[i]取最大值就是答案了。总结:非常灵活的图论+数论题,图论模型的转化非常巧妙,真心好题,收获很大。
分类:
其他好文 时间:
2014-10-12 10:57:57
阅读次数:
229
N - Frequency Hopping
Time Limit:10000MS
Memory Limit:0KB 64bit IO Format:%lld & %llu
Submit
Status
Practice
UVA 11248
Appoint description:
Description
E
...
分类:
其他好文 时间:
2014-10-11 20:39:46
阅读次数:
254
题意 中文
根据Havel-Hakimi定理构图就行咯 先把顶点按度数从大到小排序 可图的话 度数大的顶点与它后面的度数个顶点相连肯定是满足的 出现了-1就说明不可图了
#include
#include
#include
using namespace std;
const int N = 20;
int mat[N][N], ord[N];
bool cmp(int i, in...
分类:
其他好文 时间:
2014-10-11 11:05:15
阅读次数:
175