1. /*
  2. 不要低头,不要放弃,不要气馁,不要慌张
  3. 题意:
  4. 给n个插座,m个电脑。每个插座都有一个电压,每个电脑都有需求电压。
  5. 每个插座可以接若干变压器,每个变压器可以使得电压变为x/2上取整。
  6. 有无限个变压器供应。
  7. 问最多能使得多少个插座与电脑匹配,使得电压一致。
  8. 如果有多种方案,输出需要变压器总数最小的那种。
  9. 输出匹配数量
  10. 输出每个插座需要接多少个变压器。输出每台电脑匹配哪个插座。
  11.  
  12. 思路:
  13. 贪心 乱搞
  14. 先从小到大将插座排序,然后从地第一个插座开始,不断除以2上取整。不断找是否可以匹配。找到匹配就停止。
  15. 记录个数即可。
  16. 这样可以保证所用变压器总数最少。
  17. */
  18.  
  19. #include<bits/stdc++.h>
  20. #define N 200050
  21. using namespace std;
  22. struct st{
  23. st(){}
  24. st(int a,int b){
  25. aa=a;id=b;
  26. }
  27. int aa,id;
  28. };
  29.  
  30. bool operator < (const st &a,const st &b){
  31. return a.aa<b.aa;
  32. }
  33. bool cmp(st a,st b){
  34. return a.aa<b.aa;
  35. }
  36. multiset<st>b;
  37. st a[N];
  38. int ansa[N],ansb[N];
  39. int main()
  40. {
  41. int n,m;
  42. st tmp;
  43. scanf("%d%d",&n,&m);
  44. for(int i=;i<=n;i++){
  45. scanf("%d",&tmp.aa);
  46. tmp.id=i;
  47. b.insert(tmp);
  48. }
  49. for(int i=;i<=m;i++){
  50. scanf("%d",&a[i].aa);
  51. a[i].id=i;
  52. }
  53. sort(a+,a++m,cmp);
  54. long long c=;
  55. for(int i=;i<=m;i++){
  56. int num=;
  57. bool ok=;
  58. while(a[i].aa>){
  59. if(b.find(st(a[i].aa,))!=b.end()){
  60. ok=;
  61. c+=num;
  62. tmp=*b.find(st(a[i].aa,));
  63. ansa[a[i].id]=num;
  64. ansb[tmp.id]=a[i].id;
  65. b.erase(b.find(st(a[i].aa,)));
  66. break;
  67. }
  68. a[i].aa=(a[i].aa+)/;
  69. num++;
  70. }
  71. if(!ok){
  72. if(b.find(st(a[i].aa,))!=b.end()){
  73. ok=;
  74. c+=num;
  75. tmp=*b.find(st(a[i].aa,));
  76. ansa[a[i].id]=num;
  77. ansb[tmp.id]=a[i].id;
  78. b.erase(b.find(st(a[i].aa,)));
  79. }
  80. }
  81. }
  82. int dd=b.size();
  83. dd=n-b.size();
  84. printf("%d %lld\n",dd,c);
  85. for(int i=;i<=m;i++){
  86. printf("%d ",ansa[i]);
  87. }
  88. puts("");
  89. for(int i=;i<=n;i++){
  90. printf("%d ",ansb[i]);
  91. }
  92. }

