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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Tyvj 1176 火焰巨魔的惆怅

發布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tyvj 1176 火焰巨魔的惆怅 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Tyvj 1176 火焰巨魔的惆悵

背景

TYVJ2月月賽第一道

巨魔家族在某天受到了其他種族的屠殺,作為一個英雄,他主動擔任了斷后的任務,但是,在巨魔家族整體轉移過后,火焰巨魔卻被困住了,他出逃的方式也只有召喚小火人這一種方式,所以請你幫助他。

描述

我們把火焰巨魔所處的位置抽象成一張有向圖,他的位置就是1號點位,目的就是走到第N號點位,因為小火人會裂嘛,所以我們可以看做每走一條路,小火人的數量都會加倍,而每條路上的敵人有多強,會消耗多少小火人c[i]也會給出(c[i]為負值);當然有些時候路上也會遇到魔法泉之類的東西,這時候就可以補充一些小火人咯(c[i]為正值)。如果小火人死光了,那么火焰巨魔也就可以看做是掛了,畢竟智力型英雄就是脆啊。希望你幫助火焰巨魔用最少的初始小火人逃離這次屠殺。

輸入格式

第一行兩個數N(<=50000),M(<=100000)表示點位數與邊數。
一下M行,每行三個數a,b,c表示a,b兩點間的邊權是c(|c|<=10000)

輸出格式

輸出僅一個整數,表示最小初始小火人數。

測試樣例1

輸入

5 4?
1 2 -3?
1 3 -6?
3 4 1?
4 5 -9

輸出

4

備注

初始小火人為4個,到3點剩2個,到4變成5個,到5剩1個。
所以初始最少為4,更少的小火人是不足以走到5號點位的。from?wsd??TYVJ月賽出題組 思路: 1、由于要求的是從起點到達終點最少出發的小火人,所以是一個路徑尋找問題,所以要用到最短路 2、由于小火人最少是1,所以到終點后小火人數量一定是1,否則就必須要在起點派出更多小火人 3、在最短路中,目的是求長度最小,放入隊列的必要條件是可以把該點長度變小,所以此題中放入的條件是可以把所需要的火人數量變小 4、從終點開始,做spfa,則由用來松弛的點走到當前節點的最小火人數設為x,則2x + g[now][i] = d[now],可知x可能不為正整數,若為浮點數則向上取整,若x≤0,則將x設為1,然后去比較d[i]進行松弛,最后d[1]便是正確答案 #include<iostream> #include<cstdio> #include<string> #include<cstring> #include<algorithm> #include<vector> #include<queue> using namespace std; const int maxn = 100005; const int maxint = ~0U>>1; struct edge{int v;int w; }; int n,m,vis[maxn],d[maxn]; vector<edge> g[maxn]; void input(){cin>>n>>m;int u,v,w;edge tmp;for(int i = 1;i <= m;i++){scanf("%d%d%d",&u,&v,&w);tmp.v = u;tmp.w = w;g[v].push_back(tmp);}for(int i = 1;i <= n;i++){vis[i] = 0;d[i] = maxint;} } void spfa(){queue<int> q;q.push(n);d[n] = 1;vis[n] = 1;int now,to,add;while(!q.empty()){now = q.front();q.pop();vis[now] = 0;for(int i = 0;i < g[now].size();i++){to = g[now][i].v;add = (d[now] - g[now][i].w) >> 1;if((d[now]-g[now][i].w) & 1) add++;if(add <= 0) add = 1;if(d[to] > add){d[to] = add;if(!vis[to]){vis[to] = 1;q.push(to);}}}} }int main(){input();spfa();cout<<d[1];return 0; }

?

轉載于:https://www.cnblogs.com/hyfer/p/5811828.html

總結

以上是生活随笔為你收集整理的Tyvj 1176 火焰巨魔的惆怅的全部內容,希望文章能夠幫你解決所遇到的問題。

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