/*
不要低头,不要放弃,不要气馁,不要慌张
题意:
给n个插座,m个电脑。每个插座都有一个电压,每个电脑都有需求电压。
每个插座可以接若干变压器,每个变压器可以使得电压变为x/2上取整。
有无限个变压器供应。
问最多能使得多少个插座与电脑匹配,使得电压一致。
如果有多种方案,输出需要变压器总数最小的那种。
输出匹配数量
输出每个插座需要接多少个变压器。输出每台电脑匹配哪个插座。 思路:
贪心 乱搞
先从小到大将插座排序,然后从地第一个插座开始,不断除以2上取整。不断找是否可以匹配。找到匹配就停止。
记录个数即可。
这样可以保证所用变压器总数最少。
*/ #include<bits/stdc++.h>
#define N 200050
using namespace std;
struct st{
st(){}
st(int a,int b){
aa=a;id=b;
}
int aa,id;
}; bool operator < (const st &a,const st &b){
return a.aa<b.aa;
}
bool cmp(st a,st b){
return a.aa<b.aa;
}
multiset<st>b;
st a[N];
int ansa[N],ansb[N];
int main()
{
int n,m;
st tmp;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
scanf("%d",&tmp.aa);
tmp.id=i;
b.insert(tmp);
}
for(int i=;i<=m;i++){
scanf("%d",&a[i].aa);
a[i].id=i;
}
sort(a+,a++m,cmp);
long long c=;
for(int i=;i<=m;i++){
int num=;
bool ok=;
while(a[i].aa>){
if(b.find(st(a[i].aa,))!=b.end()){
ok=;
c+=num;
tmp=*b.find(st(a[i].aa,));
ansa[a[i].id]=num;
ansb[tmp.id]=a[i].id;
b.erase(b.find(st(a[i].aa,)));
break;
}
a[i].aa=(a[i].aa+)/;
num++;
}
if(!ok){
if(b.find(st(a[i].aa,))!=b.end()){
ok=;
c+=num;
tmp=*b.find(st(a[i].aa,));
ansa[a[i].id]=num;
ansb[tmp.id]=a[i].id;
b.erase(b.find(st(a[i].aa,)));
}
}
}
int dd=b.size();
dd=n-b.size();
printf("%d %lld\n",dd,c);
for(int i=;i<=m;i++){
printf("%d ",ansa[i]);
}
puts("");
for(int i=;i<=n;i++){
printf("%d ",ansb[i]);
}
}

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. Android之自定义控件-下拉刷新

    实现效果: 图片素材:         --> 首先, 写先下拉刷新时的刷新布局 pull_to_refresh.xml: <resources> <string name=& ...

  2. PL-SQL(免安装版本)报错ORA-12154

      今天在帮同事安装PL/SQL时,在登陆的时候出现上述错误,从网上找了好多解决方法,但都没有解决问题.对于免安装版本的PL/SQL在登陆是应该先配置好路径:bin\instantclient_11_ ...

  3. TOJ2647

                                                             2647: How Many Tables 时间限制(普通/Java):1000MS/ ...

  4. UIPickerView控件中自定义展示的字体大小及样式

    - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger) ...

  5. android 编译

    编译 Android完全编译,耗时 1 小时 25 分$ make编译当前目录下的模块,耗时 1 小时 31 分mm编译指定目录下的模块mmm 模块的根目录清除上次编译输出make clean单独编译 ...

  6. 【jq】c#零基础学习之路(1)Hello World!

    从今天起我会持续发表,这个就是一个日记型的,学习编程是枯燥的,况且我们还是零基础. 学前准备 1.编译环境 vs2010.vs2012.vs2015...(本人用的是vs2010旗舰版).vs2010 ...

  7. 【以前弄的老东西】DLLspy超犀利后门 (源代码+程序+使用手册+二次开发文档)

    这个玩意儿是很久之前的整的.一直没有做完,但是基本功能和框架都做好了,现在发出来,希望有能力的家伙一起完成.DLLspy,绝对免杀,隐藏,HTTP请求劫持,居家旅行,杀人放火必备良药.有时间我会继续开 ...

  8. [原创]cocos2d-x研习录-第三阶 特性之粒子系统

    我想接触过游戏引擎的同学,对粒子系统应该不会陌生.它用于解决由大量按一定规则运动(变化)的微小物质在计算机上的生成和显示问题.粒子系统在游戏中有着非常广泛的应用,可以模拟很多现象,如火花.爆炸.烟雾. ...

  9. bootstrap学习

    1. bootstrap使用了less作为预编译器,他是结构清晰层次分明的css页面构建样式,即使你不喜欢bootstrap的样式,你仍然可以借鉴bootstrap编写css的这种方式 2.boots ...

  10. javascript的this

    关于JavaScript中的this的取值: 函数在创建的时候,会创建两个隐藏属性:函数的上下文.实现函数行为的代码(调用属性):以及prototype属性.length属性. 函数在调用的时候,除了 ...