摘要:
http://acm.hdu.edu.cn/listproblem.php?vol=37hdu 4600~4610 2013HDU多校训练第一场 这次的组队训练好没状态,居然敲几题水题都搞了2个多种。最后我们队做出了4题,排在41名。不太想写东西,直接上题解了:Problem - 4604 这题做法其实还没想到,不过写出了一个能过目前所有数据的代码(比赛的时候数据更水,几乎算不出正确答案的代码都能过): 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 using namespace std; 8 9 con... 阅读全文
摘要:
Problem - 3938 题意是要求出给定权值下,满足要求的点对的数目。所谓的要求是,给出两点,之间会有很多路径,这个点对的最小距离是众多路径中,最短的一条路径的长度,路径长度是路径上最长边的长度。于是,认真观察可以发现,两个点能连在一起的前提条件是,之间的的边都小于给定值。于是,用边来构建最小生成树就可以得到这样的一些满足要求的点对了。如果是两个集合因为一条边的加入连在一起了,那么总的点对数目就增加Na*Nb。把答案存下来,然后查询的时候二分找出满足的那一个即可。代码如下:#include #include #include #include #include using namesp. 阅读全文
摘要:
Problem - 1811 感觉这题的并查集以及拓扑排序并不难,但是做题的时候必须理解到矛盾(CONFLICT)与不确定(UNCERTAIN)直接的优先关系。 做这题的时候,构图什么的很简单,就是没有将矛盾摆在最高优先,一旦搜到不确定的情况就立即跳转,这是不对的。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 using namespace std; 8 9 const int N = 11111; 10 struct MFS { 11 int fa[N]; 12 ... 阅读全文