摘要:暴力+剪枝,或者使用随机化算法,因为结果总是在0-20之间,所以任选两个求汉明距,它不是最终结果的概率应该不超过19/20,当随机生成10^5组数据时,求出的最小值不是最终结果的概率非常低。同时当结果为0或者1时能较快的判断出来,可以特判这两种情况。我的加了特判的代码: 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 const int N = 100005; 7 int a[N],n; 8 bool vis[(1 tmp) ans = tmp;35 }36 return ans;37 }...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4666关于最远曼哈顿距离的介绍:http://blog.csdn.net/taozifish/article/details/7574294/别人的解题报告链接:http://www.cnblogs.com/kuangbin/archive/2013/08/13/3255752.html我的解释:先看一对点,两个点的坐标分别为x(x1,x2,x3,….,xk),y(y1,y2,y3,……,yk).其曼哈顿距离为d = |x1-y1| + |x2-y2| +…..+|xk-yk|.在去绝对值后,对于点
阅读全文
摘要:解题思路:若没有边权,则对点权从大到小排序即可。。考虑边,将边权拆成两半加到它所关联的两个点的点权中即可。。。因为当两个人分别选择不同的点时,这一权值将互相抵消。以上摘自杭电的解题报告。至于为什么,还想得不是很清楚····由于在处理时使用的是整数,整数/2,当为奇数时0.5就不见了,所以直接把点的权值翻倍,最后结果除以2,这算是一个技巧吧····贴代码: 1 #include 2 #include 3 #define N 100005 4 using namespace std; 5 long long int a
阅读全文