poj 2454 Jersey Politics 随机化】的更多相关文章

随机化算法+贪心! 将3*k排序后分成3分,将第二第三份的和分别加起来,让和与500*k比较,都大于则输出,否则,随机生成2个数,在第二第三份中交换! 代码如下: #include<iostream> #include<stdio.h> #include<cmath> #include<algorithm> using namespace std; struct an { int w,lab; }p[]; bool cmp(const an &a,c…
题目链接 \(Description\) 将长为\(3n\)的序列划分成\(3\)个子序列,要求至少有两个子序列的和都\(\geq 500*n\),输出任一方案.保证有解. \(Solution\) 肯定是要将最大的\(2n\)个数分成两个满足条件的子序列. 直接贪心并没有什么可行的做法..(反正我想不出来) 我们考虑先随便地填满这两个序列,然后再随机交换序列中的两个数,直到最后满足条件为止. 交换两个序列中的某个数在多数情况下是有效的. 并不会证or别的说明了,反正我也没有更好的做法,就随机吧…
这个题目第一步还是比较明显的,先把最小的n个值去掉,剩下的问题就是能不能把数据分成两半,使得每一半和都大于n*500,这个刚开始考虑了下dp的做法,但是复杂度不满足要求. 那么能想到的就是搜索了,实际上这个搜索的上限还是比较高的,就只能依靠良好的剪枝试试了,两个情况,剩下的值全部选最大还小于要求,剩下的值全部选最小另一半还小于要求.0ms ac #include <iostream> #include <cstdio> #include <cstring> #inclu…
题解 有种迷一样的讽刺效果 每个城市有1000头牛,然后你现在知道对于自己政党每个城市的选票,把城市划分成三个州,保证在至少两个州内获胜 找出前2K大的然后random_shuffle,直到前K个加起来和后K个加起来都满足超过半数也就是K × 500 代码 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #…
                                                        Jersey Politics Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5592   Accepted: 1413   Special Judge Description In the newest census of Jersey Cows and Holstein Cows, Wisconsin co…
POJ2454——Jersey Politics 题目大意: 在泽西奶牛和荷斯坦奶牛的最新普查中,威斯康星奶牛在谷仓中获得了三个档位. 泽西奶牛目前控制着国家重新分配委员会. 他们想将国家分为三个相当大的投票地区,以便保证泽西奶牛在至少两个地区获得选举权. 威斯康星州有3 * K(1 <= K = = 60)个1000头牛的城市,编号为1..3 * K,每头都有泽西奶牛的已知数量(范围:1.001). 找到一种将州划分为三个区域的方式,每个区域都有K个城市,使得泽西奶牛在至少两个地区拥有多数比例…
题目:http://poj.org/problem?id=2454 题意:给你3*k(k<=60)个数,你要将它们分成3个长度为k的序列,使得其中至少有两个序列的和大于k*500 分析:以为有高大上的做法,然后题解爸爸告诉我是随机化乱搞…… 首先可以把最小的k个去掉 然后将剩下的2*k个分成2组 接下来随机化交换它们中的两个数,并判断…… 只能说略猥琐…
poj2454:http://poj.org/problem?id=2454 题意:给你3*k个数,然后让你分成三堆,使得至少其中的两堆中的数字之和大于500*k.题解:这道题一开始我并不知道怎么做,准备采用随机算法,初始化的时候使其分成3堆,然后每次从每一堆中rand一个数,依次的进行交换,但是交了几版,发现都是wa.最后才知道要用贪心.把数字进行降序排序,然后把前2*k个给两堆,只要前两堆都满足大于500*k,如果不满足,那么对于更小的数的组合就不可能满足了.然后最前两堆进行随机算法每次ra…
方法1:暴力法 矩阵乘法+优化可以卡时间过的. 方法2:随机化 随机构造向量x[1..n],则有xAB=xC;这样可以将小运算至O(n^2). 代码如下: #include<iostream> #include<stdio.h> #include<cmath> #include<algorithm> using namespace std; ][],b[][],c[][],n,x[]; bool cal() { int i,j,k; ],an2[]; lon…
Description In the newest census of Jersey Cows and Holstein Cows, Wisconsin cows have earned three stalls in the Barn of Representatives. The Jersey Cows currently control the state's redistricting committee. They want to partition the state into th…