expedition
#include
#include
#include
#include
using namespace std;
const
int max =
10001
;int n, l, p, sd, sf;
struct node*/}
;bool cmp1
(node a, node b)
struct cmp2};
node s[max]
;priority_queue
, cmp2>q;
intmain()
scanf
("%d%d"
,&sd,
&sf)
;sort
(s, s+n, cmp1)
;//end是車能夠到達距離目的地最近的距離,cnt是最大可以行進的距離,k標記下乙個遍歷的加油站編號,ans是停止次數
int end = sd-sf, cnt = sf, k =
0, ans =
0, i;
while(1
)}//如果沒有加油站可以加油且還沒有到達目的地
if(q.
empty()
)break
;//選取可以到達的加油站中油量最多的乙個
cnt +
= q.
top(
).fuel;
end = end-q.
top(
).fuel;
q.pop();
ans++;}
//cout << cnt << endl;
if(cnt>=sd)
printf
("%d\n"
, ans)
;else
printf
("-1\n");
}return0;
}
食物鏈
**:
#include
#include
using namespace std;
const
int max =
1e6+5;
int n, k, d, x, y;
int pre[max]
;int rank[max];/*
在同乙個並查集中的表示型別關係同時存在,0-n代表a型別,n-2*n代表b型別,
2*n-3*n代表c型別
*/void
init
(int n)
}int
findroot
(int x)
//路徑壓縮
int j=x, i;
while
(pre[j]
!=r)
return r;
}void
join
(int x,
int y)
else
}bool same
(int x,
int y)
intmain()
if(d==1)
//x和y屬於同一類的資訊
}else
//x吃y的資訊}}
printf
("%d\n"
, cnt)
;return0;
}
學習筆記第二章挑戰程式設計競賽2 1
挑戰程式設計競賽page.30 思路 從a0開始按順序決定每個數字加還是不加,在全部n個數都決定後再判斷它們的和是不是為k即可。因為狀態數是2n,所以複雜度為o 2n int n,a maxn k bool dfs int dep,int sum void solve 深度優先搜尋從最開始的狀態出發...
第二章 資料結構 二
知識點 trie樹 並查集,堆的操作 高效地儲存和查詢字串集合的資料結構 const int n 100010 int son n 26 cnt n idx 插入 void insert char str cnt p 以這個點結尾的字元數 查詢 intquery char str return cn...
資料結構 第二章總結
線性表是由n 0 個資料元素組成的有限序列。我們學習了線性表上定義的基本運算 有構造空表 initlist l 求表長 listlength l 取結點 getnode l i 查詢 locatenode l x 插入 insertlist l x,i 刪除 delete l i 還學習了順序表 單...