日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【HDU - 6290】 奢侈的旅行 (对题目预处理 + DIjkstra最短路)

發布時間:2023/12/10 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【HDU - 6290】 奢侈的旅行 (对题目预处理 + DIjkstra最短路) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題干:

高玩小Q不僅喜歡玩尋寶游戲,還喜歡一款升級養成類游戲。在這個游戲的世界地圖中一共有nn個城鎮,編號依次為11到nn。?

這些城鎮之間有mm條單向道路,第ii?條單項道路包含四個參數ui,vi,ai,biui,vi,ai,bi,表示一條從uiui號城鎮出發,在vivi號城鎮結束的單向道路,因為是單向道路,這不意味著小Q可以從vivi沿著該道路走到uiui。小Q的初始等級levellevel為11,每當試圖經過一條道路時,需要支付cost=log2level+ailevelcost=log2?level+ailevel點積分,并且經過該道路后,小Q的等級會提升aiai級,到達level+ailevel+ai級。但是每條道路都會在一定意義上歧視低消費玩家,準確地說,如果該次所需積分cost<bicost<bi,那么小Q不能經過該次道路,也不能提升相應的等級。?

注意:本游戲中等級為正整數,但是積分可以是任意實數。?

小Q位于11號城鎮,等級為11,現在為了做任務要到nn號城鎮去。這將會是一次奢侈的旅行,請寫一個程序幫助小Q找到需要支付的總積分最少的一條路線,或判斷這是不可能的。

Input

第一行包含一個正整數T(1≤T≤30)T(1≤T≤30),表示測試數據的組數。?

每組數據第一行包含兩個整數n,m(2≤n≤100000,1≤m≤200000)n,m(2≤n≤100000,1≤m≤200000),表示城鎮數和道路數。

接下來mm行,每行四個整數ui,vi,ai,bi(1≤ui,vi≤n,ui≠vi,0≤ai≤109,0≤bi≤60)ui,vi,ai,bi(1≤ui,vi≤n,ui≠vi,0≤ai≤109,0≤bi≤60),分別表示每條單向道路。

Output

對于每組數據,輸出一行一個整數,即最少所需的總積分的整數部分,如:4.99994.9999輸出44,1.01.0輸出11。若不存在合法路線請輸出?1?1。

Sample Input

1 3 3 1 2 3 2 2 3 1 6 1 3 5 0

Sample Output

2

解題報告:

? ? ? 具體的題目的分析 ?博客?? 。總之就是把公式化簡一下(即考慮從1號點開始到各個點的cost)發現根本用不到level而是只跟ai有關,所以只需要dis數組中是ai的和的最小值即可,最后答案中在取個log2,就是答案了。判斷b的時候(即是否能走這條線)剛開始理解錯了,理解成了跟level有關,但是其實沒關系,只跟ai有關,而ai更開始也理解錯了,,不是從起點到該點的level和,而是這條邊自帶的權值!總之還是沒讀好題。。而且判斷b的時候的cost也是該邊的cost而非從起點過來的cost!通過公式化簡(指數函數的運算)就很容易求出該邊的cost和bi之間的關系來進行continue;

剛開始還覺得不同路徑走的時候level也不一樣啊比如我都是走到5號點,一個是2號(比如這個點level是3)過來的,一個是4號點過來的(可能這個點的level是2),所以相當于有很多權值的限制啊!但是比賽的時候就得反過來想啊,,這么麻煩的話怎么可能有ac的呢?所以肯定有化簡的方法,,比如從公式入手,,發現這個對數函數剛好可以都約掉中間項所以只和終點有關,和路徑無關。還是要多做題多總結啊!給公式的題往往可以公式入手!

AC代碼:

