Codeforces 149C Division Into Teams 构造
来源:互联网 发布:vue.js生命周期面试题 编辑:程序博客网 时间:2024/04/18 18:03
点击打开链接
题意:n个人(n<=1e5),每个人价值为ai,要求分成2组,使得两组人数之差<=1 && 两组价值差小于<=max(ai)
构造即可:按价值排序后 奇数号给x,偶数号给y(看成天平,每次倾斜向每次选人的那一边)每轮两边差为a[i]-d d>=0 所以两边差始终<=max(a[i])
或者把价值表示在x轴上 [1,2] [3,4] 为一段 则所以线段都落在[0,max(ai)]内,容易看出每段之差的累加和也在max(a[i])内.
#include <bits/stdc++.h>using namespace std;const int N=2e5+20;int n;pair<int,int> a[N];vector<int> x,y;int main(){while(cin>>n){int mx=0;for(int i=1;i<=n;i++){scanf("%d",&a[i].first);a[i].second=i;}sort(a+1,a+1+n);int x;if(n%2)x=n/2+1;elsex=n/2;cout<<x<<endl;for(int i=1;i<=n;i+=2)cout<<a[i].second<<' ';cout<<endl<<n-x<<endl;for(int i=2;i<=n;i+=2)cout<<a[i].second<<' ';cout<<endl;}return 0;}
0 0
- Codeforces 149C Division Into Teams 构造
- Codeforces 149C 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
- cf#106-C. Division into Teams-贪心
- [agc009c]Division into Two
- 【CODEFORCES】 B. Random Teams
- codeforces D.Teams Formation
- Teams Formation CodeForces
- CodeForces 600C【构造】
- CodeForces 110C 【构造】
- Codeforces 141C【构造】
- CodeForces 828C【构造】
- Codeforces 862C(构造)
- Codeforces 560B Gerald is into Art(构造性算法)
- Swift3.0中 图片高斯模糊处理
- 关于shell的一些命令
- Java Reflection(九):泛型
- ThinkPHP里的命名空间解析
- ORACLE基础(五)------ 视图
- Codeforces 149C Division Into Teams 构造
- 接口传入为不同数据的不同处理
- web测试方法总结
- UITextField的创建与方法的重写
- 输出形如aabb的4位完全平方数(7744问题)
- spring session无法实现共享(多web应用)
- tensorboard
- Java Reflection(十):数组
- 以域管理账户连接到TFS或git时,设置IE允许Cookies