HDU 4864 (2014 Multi-University Training Contest 1 )
考试时,想到了一个很类似的方法,但是总是差那么点,就是这么点,需要不断的努力啊!!!
题解:
基本思想是贪心。
对于价值c=500*xi+2*yi,yi最大影响100*2<500,所以就是求xi总和最大。可以先对机器和任务的时间从大到小排序。从最大时间的任务开始,找出满足任务时间要求的所有机器,从中找出等级最低且满足任务等级要求的机器匹配。依次对任务寻找满足要求的机器。
这几乎是把标程复制了一遍,因为其中的STL用的实在巧妙而且准确,自己写的话确实搞不出来。
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
typedef long long LL;
struct Task
{
int time;
int level;
};
Task task[],machine[];
bool cmp(Task a,Task b){
if(a.time==b.time) return(a.level>b.level);
else return(a.time>b.time);
}
int main()
{
int n,m;
while(scanf("%d%d", &n,&m)!=EOF)
{
for(int i=;i<n;i++)
scanf("%d%d",&machine[i].time,&machine[i].level);
for(int i=;i<m;i++)
scanf("%d%d",&task[i].time,&task[i].level);
sort(machine,machine+n,cmp);
sort(task,task+m,cmp);
int j=,count=;LL ans=;
map<int,int> le;
for(int i=;i<m;i++){
while(j<n&&task[i].time<=machine[j].time){
le[machine[j].level]++;
j++;
}
map<int,int>::iterator it=le.lower_bound(task[i].level);
if(it!=le.end()){
count++;
ans+=task[i].time*+task[i].level*;
int t=it->first;
le[t]--;
if(le[t]==) le.erase(t);
}
}
printf("%d %I64d\n",count,ans);
}
return ;
}
刚才发现大神博客题解上可以不用STL ,直接扫一遍就行了,自己还是太弱了。
转:http://blog.csdn.net/a601025382s/article/details/38046927
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; #define LL __int64
const int maxn=1e5+;
struct node{
int x,y;
}e[maxn],f[maxn];
int c[];
int cmp(node a,node b)
{
if(a.x==b.x)return a.y>b.y;
return a.x>b.x;
}
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
int i,j,k,num=;
LL ans=;
for(i=;i<n;i++)
scanf("%d%d",&e[i].x,&e[i].y);
for(i=;i<m;i++)
scanf("%d%d",&f[i].x,&f[i].y);
sort(e,e+n,cmp);
sort(f,f+m,cmp);
memset(c,,sizeof(c));
for(i=,j=;i<m;i++)
{
while(j<n&&e[j].x>=f[i].x)
{
c[e[j].y]++;
j++;
}
for(k=f[i].y;k<=;k++)
{
if(c[k])
{
num++;
c[k]--;
ans=ans+*f[i].x+*f[i].y;
break;
}
}
}
printf("%d %I64d\n",num,ans);
}
return ;
}
HDU 4864 (2014 Multi-University Training Contest 1 )的更多相关文章
- hdu 4915 Parenthese sequence--2014 Multi-University Training Contest 5
主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4915 Parenthese sequence Time Limit: 2000/1000 MS (Ja ...
- hdu 4902 Nice boat--2014 Multi-University Training Contest 4
题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=4902 Nice boat Time Limit: 30000/15000 MS (Java/Othe ...
- hdu 4925 Apple Tree--2014 Multi-University Training Contest 6
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4925 Apple Tree Time Limit: 2000/1000 MS (Java/Others ...
- HDU校赛 | 2019 Multi-University Training Contest 6
2019 Multi-University Training Contest 6 http://acm.hdu.edu.cn/contests/contest_show.php?cid=853 100 ...
- HDU校赛 | 2019 Multi-University Training Contest 5
2019 Multi-University Training Contest 5 http://acm.hdu.edu.cn/contests/contest_show.php?cid=852 100 ...
- HDU校赛 | 2019 Multi-University Training Contest 4
2019 Multi-University Training Contest 4 http://acm.hdu.edu.cn/contests/contest_show.php?cid=851 100 ...
- HDU校赛 | 2019 Multi-University Training Contest 3
2019 Multi-University Training Contest 3 http://acm.hdu.edu.cn/contests/contest_show.php?cid=850 100 ...
- HDU校赛 | 2019 Multi-University Training Contest 2
2019 Multi-University Training Contest 2 http://acm.hdu.edu.cn/contests/contest_show.php?cid=849 100 ...
- HDU校赛 | 2019 Multi-University Training Contest 1
2019 Multi-University Training Contest 1 http://acm.hdu.edu.cn/contests/contest_show.php?cid=848 100 ...
- HDU 6102 - GCDispower | 2017 Multi-University Training Contest 6
个人感觉题解的复杂度很玄,参不透,有没有大佬讲解一下- - /* HDU 6102 - GCDispower [ 数论,树状数组] | 2017 Multi-University Training C ...
随机推荐
- BitmapSource ConvertTo Bitmap
偶遇需要把 BitmapSource 转成 Bitmap. .. using System; using System.Drawing; using System.Drawing.Imaging; u ...
- linux 下 安装 rpm 格式 的 mysql
在Linux操作系统下,安装MYSQL有两种方式: 一种tar安装方式, 另外一种是rpm安装方式. 这两种安装方式有什么区别呢?尽管我们在Linux下常用tar来压缩/解压缩文件,但MYSQL的ta ...
- switch..case函数的基础使用一
基本作用:switch中的参数与case的值进行比对,相等则进入case. JDK1.7 switch支持int.Integer.String类型 package com.my.test; impor ...
- spring配置事务
一.配置JDBC事务处理机制 <!-- 配置Hibernate事务处理 --> <bean id="transactionManager" class=" ...
- Linq常用
1.左关联查询var lst = from m in db.信息 join d in db.明细信息 on m.单号 equals d.单号 into mi ...
- Codeforces Round #240 (Div. 2)->A. Mashmokh and Lights
A. Mashmokh and Lights time limit per test 1 second memory limit per test 256 megabytes input standa ...
- PAT-乙级-1053. 住房空置率 (20)
1053. 住房空置率 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 在不打扰居民的前提下,统计住房空 ...
- 【WCF--初入江湖】11 安全
11 安全 前言 [1]传输安全 传输安全模式 传输安全与绑定协议 [2]身份验证 身份验证分类 证书 示例:传输安全匿名客户端证书的使用 1. 传输安全 保证信息在传输过程中的 ...
- LA 4384
扩展欧几里得 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> ...
- POJ 1781
#include <iostream> #include <string> #include <cmath> using namespace std; unsign ...