#include<bits/stdc++.h> #define ll long long using namespace std; const int MAXN = 100000 + 5; const int MAXE = 200000 + 5;int n,m; int cnt; int head[MAXN] ; ll dis[MAXN]; bool vis[MAXN]; struct Edge {int to;ll a;ll b;int ne; } e[MAXE]; struct Point {int pos;ll cost;Point(){}Point(int pos,ll cost):pos(pos),cost(cost){}bool operator<(const Point b)const {return cost > b.cost;} }; void add(int u,int v,ll a,ll b) {e[cnt].to = v;e[cnt].a = a;e[cnt].b = b;e[cnt].ne = head[u];head[u] = cnt++; } void Dijkstra(int st) {priority_queue<Point > pq;dis[st] = 1;pq.push(Point(st,1));while(!pq.empty()) {Point cur = pq.top();pq.pop();if(vis[cur.pos] == 1) continue;vis[cur.pos] = 1;for(int i = head[cur.pos]; i!=-1; i=e[i].ne) {if(1 + e[i].a/cur.cost < pow(2,e[i].b)) continue;//這里的pow其實可以找個數組預處理一下 if(dis[cur.pos] + e[i].a < dis[e[i].to] ) {dis[e[i].to] = cur.cost+ e[i].a;//把dis[cur.pos]換成cur.cost行嗎? pq.push(Point(e[i].to,dis[e[i].to])); }}} } int main() {int t;cin>>t;//頂點1~nint u,v;ll a,b;while(t--) {cnt = 0;memset(vis,0,sizeof(vis));memset(head,-1,sizeof(head));//別想當然寫0scanf("%d%d",&n,&m); for(int i = 1; i<=n; i++) dis[i] = LLONG_MAX;//別把這一步放在讀入n、m前面。。。 while(m--) {scanf("%d%d%lld%lld",&u,&v,&a,&b);add(u,v,a,b);}Dijkstra(1); // printf("%lld\n\n\n",dis[n]); printf("%.0f\n",dis[n] == LLONG_MAX ? -1 : floor(log2(dis[n])));}return 0 ; }

總結:

? ?別把初始化放在讀入m、n前面。。

Dijkstra 中//把dis[cur.pos]換成cur.cost行嗎? ? ?是可以的,但是還是寫前者比較好,因為Point結構體中這個變量其實就是儲存一下為了排序的,不是為了用的。。。

總結

以上是生活随笔為你收集整理的【HDU - 6290】 奢侈的旅行 (对题目预处理 + DIjkstra最短路)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 奇米综合网 | 毛片日韩 | 国产又粗又大又长 | 爽妇综合网 | 亚洲精品高清视频 | 五月婷婷综合在线 | 91精彩视频在线观看 | 日韩和欧美一区二区 | 国产福利观看 | 日韩一区二区免费在线观看 | 蜜桃臀aⅴ精品一区二区三区 | 婷婷看片 | 亚洲av无码一区二区三区人妖 | 久久久一区二区三区 | 少妇精品久久久久www | 欧美在线观看视频一区 | 日韩欧美在线视频观看 | 亚洲综合激情在线 | 欧美日韩中文字幕一区 | 波多野结衣一区二区三区高清 | 亚洲综合在线成人 | 高跟鞋肉丝交足91 | 在线中文字日产幕 | 激情黄色小视频 | 久草视频在线播放 | 人体私拍套图hdxxxx | 国产高清一二三区 | 天天宗合网 | 精品福利一区 | 亚洲 国产 日韩 欧美 | 日韩精品免费在线视频 | 国产超碰97 | 男女黄色又爽大片 | 欧美日韩在线播放三区四区 | 国产一区二区不卡 | 中文av字幕 | 免费一级a毛片夜夜看 | 国产毛片儿| 中文字幕资源网 | 浓精喷进老师黑色丝袜在线观看 | 国产人妖在线观看 | 动漫av网站 | 日韩成人在线免费视频 | 雷电将军和丘丘人繁衍后代视频 | 成人久久av | 专干中国老太婆hd | 台湾男男gay做爽爽的视频 | 色哟哟视频在线观看 | 女同调教视频 | 国产精品伦一区二区三级古装电影 | 一本久久精品一区二区 | 国产精品色 | 无码国产精品一区二区免费式直播 | 男人的天堂视频网站 | 色悠悠av | 国产精品国产三级国产专播精品人 | 激情开心站 | 日韩欧美视频一区二区三区 | 农村少妇无套内谢粗又长 | 日本欧美在线观看 | 好紧好爽再浪一点视频 | 伊人精品国产 | 天堂网视频在线 | 精品欧美在线观看 | 一级做a爰片久久毛片 | 国产18p| 特级西西444www大精品视频 | 亚洲一区二区高清 | 四虎1515hh.com| 操老女人视频 | 日韩成人在线观看 | 乳揉みま痴汉4在线播放 | 最新福利在线 | 国产一区二区三区视频免费在线观看 | 国产综合久久久 | 日韩av不卡在线观看 | 啪啪在线视频 | 超碰人人人人 | 亚洲日本国产精品 | 欧美成人精品欧美一级私黄 | 女人裸体无遮挡 | 久久精品网址 | 国产精品理论片 | 蜜芽在线视频 | 91成人动漫 | 人妻熟女一区二区aⅴ水野 91在线观看视频 | 色婷婷在线观看视频 | av免费看在线 | 波多野结衣精品 | 鲁丝片一区二区三区 | 免费大片黄在线观看视频网站 | 有机z中国电影免费观看 | 在线婷婷| 天天亚洲 | 国产高清亚洲 | 婷婷影音 | 简单av在线 | 亚洲欧美日韩国产一区二区三区 | 三级久久久 |