codeforces 353B
来源:互联网 发布:问道手游源码服务端 编辑:程序博客网 时间:2024/06/09 16:24
题意:给出2*n个数,要求n个数放在第一堆, 剩下n个数放在第二堆,现在从第一堆拿一个数aa 第二堆拿一个数bb 组成aabb的形式、 要求能组成的aabb的数在尽可能多的情况下,数值尽可能大、
思路:要求能组成的尽可能多嘛、 那么我们不妨把只出现一次的数统计下来有多少,出现二次及一上的话就第一堆放一个第二堆放一个, 那么那些只出现一次的数的话就平均分给第一堆和第二堆,这样才可以达到组成的数最多。
PS:开始以为把那些出现重复的数总是一边放一个循环就能保证结果正确,其实不然 看看这组数据就知道还是有漏洞、
4
1 1 1 2 3 3 3 4
按我开始的思路是{1 1 3 3}{1 2 3 4} 这里只有8种、实际是可以有9种的、 仔细想想
#include<cmath>#include<cstring>#include<cstdio>#include<algorithm>#include<queue>#include<stack>#include<vector>#include<utility>#include<set>using namespace std;const int qq = 1e5+10;struct Num{int x,id;int heap;}num[205];int vis[205];int id[205];int cmp1(const Num &a, const Num &b){return a.x>b.x;}int cmp2(const Num &a, const Num &b){return a.id<b.id;}int main(){int n;scanf("%d",&n);for(int i=0; i<2*n; ++i){scanf("%d",&num[i].x);num[i].id = i;}sort(num, num+2*n, cmp1);int da,db; da = db = 0;int c = 0;//for(int i=0; i<2*n; ++i)//printf("%d ", num[i].x);for(int i=0; i<2*n; ++i){int f = num[i].x;int j = i+1;while(f==num[j].x)++j;if(j-i>=2){da++,db++;num[i].heap = 1;num[i+1].heap = 2;vis[i] = vis[i+1] = 1;i = j-1;}else id[c++] = i;}//for(int i=0; i<c; ++i)//printf("%d \n", id[i]);for(int i=0; i<(c+1)/2; ++i)num[id[i]].heap = 1,da++,vis[id[i]]=1;for(int i=(c+1)/2; i<c; ++i)num[id[i]].heap = 2,db++,vis[id[i]]=1;printf("%d\n", da*db);for(int i=0; i<2*n; ++i){if(vis[i])continue;if(da!=n)da++,num[i].heap = 1;elsedb++,num[i].heap = 2;}sort(num, num+2*n, cmp2);for(int i=0; i<2*n; ++i)printf("%d ",num[i].heap);printf("\n");return 0;}
0 0
- codeforces 353B
- CodeForces 353B Two Heaps
- CodeForces 353B Two Heaps
- codeforces B
- codeforces B
- codeforces B
- codeforces B
- Codeforces #353(div2)B.Restoring Painting
- CodeForces 626B CodeForces 626B【暴力】
- CodeForces 841B (B) 博弈
- codeforces 134B
- codeforces#98 b
- codeforces 105 div2 B
- Codeforces 166B - Polygons
- codeforces B. Coins
- codeforces----193B Xor
- codeforces----208B Solitaire
- Codeforces 1B - Spreadsheet
- 面向对象OOP的三个基本特征
- unity 编译后执行,自动配置 Xcode 项目的方法
- ucos学习笔记1
- Centos 7 安装后设置
- JAVASE 学习day1(未完)
- codeforces 353B
- C/C++程序的存储空间布局
- [Leetcode] Binary Tree Level Order Traversal II
- [绍棠] iOS 四种保存数据的方式!
- {题解}[jzoj4799]【NOIP2016提高A组模拟9.24】我的快乐时代
- Js 日期转换在IOS失败(混合应用常用)
- Target runtime Apache Tomcat v7.0 is not defined.
- 微信入门开发
- request.getAttribute()、request.getParameter()