hdu 3177Crixalis's Equipment(貪心)
Crixalis's Equipment
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2286 Accepted Submission(s): 924
Problem Description
Crixalis - Sand King used to be a giant scorpion(蠍子) in the deserts of Kalimdor. Though he's a guardian of Lich King now, he keeps the living habit of a scorpion like living
underground and digging holes.
Someday Crixalis decides to move to another nice place and build a new house for himself (Actually it's just a new hole). As he collected a lot of equipment, he needs to dig a hole beside his new house to store them. This hole has a volume of V units, and Crixalis has N equipment, each of them needs Ai units of space. When dragging his equipment into the hole, Crixalis finds that he needs more space to ensure everything is placed well. Actually, the ith equipment needs Bi units of space during the moving. More precisely Crixalis can not move equipment into the hole unless there are Bi units of space left. After it moved in, the volume of the hole will decrease by Ai. Crixalis wonders if he can move all his equipment into the new hole and he turns to you for help.
Someday Crixalis decides to move to another nice place and build a new house for himself (Actually it's just a new hole). As he collected a lot of equipment, he needs to dig a hole beside his new house to store them. This hole has a volume of V units, and Crixalis has N equipment, each of them needs Ai units of space. When dragging his equipment into the hole, Crixalis finds that he needs more space to ensure everything is placed well. Actually, the ith equipment needs Bi units of space during the moving. More precisely Crixalis can not move equipment into the hole unless there are Bi units of space left. After it moved in, the volume of the hole will decrease by Ai. Crixalis wonders if he can move all his equipment into the new hole and he turns to you for help.
Input
The first line contains an integer T, indicating the number of test cases. Then follows T cases, each one contains N + 1 lines. The first line contains 2 integers: V, volume of a hole and N, number of equipment respectively. The next N lines contain N pairs
of integers: Ai and Bi.
0<T<= 10, 0<V<10000, 0<N<1000, 0 <Ai< V, Ai <= Bi < 1000.
0<T<= 10, 0<V<10000, 0<N<1000, 0 <Ai< V, Ai <= Bi < 1000.
Output
For each case output "Yes" if Crixalis can move all his equipment into the new hole or else output "No".
Sample Input
2
20 3
10 20
3 10
1 7
10 2
1 10
2 11
Sample Output
Yes
No
題目大意:開始有能量V,然後有n個障礙物,打敗第i個障礙物,需要bi的能量(V>=bi),打敗之後能量會減少ai(V=V-ai)。問你有沒有可能選擇一種順序方式,使得可以將所有障礙物都打敗,可以的話輸出yes,else輸出no.
解題思路:開始是分了兩個陣列討論,按照bi排一遍,再按照ai排一遍,試了很多方法,一直WA,沒有想到利用策略來找關係。
假設有第i個障礙物與第j個障礙物。
如果先放i後放j那麼有
V>=bi,V>=ai+bj;
如果先放j後放i那麼有
V>=bj,V>=aj+bi;
對上面的再分析,如果先放i後放j,那麼V>=bi,V>=ai+bj;並且下面的的式子不成立,但是V>=bj成立,所以有aj+bi>V
那麼可以得到aj+bi>ai+bj;即為bi-ai>bj-aj;
按照這個排序,然後依次處理即可。
詳見程式碼。
題目地址:Crixalis's Equipment
AC程式碼:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cmath>
using namespace std;
struct nod
{
int a;
int b;
};
nod node[1005];
int cmp(nod p1,nod p2)
{
if(p1.b-p1.a>=p2.b-p2.a) return 1;
return 0;
}
int main()
{
int tes;
cin>>tes;
int v,n,i;
while(tes--)
{
cin>>v>>n;
for(i=0;i<n;i++)
cin>>node[i].a>>node[i].b;
sort(node,node+n,cmp);
int flag=0;
for(i=0;i<n;i++)
{
if(node[i].b>v)
{
flag=1;
break;
}
else
{
v-=node[i].a;
}
}
if(flag==1) puts("No");
else puts("Yes");
}
return 0;
}
/*
34
10 2
9 9
1 5
10 2
3 10
1 5
20 3
10 20
3 10
1 7
10 2
1 10
2 11
8 3
6 7
1 2
1 1
8 3
6 8
1 1
1 2
*/
相關文章
- HDU 4550卡片遊戲(貪心)遊戲
- HDU 5813 Elegant Construction (貪心)Struct
- HDU 5135 Little Zu Chongzhi's Triangles(狀壓dp或者貪心)
- hdu4268 multiset應用 貪心
- hdu5380 貪心+雙端佇列佇列
- hdu 1789 Doing Homework again(簡單貪心)AI
- hdu4313 貪心並查集 || 樹形dp並查集
- HDU5630 Hiking(貪心+優先佇列)佇列
- 貪心
- HDU 4252A Famous City(弱資料可以使用貪心)
- HDU 5303 Delicious Apples (貪心 列舉 好題)APP
- Supermarket(貪心)
- 反悔貪心
- 貪心:Codeforces Round #674 (Div. 3) E Rock, Paper, Scissors s
- 貪心模式記錄模式
- 貪心演算法演算法
- 貪心、構造合集
- UVA11292 HDU1902 POJ3646 The Dragon of Loowater【貪心】Go
- Least Cost Bracket Sequence(貪心)ASTRacket
- 牛客 tokitsukaze and Soldier 貪心
- 24/03/20 貪心(一)
- 7.5 - 貪心篇完結
- 貪心 做題筆記筆記
- 學一下貪心演算法-學一下貪心演算法演算法
- 貪心演算法(貪婪演算法,greedy algorithm)演算法Go
- 淺談貪心與動歸
- 貪心演算法Dijkstra演算法
- 貪心(入門簡單題)
- 9-貪心演算法演算法
- [反悔貪心] Add One 2
- hdu5289||2015多校聯合第一場1002貪心+RMQMQ
- HDU - 6003 Problem Buyer題解(貪心選擇演算法,鴿巢原理,優先佇列維護)演算法佇列
- 程式猿生存指南-63 貪心姑娘
- 演算法基礎–貪心策略演算法
- Moving Tables(貪心演算法)演算法
- 1413D. Shurikens(貪心,棧)3D
- Leetcode 貪心:差值調整LeetCode
- Python演算法:貪心策略Python演算法