題目描述:
由於自己「想得太多」,導致自己讀了半天題才理解了題意。我還以為索敵值會隨著每一次到達戰略點而減小,結果題意是索敵值是固定了的,並不會改變。
如下是我對題目中第乙個案例的分析:
每個圓圈代表乙個戰略點的編號,邊上的值代表每兩個戰略點之間所需索敵值。
開始時nettle在1,他只需要3個索敵值就能到達5了,如圖:從戰略點1到達戰略點5只需要 3 個索敵值,因此答案 3 滿足條件,再從戰略點2到戰略點5只需要 2 個索敵值,答案3大於2,因此答案 3 滿足條件。所以,nettle需要的最少索敵值為3,經1---->2---->5路線,可以消滅boss。
**實現:
#include #include#include
#include
#include
using
namespace
std;
const
int maxn =1e6;
const
int inf = 1000000+10
;int
n,m,k,t;
struct
edge;
struct
node;
edge e[maxn*2];///
所有的邊
edge now[maxn*2];///
滿足k>=val的邊
vectorg[maxn];///
滿足k>=val的邊對應的點
bool
used[maxn];
typedef pair
p;queue
q;int
cmp(edge a, edge b)
bool bfs(int num,int k)
q.push(p(num,k));
used[num]=true
;
while(!q.empty())
for(int i=0;i)}}
}return
false;}
bool c(int
x)
///滿足鎖敵值為x的邊存在now陣列裡面
for(int i=0;i<2*m;i++)
}for(int i=0;i));
}if(bfs(1,k))
return
false;}
void
solve()
else
}printf(
"%d\n
",ub);
}int
main()
sort(e,e+2*m,cmp);
solve();
}return0;
}
Hihocoder 1128 二分 二分查詢
時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述nettle最近在玩 艦 因此nettle收集了很多很多的船 這裡我們假設nettle氪了很多金,開了無數個船位 去除掉重複的船之後,還剩下n 1 n 1,000,000 種不同的船。每一艘船有乙個稀有值,任意兩艘船的稀有...
hihoCoder 1128 二分 二分查詢
原題位址 一開始沒搞懂題目是想幹什麼,於是寫了乙個掃一遍的 a了,如下 1 include 2 3using namespace std 45 intmain 18 printf d n found lt 1 1 19 20return0 21 做到後面一題的時候才明白題目是什麼意思,如下 1 in...
Java 二分搜尋 二分查詢
對陣列元素進行逐個查詢顯然是費時費力的工作,我們可以使用一些方法快速地搜尋出陣列中元素的指定位置.接下來我們介紹一種方法 二分搜尋法 二分搜尋法充分利用了元素間的次序關係.基本思想 將n元素分成個數大致相同的涼拌,取arr n 2 與欲查詢的x做比較,如果 下面將採用兩種方式 遞迴 非遞迴 來展示二...