HDU 4864 Task(2014多校第一場1004)(貪心)
題意:有n個機器和m個測試,只有機器的time和level都不小於測試的time和level才能通過測試,一個機器只能對應一個測試,一個測試只能對應一個機器。每通過一個測試可以得到金錢數:500*time+2*level。求能通過測試的數量及最大的錢數。
題解:乍一看公式,決定最後錢數多少的是time,所以先按找time排序,由大到小,如果相等則按level由大到小排序。從time最大的測試開始選起。
程式碼:
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <cmath> #include <queue> #include <vector> #include <set> #include <map> typedef __int64 ll; const int N=100005; using namespace std; struct node { int x,y; }machine[N],tesk[N]; bool 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,i,j,k,num; ll money; int temp[105]; while(~scanf("%d%d",&n,&m)) { for(i=0;i<n;i++) scanf("%d%d",&machine[i].x,&machine[i].y); for(i=0;i<m;i++) scanf("%d%d",&tesk[i].x,&tesk[i].y); sort(machine,machine+n,cmp); sort(tesk,tesk+m,cmp); memset(temp,0,sizeof(temp)); for(i=0,j=0,money=0,num=0;i<m;i++) { while(machine[j].x>=tesk[i].x&&j<n)//標記符合時間條件的機器 { temp[machine[j].y]++; j++; } for(k=tesk[i].y;k<=100;k++)//判斷是否有能完成測試的機器 { if(temp[k]) { temp[k]--; num++; money=money+500*tesk[i].x+2*tesk[i].y; break; } } } printf("%d %I64d\n",num,money); } return 0; }
相關推薦
HDU 4864 Task(2014多校第一場1004)(貪心)
題意:有n個機器和m個測試,只有機器的time和level都不小於測試的time和level才能通過測試,一個機器只能對應一個測試,一個測試只能對應一個機器。每通過一個測試可以得到金錢數:500*t
hdu 4865 Peter's Hobby(2014 多校聯合第一場 E)
Recently, Peter likes to measure the humidity of leaves. He recorded a leaf humidity every day. There are four types of leaves wetness: Dry , Dryish , Dam
2018杭電多校第一場1011(hdu 6308)
題解:這題主要會超時,不能用string。可以使用sscanf提取字串。 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<queue
2018杭電多校第一場1003(hdu 6300)
題解:畫個圖發現只要按橫座標排序,每次取三個點就永遠不會相交 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<queue> #
HDU 6304 2018 HDU多校第一場 Chiaki Sequence Revisited(二分+倍增規律)
Chiaki Sequence Revisited Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1717
HDU 5301 Buildings(2015多校第二場)
pop event -a port sha style with code line Buildings Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java
2018杭電多校第一場(A)
bits 題意 img sca name amp alt 題解 .com 題意:x+y+z = n , n%x=0,n%y=0,n%z=0,求x*y*z 的最大值 題解: ac code: #include <bits/stdc++.h>
hdu 多校第一場
sort pro push_back -- num printf air 順序輸出 urn 1001 思路:打表可以發現只有3|n 和 4|n 的情況有解,判一下就好啦。 #include<bits/stdc++.h> #define LL lon
Different Integers(牛客多校第一場+莫隊做法)
tdi har lock def ack type void *** 種類 題目鏈接:https://www.nowcoder.com/acm/contest/139/J 題目: 題意:給你n個數,q次查詢,對於每次查詢得l,r,求1~l和r~n元素得種類。
HDU 5361 In Touch (2015 多校6 1009 最短路 + 區間更新)
題意:最短路,求源點到所有點的最短距離。但與普通最短路不同的是,給出的邊是某點到區間[l,r]內任意點的距離。 輸入一個n,代表n個點,輸入n個l[i],輸入n個r[i],輸入n個c[i]。 對於i,表示i到區間[i - r[i]],i - l[i]]和
牛客多校第一場 F. Sum of Maximum(拉格朗日插值)
題目描述 Given a1, a2, ..., an, find modulo (109+7). 輸入描述: The input consists of several test cases and is terminated by end-of-file. T
2017多校第一場 HDU 6041 I Curse Myself Tarjan找環+K路歸併
Problem Description There is a connected undirected graph with weights on its edges. It is guaranteed that each edge appears in at
牛客多校第一場 B Symmetric Matrix(組合數公式+dp)
題目描述 Count the number of n x n matrices A satisfying the following condition modulo m. * Ai, j ∈ {0, 1, 2} for all 1 ≤ i, j ≤ n. * Ai,
牛客多校第一場A——Monotonic Matrix(數論——組合數學—— Lindström–Gessel–Viennot lemma )
這題在打比賽時,我感覺到了來自於世界的惡意。。。 Lindström–Gessel–Viennot lemma定理,在比賽前,我是完全沒有聽說過的,好想哭,掛機的數論選手。。。 1. Count the number of n x m matrices A satisfyi
杭電多校第一場 Chiaki Sequence Revisited(找規律)
Chiaki Sequence Revisited Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1624
2018牛客網暑假多校第一場J(樹狀陣列+思維)
題目描述: 有一個n個數的數列,並由q個詢問,每一個詢問有一個l和r,問你在區間a1—al和ar—an這兩個區間中有多少個不同的數。 題目分析: 這個題目事實上是spoj的某一題的改編,原題是求l到r區間有多少個不同的數,現在這個題是要求兩個分開的區間有
2017多校第一場(HDU6038)
還是太菜了這麼多人過的一道題目,自己卻想了這麼久,然而到現在還是不是很清楚這個東西,先寫一個題解吧,題目給的是一個公式 f(i)=bf(ai) 給定了b陣列和a陣列,然後問有多少種對映的方案滿足上式, 首先來看下樣例 f(0)=bf(1) f(1
hdu 6304 多校第一場 Chiaki Sequence Revisited
//#include <bits/stdc++.h> #include<stdio.h> #include<string.h> #include<string> #include<math.h> #in
2015多校第一場1002(單調佇列、STL multiset、)
Assignment Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 997 Accepted Su
Card Hand Sorting 18中南多校第一場C題
tin 在一起 最大 次數 push_back bool tor using post 一、題意 隨機給你一堆牌(標準撲克牌),之後讓你按照: 第一優先規則:所有相同花色的在一起 第二優先規則:所有相同花色的必須按照升序或者降序排列 問,你最少要拿出多少張牌插入到其他