国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

USACO18DEC Fine Dining G

這篇具有很好參考價值的文章主要介紹了USACO18DEC Fine Dining G。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

P5122 [USACO18DEC] Fine Dining G

題目大意

有一個由 n n n個點 m m m條邊構(gòu)成的無向連通圖,這 n n n個點的編號為 1 1 1 n n n。前 n ? 1 n-1 n?1個點上都有一頭奶牛,這些奶牛都要前往 n n n號點。第 i i i條邊連接 a i a_i ai? b i b_i bi?,經(jīng)過需要時間 t i t_i ti?。

k k k個干草捆分布在這些點中,第 i i i個干草捆的美味值為 y i y_i yi?。每頭奶牛都希望能夠在某一處干草捆處停留并吃草,但奶牛只會在經(jīng)過這個干草捆使她回牛棚的時間增加不超過這個干草捆的美味值時這樣做。一頭奶牛只會在一處干草捆處停留并吃草。

輸出有 n ? 1 n-1 n?1行。如果第 i i i個點的奶牛可以在回牛棚的路上會前往某一個干草捆并且在此進食,則第 i i i行輸出 1 1 1;否則,輸出 0 0 0。

可能有多個干草捆在同一個點。

2 ≤ n ≤ 5 × 1 0 4 , 1 ≤ m ≤ 1 0 5 2\leq n\leq5\times 10^4,1\leq m\leq 10^5 2n5×104,1m105


題解

dijkstra \text{dijkstra} dijkstra算出第 n n n個點到各個點的距離,設到第 i i i個點的距離為 d i s i dis_i disi?。

將所有有干草捆的點 x x x作為第二次 dijkstra \text{dijkstra} dijkstra的起點,起始值設為 d i s x ? y x dis_x-y_x disx??yx?,意為從點 x x x到點 n n n的距離減去這個干草捆的美味值。用這些點為起點做一次 dijkstra \text{dijkstra} dijkstra,到各個點的距離記為 t d i td_i tdi?。

最后,對于每個 1 ≤ i < n 1\leq i<n 1i<n,如果 t d i ≤ d i s i td_i\leq dis_i tdi?disi?,則可以在一個干草捆停留,否則不行。

時間復雜度為 O ( ( n + m ) log ? n ) O((n+m)\log n) O((n+m)logn)。文章來源地址http://www.zghlxwxcb.cn/news/detail-665709.html

code

#include<bits/stdc++.h>
using namespace std;
int n,m,k,x,y,z,tot=0,d[200005],l[200005],r[200005],w[200005];
int vs[100005],dis[100005],td[100005];
struct node{
	int id,x;
	bool operator<(const node ax)const{
		return x>ax.x;
	}
};
priority_queue<node>q;
void add(int xx,int yy,int zz){
	l[++tot]=r[xx];d[tot]=yy;r[xx]=tot;w[tot]=zz;
}
void dd1(){
	for(int i=1;i<=n;i++){
		vs[i]=0;dis[i]=2e9;
	}
	dis[n]=0;
	q.push((node){n,0});
	while(!q.empty()){
		int u=q.top().id;q.pop();
		if(vs[u]) continue;
		vs[u]=1;
		for(int i=r[u];i;i=l[i]){
			if(dis[d[i]]>dis[u]+w[i]){
				dis[d[i]]=dis[u]+w[i];
				q.push((node){d[i],dis[d[i]]});
			}
		}
	}
}
void dd2(){
	for(int i=1;i<=n;i++){
		vs[i]=0;
		if(td[i]<2e9) q.push((node){i,td[i]});
	}
	while(!q.empty()){
		int u=q.top().id;q.pop();
		if(vs[u]) continue;
		vs[u]=1;
		for(int i=r[u];i;i=l[i]){
			if(td[d[i]]>td[u]+w[i]){
				td[d[i]]=td[u]+w[i];
				q.push((node){d[i],td[d[i]]});
			}
		}
	}
}
int main()
{
	scanf("%d%d%d",&n,&m,&k);
	for(int i=1;i<=m;i++){
		scanf("%d%d%d",&x,&y,&z);
		add(x,y,z);add(y,x,z);
	}
	dd1();
	for(int i=1;i<=n;i++) td[i]=2e9;
	for(int i=1;i<=k;i++){
		scanf("%d%d",&x,&z);
		td[x]=min(td[x],dis[x]-z);
	}
	dd2();
	for(int i=1;i<n;i++){
		if(td[i]<=dis[i]) printf("1\n");
		else printf("0\n");
	}
	return 0;
}

