摘要: 这道题用的是并查集,刚刚看到这道题的时候想起来自己OJ的一道有点相似的题,说是每条边有一个等级,两个点之间的连接等级为路径上所有边的最高等级,很像,但是因为这道题的边有权值而且还要算最大值,结果自己这个想法就只是想了想,然后看了别人的解题报告,还真是并查集,看来自己的第一反应还挺重要的,把边降序排序,这样保证新加的一条边肯定是最短的,分别对这条边连接的两个点作为这一部分中选中的点找最优值,直到把所有的边加完View Code 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #incl 阅读全文
posted @ 2012-10-16 22:42 zhenhai 阅读(196) 评论(0) 推荐(0)
摘要: 状态压缩DP,先对M进行质因子分解,记录其次数,然后对M的所有因子进行统计,分别计算每个因子对应的状态(只有当因子的质因子次数和M相同时这一位才置1),也就是说,如果一个数的每一个质因子次数都没有达到M的质因子次数这个数所表示的状态就是0,然后进行状态DP,其实就是递推,不能算是DP,这个用递推会比记忆化搜索要好,因为记忆化搜索的时候要考虑到底要不要取某一个值,取多少个,用异或没有递推的时候用|实现简单View Code 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #define 阅读全文
posted @ 2012-10-16 19:53 zhenhai 阅读(472) 评论(0) 推荐(0)
摘要: 2012年长春赛区B题,根据位运算的关系可以得到当某一个数的某一位取一个值时,跟其有相应运算关系的另一些数,就必须或者就不能取某些值,这样就可以利用2-sat问题解决,关于2-sat问题的加边技巧:/*2-SAT问题,通俗的说就是有n对点(2n个点),从每对点中选出一个点,共选出n个点,而且要满足若干个这样的条件:某两点不能同时被选出。 设一对点为x、~x,如果a被选出则b一定要被选出,就在图中加有向弧(a,b)表示这种关系。那么如果a,b(a!=b,a!=~b)不能同时被选出,那么加两条有向弧(a,~b),(b,~a)。这样由图的对称性可以证明,2-SAT有解等价于任取x、~x,x、~x不在 阅读全文
posted @ 2012-10-16 12:16 zhenhai 阅读(369) 评论(8) 推荐(0)