POJ 2454 Jersey Politics 分组问题 随机化算法
来源:互联网 发布:amd处理器优化 编辑:程序博客网 时间:2024/04/30 02:04
题意:给出3*k个数,将它们分成三分,每份k个数,要求至少存在有两份,使得每一份的k个数的和大于500*k。
思路:
先从大到小的进行排序,然后只需要将前2*n大的数进行随机的分配成两组就行了。
#include <algorithm>#include <iostream>#include <cstring>#include <cstdio>#include <cmath>#include <ctime>#include <map>#include <queue>#define LL long long#define INF 0x3f3f3f3f#define bug puts("***************")using namespace std;const int N =1100;struct node{ int id,val; friend bool operator <(node p1,node p2){ return p1.val>p2.val; }}a[N*3];;int main(){ int n; srand((unsigned)time(NULL)); scanf("%d",&n); for(int i=0;i<3*n;i++){ scanf("%d",&a[i].val); a[i].id=i; } sort(a,a+n*3); int s1=0,s2=0; for(int i=0;i<n;i++){ s1+=a[i].val; } for(int i=n;i<2*n;i++){ s2+=a[i].val; } while(s1<=500*n||s2<=500*n){ int k1=rand()%n; int k2=rand()%n+n; s1=s1-a[k1].val+a[k2].val; s2=s2-a[k2].val+a[k1].val; swap(a[k1],a[k2]); } for(int i=0;i<3*n;i++){ printf("%d\n",a[i].id+1); } return 0;}
0 0
- POJ 2454 Jersey Politics 分组问题 随机化算法
- poj 2454 Jersey Politics(贪心+随机化)
- POJ 2454 Jersey Politics 解题报告(随机化)
- poj2454--Jersey Politics(随机化算法)
- POJ 2454 Jersey Politics
- POJ 2454--Jersey Politics
- poj 2454 Jersey Politics
- poj 2454 Jersey Politics dfs
- POJ2454 Jersey Politics ——贪心+随机化算法
- POJ2454:Jersey Politics(贪心+随机化)
- Jersey Politics POJ
- 【POJ 2454】Jersey Politics(RPの神Rand)
- bzoj1732[usaco2005 feb]Jersey Politics 牛的政治 随机化
- POJ2454--Jersey Politics
- POJ 2454 随机化+贪心
- 随机化算法之取样问题
- poj_2454 Jersey Politics(贪心+随机)
- POJ 3318 算法学习:随机化算法
- JavaScript 对象
- Yii中的Event和Behaviour理解
- CSUOJ 1808 地铁(用map储存DP数组的DP)
- Retrofit2.0使用
- PHP 使用.htaccess配置实现二级域名,RewriteCond,RewriteRule
- POJ 2454 Jersey Politics 分组问题 随机化算法
- 一个auto_ptr_ref引发的连锁思考
- 机器学习(二)
- 利用jax-ws发布WebService
- Android开发:什么是IBinder
- 肚子难受啊
- 软件工程小结
- AndRoid源码分析----------Handler消息机制(1)Handler获取Message对象及Message的复用
- linux下的C编程和makefile的使用