Codeforces 732e [贪心][stl乱搞]的更多相关文章

  1. “盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛题解&&源码【A,水,B,水,C,水,D,快速幂,E,优先队列,F,暴力,G,贪心+排序,H,STL乱搞,I,尼姆博弈,J,差分dp,K,二分+排序,L,矩阵快速幂,M,线段树区间更新+Lazy思想,N,超级快速幂+扩展欧里几德,O,BFS】

    黑白图像直方图 发布时间: 2017年7月9日 18:30   最后更新: 2017年7月10日 21:08   时间限制: 1000ms   内存限制: 128M 描述 在一个矩形的灰度图像上,每个 ...

  2. Codeforces 1077E (二分乱搞或者dp)

    题意:给你一个数组,可以从中选区若干种元素,但每种元素选区的个数前一种必须是后一种的2倍,选区的任意2种元素不能相同,问可以选取最多的元素个数是多少? 思路1(乱搞):记录一下每种元素的个数,然后暴力 ...

  3. codeforces 664B B. Rebus(乱搞题)

    题目链接: B. Rebus time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  4. 树形DP+贪心(乱搞)(HDU4714)

    题意:给出一个树形图,要求把该树形成一个环最少的步骤(断开一条边和形成一条边都需一步) 分析:很明显,要想把树形成一个环,就要先把其分裂成m条子链之后把子链形成环需要的步骤是2*m+1,所以只需要m最 ...

  5. Gym 100952F&&2015 HIAST Collegiate Programming Contest F. Contestants Ranking【BFS+STL乱搞(map+vector)+优先队列】

    F. Contestants Ranking time limit per test:1 second memory limit per test:24 megabytes input:standar ...

  6. bzoj 1811: [Ioi2005]mea 贪心,乱搞

    [Ioi2005]mea Time Limit: 20 Sec  Memory Limit: 64 MBSubmit: 690  Solved: 257[Submit][Status][Discuss ...

  7. 【BZOJ-3578】GTY的人类基因组计划2 set + map + Hash 乱搞

    3578: GTY的人类基因组计划2 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 367  Solved: 159[Submit][Status][ ...

  8. Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2)(A.暴力,B.优先队列,C.dp乱搞)

    A. Carrot Cakes time limit per test:1 second memory limit per test:256 megabytes input:standard inpu ...

  9. Codeforces 1182D Complete Mirror 树的重心乱搞 / 树的直径 / 拓扑排序

    题意:给你一颗树,问这颗树是否存在一个根,使得对于任意两点,如果它们到根的距离相同,那么它们的度必须相等. 思路1:树的重心乱搞 根据样例发现,树的重心可能是答案,所以我们可以先判断一下树的重心可不可 ...

随机推荐

  1. JSP-JSTL学习

    <%@page import="com.Student"%> <%@page import="com.Person"%> <%@p ...

  2. 粗略了解struts2

    花了半天的时间再把struts2详细拟了一遍,之前用习惯了servlet加jsp,再看struts2的时候终于明白为什么大家都愿意学,以人类天生的惰性,要让他们愿意去学习一个新的东西,这东西一定可以让 ...

  3. CSS背景色渐变

      试了下 渐变色  ,主要确定开始位置  结束位置,以及对应的color-stop;  以下是兼容不同浏览器的代码片段       代码:<style type="text/css& ...

  4. mysql 的max_connections和max_user_connections 的区别

    ----查看max_user_connections 默认值 MySQL> show variables like 'max_user_connections'; +-------------- ...

  5. JQ轮播

    首先是html结构,一个简单的轮播,主要分为三大层:div>ul>li,li里面的img图片. 其次,css样式:div固定住宽高,overflow:hidden:ul的宽度建议是动态获取 ...

  6. u-boot-2010.09移植(A)

    第一阶段 1.开发环境 系统:centOS6.5           linux版本:2.6.32         交叉编译器:buildroot-2012.08 以上工具已经准备好,具体安装步骤不再 ...

  7. 【转载】 Java 7之基础 - 强引用、弱引用、软引用、虚引用

    原文地址:http://blog.csdn.net/mazhimazh/article/details/19752475 1.强引用(StrongReference) 强引用是使用最普遍的引用.如果一 ...

  8. Linux系统中Xampp+Bugfree安装

    一.XAMPP下载安装: 1.https://www.apachefriends.org/download.html下载安装包, 因为我们是要安装到linux下面,所以下载xampp的linux版本, ...

  9. OPENVPN

    安装 方法1--源码安装yum -y install  pam pam-devel gcc gcc-c++ lzo lzo-devel openssl openssl-devel wget autom ...

  10. oracle11g重置system密码,外二

    来自:http://lukeview.blog.51cto.com/508652/912124 win+r,输入sqlplus /nolog,回车SQL> conn /as sysdba已连接: ...