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 5821 Ball(貪心)
- HDU 6047 Maximum Sequence (貪心)
- HDU 5813 Elegant Construction (貪心)Struct
- HDU 6299-Balanced Sequence(貪心)
- hdu--4435--charge-station+貪心
- HDU6301 Distinct Values (多校第一場1004) (貪心)
- 貪心
- ccpc2020秦皇島Kingdom‘s Power(貪心)
- 反悔貪心
- Supermarket(貪心)
- 貪心:Codeforces Round #674 (Div. 3) E Rock, Paper, Scissors s
- 貪心例題
- 貪心+搜尋
- 貪心模式記錄模式
- 反悔貪心雜題
- 貪心演算法演算法
- 貪心、構造合集
- 貪心-刪數問題
- 貪心-*活動選擇
- 24/03/20 貪心(一)
- 漲薪【貪心】【快速冪】
- Leetcode 貪心:差值調整LeetCode
- Least Cost Bracket Sequence(貪心)ASTRacket
- 刪數問題(貪心)
- 「貪心」做題記錄
- [反悔貪心] Add One 2
- 貪心 做題筆記筆記
- 7.5 - 貪心篇完結
- 貪心演算法Dijkstra演算法
- 牛客 tokitsukaze and Soldier 貪心
- HDU - 6003 Problem Buyer題解(貪心選擇演算法,鴿巢原理,優先佇列維護)演算法佇列
- Caocao's Bridges(HDU-4738)
- HDU 4738 Caocao's Bridges(Tarjan)
- 學一下貪心演算法-學一下貪心演算法演算法
- 貪心演算法(貪婪演算法,greedy algorithm)演算法Go
- 牛牛偶像養成記(貪心)
- 貪心(入門簡單題)
- 【貪心】POJ 3617:Best Cow Line
- Moving Tables(貪心演算法)演算法