Preparing for the Contest
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
const int N=1e5+;
struct Node{
int val;
int id;
bool operator<(const Node a)const{
return val<a.val;
}
}task[N];
struct Edge{
int b;
int c;
int id;
bool operator<(const Edge a)const{
return b<a.b;
}
}stu[N];
struct result{
int id;
int cost;
bool operator<(const result a)const{
return cost>a.cost;
}
};
int ans[N],temp[N];
int n,m,s;
bool judge(int t){
int len=m,p=n,tp=s;
priority_queue<result>Q;
while(len>=){
while(p>=&&stu[p].b>=task[len].val){
result aaa;
aaa.cost=stu[p].c;
aaa.id=stu[p].id;
Q.push(aaa);
p--;
}
if(Q.size()==)return false;
result ta=Q.top();
Q.pop();
tp-=ta.cost;
if(tp<)return false;
for(int i=max(,len-t);i<=len;i++)
ans[task[i].id]=ta.id;
len-=t;
}
for(int i=;i<=m;i++)
temp[i]=ans[i];
return true;
}
int main(){
while(~scanf("%d%d%d",&n,&m,&s)){
for(int i=;i<=m;i++){
scanf("%d",&task[i].val);
task[i].id=i;
}
for(int i=;i<=n;i++)
scanf("%d",&stu[i].b);
for(int i=;i<=n;i++){
scanf("%d",&stu[i].c);
stu[i].id=i;
}
sort(task+,task+m+);
sort(stu+,stu+n+);
int minn=-,l=,r=m;
while(l<=r){
int mid=(l+r)/;
if(judge(mid)){
r=mid-;
minn=mid;
}
else l=mid+;
}
if(minn==-)printf("NO\n");
else{
printf("YES\n");
for(int i=;i<=m;i++){
printf("%d ",temp[i]);
}
printf("\n");
}
}
}
Preparing for the Contest的更多相关文章
- Codeforces Round #222 (Div. 1) B. Preparing for the Contest 二分+线段树
B. Preparing for the Contest 题目连接: http://codeforces.com/contest/377/problem/B Description Soon ther ...
- 【CF】222 Div.1 B Preparing for the Contest
这样类似的题目不少,很多都是一堆优化条件求最优解,这个题的策略就是二分+贪心.对时间二分, 对费用采用贪心. /* 377B */ #include <iostream> #include ...
- codeforces 377B Preparing for the Contest 二分+优先队列
题目链接 给你m个bug, 每个bug都有一个复杂度.n个人, 每个人有两个值, 一个是能力值, 当能力值>=bug的复杂度时才可以修复这个bug, 另一个是雇佣他需要的钱,掏一次钱就可以永久雇 ...
- CodeForces 377B---Preparing for the Contest(二分+贪心)
C - Preparing for the Contest Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d ...
- POJ3967Ideal Path[反向bfs 层次图]
Ideal Path Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 1754 Accepted: 240 Descri ...
- Codeforces Gym 100342H Problem H. Hard Test 构造题,卡迪杰斯特拉
Problem H. Hard TestTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/at ...
- uav 11258 String Partition (DP)
Problem F - String Partition ...
- UVA1599-Ideal Path(BFS进阶)
Problem UVA1599-Ideal Path Time Limit: 3000 mSec Problem Description New labyrinth attraction is ope ...
- Codeforces Round #222 (Div. 1) (ABCDE)
377A Maze 大意: 给定棋盘, 保证初始所有白格连通, 求将$k$个白格变为黑格, 使得白格仍然连通. $dfs$回溯时删除即可. #include <iostream> #inc ...
随机推荐
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-系统小结
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-系统小结 不知不觉已经过了13讲,(本来还要讲多一讲是,数据验证之自定义验证,基于园友还是对权限这 ...
- OpenCV 最小二乘拟合方法求取直线倾角
工业相机拍摄的图像中,由于摄像质量的限制,图像中的直线经过处理后,会表现出比较严重的锯齿.在这种情况下求取直线的倾角(其实就是直线的斜率),如果是直接选取直线的开始点和结束点来计算,或是用opencv ...
- HTML5事件——contextmenu 隐藏鼠标右键菜单
在window中单击右键或在Mac中Ctrl+单击时会触发contextmenu事件,通过取消其默认动作能够提供自己定义菜单. 首先先写一个自己的菜单: <style> ul, li { ...
- C. Tourist Problem
http://codeforces.com/problemset/problem/340/C 赛时没想出赛后却能较快想出深深的教育自己做题一定要静下心来,不要轻易放弃,认真思考,不要浮躁着急,不要太容 ...
- WebLogic: The Definitive Guide examined WebLogic's security mechanisms--reference
reference from: http://www.onjava.com/pub/a/onjava/excerpt/weblogic_chap17/index1.html?page=1 ...... ...
- ASP.NET MVC 中 ActionResult 和 ViewResult 在使用上的区别
如果确认你返回的是一个视图(view),你可以直接返回类型为ViewResult. 如果你并不是很清楚,或者你根本不想去理解这些东西,你可以直接返回ActionResult
- order by 自定义排序
使用order by排序,有时候不是根据字符或数字顺序,而是根据实际要求排序. 例如有客户A,B,C,我希望排序结果是B,C,A,那么就要通过自定义的规则排序. 第一种方法,可以构造一张映射表,将客户 ...
- JS 模拟C# 字符串格式化操作
/*** ** 功能: 字符串格式化替换操作 ***/ String.prototype.format = function () { var args = arguments; return thi ...
- Android开发手记(25) 简单Service的实现
本文将通过实现一个简单的Service发送简单消息,然后通过一个BroadcastReceiver接收Service发送的消息,从而改变一个TextView的文本颜色. 这里,我们需要三个java文件 ...
- nodejs开发环境sublime配置
前端时间使用webstorm搭建一个node.js的学习环境,感觉非常强大.不过由于其加载的速度,每次让都让我抓狂.后来我找到了一个sublime.虽说3.0以上是收费的,2.0暂时免费.官方的不对s ...