hdu4864 贪心+平衡二叉搜索树(map)
来源:互联网 发布:战争程序员白濑 动漫 编辑:程序博客网 时间:2024/05/16 17:57
题意
- n个机器,m个任务,每个机器最多做一个任务,每个任务最多被一台机器做
- 每个机器和任务有两个属性,x和y,机器这两个属性都分别大于等于任务的这两个属性时才可做该任务。
- 问最多能做多少任务。
- 另外,一个任务完成挣500x+2y的钱数,在任务数达到最多的前提下,问你挣得最多的钱数。
思路
- 贪心,把任务和机器分别按两个属性从大到小排序,x是第一优先级,y是第二
- 遍历任务和机器,对每个任务,所有机器的x满足条件的,就把机器的y值作为key放入到map中,如果map里已存在该值,则让该值++,当发现下一个机器的x不满足或者机器都遍历结束了,我们从map中找到键值大于等于机器y值最小的让这个机器完成该任务。
实现
#include <iostream>#include <cstring>#include <map>#include <vector>#include <cstdio>#include <algorithm>using namespace std;#define fi first#define se second#define mp make_pair#define pb push_backtypedef long long ll;typedef pair<int,int> pii;const int maxn = 100005;pii mash[maxn], task[maxn];vector<int> vec;map<int,int> mapp;map<int,int>::iterator iter;int main(){ int n,m; while (scanf("%d%d",&n,&m) != EOF){ vec.clear(); mapp.clear(); for (int i=0;i<n;i++){ scanf("%d%d",&mash[i].fi,&mash[i].se); } for (int i=0;i<m;i++){ scanf("%d%d",&task[i].fi,&task[i].se); } sort(mash,mash+n); sort(task,task+m); for (int i=n-1,j=m-1;j>=0;){ if (i >= 0 && mash[i].fi >= task[j].fi){ mapp[mash[i].se]++; i--; } else{ if (mapp.size() == 0){ j--; continue; } iter = mapp.lower_bound(task[j].se); if (iter == mapp.end()){ j--; continue; } vec.pb(j); if (iter->se == 1){ mapp.erase(iter); } else{ iter->se--; } j--; } } ll ans = 0; for (int i=0;i<vec.size();i++){ int id = vec[i]; ans += (ll)500 * (ll)task[id].fi + (ll)2 * (ll)task[id].se; } cout << vec.size() <<" " << ans <<'\n'; } return 0;}
1 0
- hdu4864 贪心+平衡二叉搜索树(map)
- 平衡二叉搜索树
- HDU4864 贪心
- hdu4864 贪心
- 贪心 hdu4864
- hdu4864 贪心
- hdu4864(贪心)
- AVL平衡二叉搜索树
- AVLTree----平衡二叉搜索树
- AVL平衡搜索二叉树
- AVL平衡二叉搜索树
- AVLTree二叉平衡搜索树
- 二叉搜索树与平衡二叉树
- 搜索二叉树和平衡二叉树
- 二叉搜索树—平衡二叉树
- [标程]: 二叉搜索树和平衡二叉搜索树
- 二叉搜索树--进阶篇之平衡二叉搜索树
- 从二叉搜索树到平衡二叉搜索树
- UITabBarController与UINavigationController异同点浅谈
- Triangle Count算法
- POJ 1681 (高斯消元)
- 【openjudge】集合问题
- 百度地图自定义图层----BMapTileCutterJava切图工具网络版
- hdu4864 贪心+平衡二叉搜索树(map)
- 机器学习Python环境安装
- coderforce 489B B. BerSU Ball
- lightoj 1043 - Triangle Partitioning
- 关于socket tcp/ip的理解
- ajax
- Excel Sheet Column Title
- STM32库函数(3):库文件stm32f10x_flash.c内的函数
- nyoj A+B Problem IV【实数a+b】大数