time limit: 1 sec
memory limit: 128 mb
64bit io format: %lld
submitted: 12
accepted: 10 [
submit][
status][
web board]
一顆樹有n個節點(編號從0到n-1),樹上每乙個節點可能有多隻怪物。 小明在0號節點,他想要清除這棵樹上所有的怪物。
他現在有atk大小的攻擊力。只有當他的攻擊力大於怪物的防禦力時,他才可以打敗該怪物。每打敗乙隻怪物,還會增加一定的攻擊力。
乙個節點可能存在著不止乙隻怪獸,你要打敗這個節點的所有怪物才能可以從這個節點通過,
請問他能不能完成這個任務?
注意:不要求一次性殺光乙個節點裡面的所有怪物。
含多組測試資料。
每組測試資料的第1行包含兩個整數n,m,分別表示這棵樹有n個節點,m只怪獸(1<=n<=1000 ,0<=m <=100)
接下來的n-1行(即第2至n行),每行兩個整數u,v,表示編號為u,v之間的節點有一條無向邊,保證不會成環。(0<=u,v接下來的1行包含乙個整數atk,表示小明的初始化攻擊力(0<=atk<=100)
接下來的m行,每行3個整數id,def,add_atk,表示在編號為id的點上,有乙隻防禦力為def的怪物,打敗後可以增加add_atk點的攻擊力。(0<=add_atk,def<=100)
對於每組測試樣例,如果小明能夠清除所有的怪物,則輸出「oh yes.」 否則,輸出「good good study,day day up.」
5 2
0 10 2
2 32 4
113 10 2
1 11 0
oh yes.
題解:
看起來好難的樣子。。其實很水,資料也比較弱很好過,稍微搜了下思路就自己寫了qwq,一遍ac,就是優先佇列的運用和bfs,如果沒怪就加乙個增加攻擊力和防禦力都為0的假怪,不打怪也要好好學習天天向上
**:#include#include#include#include#include#include#include#include#includeusing namespace std;
int p[1005][1005];
struct node
};node mon[205];//儲存怪物
int num[105];//記錄每乙個節點的怪物數目
int biao[1005][105];//記錄每乙個節點對應的怪物標號
priority_queueq;//定義優先佇列
int main()
{ int i,j,k,n,m,x,y,atk,tag;
node now;
while(scanf("%d%d",&n,&m)!=eof)
{while(!q.empty())q.pop();
memset(p,0,sizeof(p));
memset(num,0,sizeof(num));
for(i=0;i
zzuli 1627大整數減法
大整數減法 time limit 1000ms memory limit 65536k total submit 43 accepted 14 description 求兩個不超過200 位的非負整數的差。input 首先輸入乙個整數n 表示測試例項的個數。每組例項輸入兩行,每行是乙個不超過200 ...
16 2 7 識別可執行程式
16.2.7 識別可執行程式 以下幾種方法可以用來識別可執行程式 識別可執行程式最快捷的方法之一就是檢視它的訪問許可權。如果某個檔案的可執行位 x 被置位,那麼它就是乙個可執行程式。但是,如果訪問許可權由於某種原因沒有被正 確設定,那麼這種方法就不適用了。如果認為某個程式可能是乙個可執行檔案,可以試...
中位數題解 luogu P1627
給出1 n的乙個排列,統計該排列有多少個長度為奇數的連續子串行的中位數是b。中位數是指把所有元素從小到大排列後,位於中間的數。輸入格式 第一行為兩個正整數n和b,第二行為1 n的排列。輸出格式 輸出乙個整數,即中位數為b的連續子串行個數。輸入樣例1 7 4 5 7 2 4 3 1 6 輸出樣例1 資...