這道題跟廣搜好像沒有任何聯絡,但是就是bfs,或許這是個列舉,但是資料量n是10的6次方,所以只能用bfs來寫,怎麼寫呢?bfs與dfs的不同在於,dfs一條路走到黑,而bfs就是擴充套件,但是擴充套件什麼呢,這就是這道題的核心之一,思考一下,我們不知道最少的代價是多少,那好了,就擴充套件代價好了,從代價0開始,再到代價1......直到某次執行可以使這組數成立,而且這裡還有個難點,就是每個數都是可以變化的,所以變化哪些就是關鍵,這需要比較強的思維構建與**實踐能力。
**如下:
#include#include#include#include#include#includeusing namespace std;
int n,ans=1000000010;
int a[1000010],cost[1000010];
int q[1000020],head=0,tail=0;
void inque(int aa,int now)
void jump(int aa)
if(a[0]+1>=n) cout這道題與常規bfs的不同在於,常規bfs由中心向兩邊或四周擴充套件,而此題同之前做過的一道《雷射通訊》,一次擴充套件,就把這條路上能擴充套件的點都擴充套件入隊,符合答案要求就比較結果。
值得一提的是,這道題的模型非常特殊,剛開始完全看不出是bfs,所以就讓我想到了近幾年來noip與haoi的共同趨勢,就是越來越傾向於考察oier們的題目建模能力而不是**實踐能力,建立了適當的模型,**其實很好實踐,就如這題四五十行便可a掉,所以提高建模能力是必須的。
磁帶的最優儲存 貪心演算法
題目 磁帶的最優儲存 假定有 n個程式需存放在長度為 l的磁帶上,每乙個程式 i有長度l i 1 i n,l 1 l 2 l n l.假定無論什麼時候,檢索該帶上的某個程式時,帶的位置都處於始端。因此,若程式按 i i 1 i 2 i n 存放時,則檢索時間 i j 的時間 t j 為l i 1 l...
磁帶未來將成儲存主力之一?
提起磁帶,人們可能只會想到那些塵封在抽屜裡只能存下十幾首歌的老古董。但你可能不知道的是,磁帶也能在儲存領域發揮大作用,甚至老樹開新花,在未來成為儲存主力之一。對於磁帶儲存來說,更大的意義在於那些需要大量資料吞吐量的地方,例如計畫中的下代巨型無線電望遠鏡 平方千公尺陣 square kilometre...
儲存器 儲存器容量擴充
一 儲存晶元簡介 1 引腳 2 晶元容量 字數 字長 二 儲存器容量擴充套件 位擴充套件 給定晶元字長較短,不滿足儲存器字長要求,要用多片來擴充套件字長 字擴充套件 給定晶元字數少,用多片來擴充套件字數 字位擴充套件 從字長和字數兩個方向擴充套件 1 位擴充套件 例 用1k4位的sram晶元實現1k...