codeforces 540B-贪心
2015-07-13 01:43
369 查看
题意:必须做完n个任务,每个任务的分值是1~p,现已做了k个,知道了分别得到的分数,求剩下的任务做完后能不能满足条件:总分不超过x,中位数不低于y
分析:
贪心。总分要尽可能小,并且要满足中位数的要求,所以就用y作为最小的中位数,固定中位数后,就在其前后补数让中位数真的满足条件,每次补1或者y。
脑袋中要有补数的画面感
代码:
分析:
贪心。总分要尽可能小,并且要满足中位数的要求,所以就用y作为最小的中位数,固定中位数后,就在其前后补数让中位数真的满足条件,每次补1或者y。
脑袋中要有补数的画面感
代码:
#include<iostream> #include<cstring> using namespace std; int main() { int n,k,p,x,y; int mid; while(cin>>n>>k>>p>>x>>y){ int tmp=0,a,sum=0; for(int i=0;i<k;i++){ cin>>a; tmp+=a; if(a<y) sum++; } if(sum>n/2) cout<<"-1"<<endl; else{ int t1=min(n-k,n/2-sum); int t2=(n-k-t1)*y; if(t1+t2+tmp>x) cout<<"-1"<<endl; else{ for(int i=0;i<t1;i++) cout<<"1 "; for(int i=0;i<t2/y;i++) cout<<y<<" "; cout<<endl; } } } }
相关文章推荐
- cnblogs开源合集
- 计算机思维
- 画三角形
- Linux 上的数据可视化工具
- LINUX 暂停、继续进程
- Linux 上的数据可视化工具
- LINUX 暂停、继续进程
- sphinx实时索引和高亮显示
- 77个常用Linux命令和工具
- 必学100个常用linux命令大全
- static--main--单例
- 77个常用Linux命令和工具
- 必学100个常用linux命令大全
- Nmap命令的29个实用范例
- Nmap命令的29个实用范例
- 运维工程师必会的109个Linux命令
- StaggeredGridView+universal-image-loader加载网路图片实现瀑布流
- 运维工程师必会的109个Linux命令
- 阿里云CentOS 6.5 Docker无法启动 Could not find a free IP address range for interface 'docker0' 最方便的解决方法
- 微软开源软件---管理员用的软件