到了這里,關(guān)于USACO18DEC Fine Dining G的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • [USACO07DEC] Sightseeing Cows G(分數(shù)規(guī)劃+負權(quán)回路判定)

    [USACO07DEC] Sightseeing Cows G(分數(shù)規(guī)劃+負權(quán)回路判定)

    [USACO07DEC] Sightseeing Cows G - 洛谷 題目大意: 給出一張n點m邊的帶點權(quán)帶邊權(quán)的有向圖 求一個回路使得路上點權(quán)和除以邊權(quán)和最大(最優(yōu)比率回路) 首先一定仔細讀題,是回路不是路徑 由于回路上所有點權(quán)只能獲取一次,但邊權(quán)會獲取很多次,所以最優(yōu)解一定是簡單回路(無

    2024年02月10日
    瀏覽(25)
  • P2921 [USACO08DEC] Trick or Treat on the Farm G

    Portal. 每只奶牛的終止條件是到達自己已經(jīng)訪問過的點,換言之,就是該奶牛的路線構(gòu)成了一個環(huán)。并且,每一個房間通往的房間都是固定且唯一的,所以說只要進入的這個房間在環(huán)上,這個房間之后會獲得的糖果數(shù)已經(jīng)固定了。 我們開一個數(shù)組 s 記錄當前位置的糖果數(shù)量,

    2024年02月06日
    瀏覽(17)
  • [USACO23JAN] Lights Off G題解

    洛谷[USACO23JAN] Lights Off G 題目大意 貝西想要睡覺,但是農(nóng)場的燈一直開著,影響它睡覺。 貝西有兩個長度為 n n n 的 01 01 01 字符串,分別表示 n n n 盞燈的序列和開關(guān)的序列。其中,表示燈的序列, 0 0 0 表示關(guān)燈, 1 1 1 表示開燈;表示開關(guān)的序列, 1 1 1 表示可操控的, 0 0

    2024年02月13日
    瀏覽(16)
  • P2730 [USACO3.2] 魔板 Magic Squares 題解

    夜深人靜的夜晚,我開了這道題??雌饋?,完成它是一件輕而易舉的事。我想了想,打開Dev-C++,開始寫代碼。 然而,那時的我還不知道,我踏入了深淵...... 咳咳,中二病犯了,前面的文字請忽略。 題目要求最少操作次數(shù),顯然,我們要使用BFS來求解。 對于每個節(jié)點,接下

    2024年02月13日
    瀏覽(19)
  • 【題解】JZOJ6578 / 洛谷P5201[USACO2019Jan]Shortcut G

    洛谷 P5201 [USACO19JAN] Shortcut G 在一個帶權(quán)無向連通圖上,每個點有 a i a_i a i ? 只奶牛,奶牛會走最短路徑到 1 1 1 ,如果有多條路徑,選擇字典序最小的,定義移動總時間為所有奶牛走到 1 1 1 的時間之和。你可以修建一條從任意一點到 1 1 1 的邊權(quán)為 t t t 的邊,奶牛只有在平時

    2024年02月11日
    瀏覽(14)
  • [USACO11MAR] Brownie Slicing G題解(二分+二維前綴和+矩陣分割)

    題目地址 P3017 [USACO11MAR] Brownie Slicing G 二分最大化最小值 切割思路: 一行一行進行切割,如果這一行可以切割出b塊大于等于mid的塊,就開始切割下一行 如果無法切割出b塊,就把正在切割的行與下一行拼起來一起切割 最后通過能切割出b塊的水平塊塊夠不夠a條來判斷m是否合

    2024年02月07日
    瀏覽(20)
  • Ctfshow web入門 命令執(zhí)行RCE篇 web29-web77 與 web118-web124 詳細題解 持續(xù)更新中(預計8.18完成)~

    Ctfshow web入門 命令執(zhí)行RCE篇 web29-web77 與 web118-web124 詳細題解 持續(xù)更新中(預計8.18完成)~

    pregmatch 是正則匹配函數(shù),匹配是否包含flag, if(!preg_match(\\\"/flag/i\\\", $c)) , /i 忽略大小寫 可以利用system來間接執(zhí)行系統(tǒng)命令 flag采用 f* 繞過,或者 mv fl?g.php 1.txt 修改文件名,或者 cat 反引號ls反引號 linux通配符:https://www.cnblogs.com/ysuwangqiang/p/11364173.html 多了對system和php的過濾 用

    2024年02月12日
    瀏覽(118)
  • openssl3.2 - 官方demo學習 - cms - cms_dec.c

    對用證書加密的CMS數(shù)據(jù)進行解密(也需要加密時用的那個證書)

    2024年01月20日
    瀏覽(53)
  • ArmSoM-RK3588編解碼之mpp解碼demo解析:mpi_dec_test

    ArmSoM-RK3588編解碼之mpp解碼demo解析:mpi_dec_test

    [RK3588從入門到精通] 專欄總目錄 mpi_dec_test 是rockchip官方解碼 demo 本篇文章進行mpi_dec_test 的代碼解析,解碼流程解析 硬件環(huán)境: ArmSoM-W3 RK3588開發(fā)板 軟件版本: OS:ArmSoM-W3 Debian11 mpp_create :獲取 MppCtx 實例以及 MppApi 結(jié)構(gòu)體 mpp_init: 初始化MppCtx 的編解碼類型與格式 mpi-control:

    2024年02月04日
    瀏覽(52)
  • [Usaco2009 Oct]Heat Wave 熱浪

    題目描述 有一個 n個點 m 條邊的無向圖,請求出從 s 到 t 的最短路長度。 輸入格式第一行四個正整數(shù) n, m, s, t。 接下來 m 行,每行三個正整數(shù) u, v, w,表示一條連接 u, v 長為 w 的邊。 1≤n≤2500,1≤m≤6200,1≤w≤1000。 輸出格式 輸出一行一個整數(shù),表示答案。 樣例輸入 樣例

    2024年02月14日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包