2016中国大学生程序设计竞赛 - 网络选拔赛 1004 Danganronpa
2016-09-09 13:22
399 查看
题意
n种礼物,每种有a[i]个,所有的礼物可以作为普通礼物,也可以作为神秘礼物放在桌子上,相邻的桌子上不能放同样的普通礼物,问最多能拜几张桌子。思路
这题当时的做法有问题,正解是用优先队列来存礼物数,取出最大的两个a,b(a>b),然后放2b个,剩下a-b个放回队列中,循环操作求出来一个sum1;把所有的数量累加起来得到sum2,ans = min(sum1,sum2/2);代码
#include <bits/stdc++.h> using namespace std; const int N = 15; const int M = 26; int s ; priority_queue<int> q; int main() { int t,n,kas = 1; scanf("%d",&t); while(t--) { int ans = 0,sum=0,k=0; while(!q.empty()) q.pop(); scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&s[i]); sum+=s[i]; q.push(s[i]); } sum/=2; int a,b; while(!q.empty()){ if(k){ b=q.top(); q.pop(); ans+=2*b; q.push(a-b); } else{ a=q.top(); q.pop(); } k^=1; } if(a!=0) ans++; printf("Case #%d: %d\n",kas++,min(ans,sum)); } return 0; }
相关文章推荐
- Stylish: http://bbs.csdn.net/topics/
- Python 网络爬虫 004 (编程) 如何编写一个网络爬虫,来下载(或叫:爬取)一个站点里的所有网页
- Python 网络爬虫 004 (编程) 如何编写一个网络爬虫,来下载(或叫:爬取)一个站点里的所有网页
- 2016中国大学生程序设计竞赛 - 网络选拔赛 1011 Lweb and String
- 2016中国大学生程序设计竞赛 - 网络选拔赛 1001 A water problem
- 建立自己的MIT App Inventer 2的网络微数据库网络后台
- OAuth2.0
- MINA网络通信框架
- Netty实现网络通信
- 【02】基础:单页采集(以微博博主主页采集为例)
- Linux网络编程必看书籍推荐
- 细说DHCP网络协议和如何搭建DHCP服务器
- 网络延迟和往返时延
- 月薪 100000,也拯救不了活在网络底层的他们。
- 【01】基础:集搜客爬虫软件安装
- HTTP&HTTPS简介
- okhttp get+缓存
- 【00】why集搜客网络爬虫?
- android-async-http框架
- php 中 http_build_query()函数的使用