HDU 4864 Task
題意: 每臺機器有x,y兩種屬性,有m個任務,如果機器的這兩個屬性大於任務,那麼就是可以完成這個任務,並且每個任務每隻能完成一個任務。
思路:先按照x排序,x相等,按照y排序,每一次記錄下來可以完成這個任務的機器,尋找屬性相差最小的那臺。
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define ll long long
#define N 111111
struct node{
int x,y;
ll ac;
void input(){
scanf("%d%d",&x,&y);
ac = 500*x+2*y;
}
}a[N],b[N];
bool cmp(node xx,node yy){
if(xx.x==yy.x) return xx.y>yy.y;
return xx.x>yy.x;
}
int n,m;
int vis[111];
int main(){
while(scanf("%d%d",&n,&m)==2){
for(int i=0;i<n;i++)
a[i].input();
for (int j=0;j<m;j++)
b[j].input();
sort(a,a+n,cmp);
sort(b,b+m,cmp);
ll sum = 0;
int ans =0;
memset(vis,0,sizeof(vis));
for(int i=0,j=0;i<m;i++){
while(j<n&&a[j].x>=b[i].x){
vis[a[j].y]++;
j++;
}
for (int k=b[i].y;k<=100;k++){
if(vis[k]){
vis[k]--;
ans++;
sum+=b[i].ac;
break;
}
}
}
printf("%d %I64d\n",ans,sum);
}
}
相關推薦
HDU 4864 Task
題意: 每臺機器有x,y兩種屬性,有m個任務,如果機器的這兩個屬性大於任務,那麼就是可以完成這個任務,並且每個任務每隻能完成一個任務。 思路:先按照x排序,x相等,按照y排序,每一次記錄下來可以完成這
HDU 4864 Task(2014多校第一場1004)(貪心)
題意:有n個機器和m個測試,只有機器的time和level都不小於測試的time和level才能通過測試,一個機器只能對應一個測試,一個測試只能對應一個機器。每通過一個測試可以得到金錢數:500*t
HDU 4864 Task(基本演算法-貪心)
Task Problem Description Today the company has m tasks to complete. The ith task need xi minutes to complete. Meanwhile, this task ha
HDU 4864 Task(貪心) (機器完成目標任務, 兩個權值, 小範圍打表)
Task Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7171 Accepted Submiss
hdu 4864 Task 貪心
題意:有n個機器,m個任務。每個機器至多能完成一個任務。對於每個機器,有一個最大執行時間xi和等級yi,對於每個任務,也有一個執行時間xj和等級yj。只有當xi>=xj且yi>=yj的時候,機器i才能完成任務j,並獲得500*xj+2*yj金錢。問最多能完成幾個
HDU 4864 Task(經典貪心)
傳送門: Task Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11382 Accepted Submission(s): 2782 Pr
HDU 4864 Task (2014多校聯合訓練第一場1004) 解題報告(貪心)
Task Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 400 Accepted Submission(
HDU 4864 Task (貪心)
Task Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2154 Accepted Submission(
【HDU 4864】 Task
name names php def target nbsp set In print 【題目鏈接】 http://acm.hdu.edu.cn/showproblem.php?pid=4864 【算法】 貪心
[BestCoder Round #3] hdu 4907 Task schedule (模擬簡單題)
using mes family set key problem 占用 時間 task Task schedule Problem Description 有一臺機器,而且給你這臺機器的工作表。工作表上有n個任務,機器在ti時間運行第i個任務,1秒就可以完畢
HDU 3572 Task Schedule(ISAP模板&&最大流問題)
reat avi 所有 dsm name col eof 網絡流 -1 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=3572 題意:m臺機器。須要做n個任務。第i個任務。你須要使用機器Pi天,且這個任務要在[Si
hdu 3572 Task Schedule
cout stdio.h res geometry stdin i++ rst math.h pro Task Schedule Problem Description Our geometry princess XMM has stoped her study in co
HDU - 3572-Task Schedule
amp 結束時間 view can 分享 sed 不同 node printf 題目大意:給N個任務,M臺機器。每個任務有最早才能開始做的時間S,最晚完成時間 E, 和持續工作的時間P。每個任務可以由不同的機器進行,但是在同一時刻,一臺機器最多只能 執行一個任務. 問存不存
hdu-3572 Task Schedule---最大流判斷滿流+dinic算法
push_back size 分段 amp con AS mda tro iter 題目鏈接: http://acm.hdu.edu.cn/showproblem.php?pid=3572 題目大意: 給N個任務,M臺機器。每個任務有最早才能開始做的時間S,deadline
題解報告:hdu 4907 Task schedule
mil 註意 input cat ++ nbsp clu names amp Problem Description 有一臺機器,並且給你這臺機器的工作表,工作表上有n個任務,機器在ti時間執行第i個任務,1秒即可完成1個任務。有m個詢問,每個詢問有一個數字q,表示如果在q
HDU 3572 Task Schedule[Dinic多路增廣優化]
Task Schedule 題意:有n個任務,每個任務三個引數,P,S,E,分別代表需要工作的時間,起始時間,終止時間. 工作的P天可以不連續.每天可以同時進行M個任務.問,是否有合理的安排計劃. 思路: 每個任務對於區間[S,E]連一條邊,代表這些路徑都可以嘗試 對於每
HDU 4864 貪心
要求:有n臺機器和m個任務,並且每臺機器和每個任務都帶有一個時間標記和一個等級標記,只有機器的兩個標記都大於任務時才能進行該任務。最大等級不超過100,完成一個任務獲得錢數為500*時間+2*等級。一臺機器一天只能完成一個任務,求完成最大任務數,若有多解,取賺錢數最多的。 方法
HDU--4486 Task(貪心)
main 一個 一個數 pid sca 個數 lan efi scan 題目鏈接 4486 Task 按照時間從大到小排序 然後枚舉所有的y值 用一個數組存儲 符合要求就算上 #include<bits/stdc++.h> using namespa
貪心 之 hdu 4864
// [7/23/2014 Sjm] /* 又坑在TLE上了。。。。 Each machine can only complete a task one day. Each task can only be completed by one machine.所以想到了貪心
hdu 3572 Task Schedule(網路流最大流)
/* 題目大意:工廠有m臺機器,需要做n個任務。對於一個任務i, 你需要花費一個機器Pi天,而且,開始做這個任務的時間要>=Si,完成這個任務的時間<=Ei。 對於一個任務,只能由一個機器來完成,一個機器同一時間只能做一個任務。 但是,一個任務可以分成幾段不連續