cf#106-C. Division into Teams-贪心
来源:互联网 发布:淘宝锚点定位跳转 编辑:程序博客网 时间:2024/04/20 23:41
http://codeforces.com/problemset/problem/149/C
题意:
给n个数,要求平均分成两堆,(偶数则每堆n/2个数,奇数则一堆比另一堆多1个数)
要求两堆最后的总和之差的绝对值 《 max(a[i])(最大元素值)
也就是尽可能平均就好啦。直接sort,然后往两边丢,每次丢两个,哪一堆比较小,就往哪一堆丢一个大的元素
......居然过了。。
#include <cstdio>#include <cmath>#include <cstring>#include <string>#include <algorithm>#include <queue>#include <map>#include <set>#include <vector>#include <iostream>using namespace std; const double pi=acos(-1.0);double eps=0.000001; struct node{int x;int id;};node tm[100005];bool cmp(node a,node b){return a.x>b.x;}int ans1[100005];int ans2[100005];int main(){int n;int i;cin>>n;int maxx=0;for (i=1;i<=n;i++){scanf("%d",&tm[i].x);if (tm[i].x>maxx) maxx=tm[i].x;tm[i].id=i;}sort(tm+1,tm+1+n,cmp);int cun1=0;int cun2=0;int sum1=0;int sum2=0;if (n%2==0){for (i=n;i>=1;i-=2){if (sum1<sum2){ans1[++cun1]=tm[i].id;ans2[++cun2]=tm[i-1].id;}else{ans1[++cun1]=tm[i-1].id;ans2[++cun2]=tm[i].id; }} }else{for (i=n;i>1;i-=2){if (sum1<sum2){ans1[++cun1]=tm[i].id;ans2[++cun2]=tm[i-1].id;sum1+=tm[i].x;sum2+=tm[i-1].x;}else{ans1[++cun1]=tm[i-1].id;ans2[++cun2]=tm[i].id; sum1+=tm[i-1].x;sum2+=tm[i].x;}} if (sum1>sum2){sum2+=tm[1].x;ans2[++cun2]=tm[1].id;} else{sum1+=tm[1].x;ans1[++cun1]=tm[1].id; } }printf("%d\n",cun1);for (i=1;i<=cun1;i++){if (i!=1 ) printf(" ");printf("%d",ans1[i]);}printf("\n");printf("%d\n",cun2);for (i=1;i<=cun2;i++){if (i!=1 ) printf(" ");printf("%d",ans2[i]);}printf("\n");return 0; }
0 0
- cf#106-C. Division into Teams-贪心
- Codeforces 149C Division into Teams【贪心】
- CodeForces 149C - Division into Teams(贪心)
- Codeforces 149C Division into Teams 【思维】
- Codeforces 149C Division Into Teams 构造
- code forces 149C Division into Teams
- Codeforces 149C Division into Teams
- Codeforces 149C Division into Teams(模拟)
- CF 332 C 贪心
- CF 508C///贪心
- CF 387C 贪心
- CF Forming Teams
- CF div2 231 C(贪心)
- CF 600C 贪心+字符串
- CF 342div2 C 贪心
- CF - 733C 构造 + 贪心
- [agc009c]Division into Two
- CF 246 A Choosing Teams
- cf#243-div1-A. Sereja and Swaps-暴力枚举+multiset+优先队列
- Java数据库连接池
- Groovy入门(一)在MAC上安装并配置Groovy环境
- Java中的HashTable和HashMap
- UILabel属性
- cf#106-C. Division into Teams-贪心
- UI控件--UILabel
- PNP代码
- UIPageControl
- MP4V2
- cf#94-div1-A. Statues
- 基于spring+redis读写分离实践
- [CodeForces 607A]Chain Reaction[DP]
- 【网络基本功系列五】细说路由下