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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JZOJ 5477. 【NOIP2017提高组正式赛】宝藏

發布時間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JZOJ 5477. 【NOIP2017提高组正式赛】宝藏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Description

參與考古挖掘的小明得到了一份藏寶圖,藏寶圖上標出了 n 個深埋在地下的寶藏屋,也給出了這 n 個寶藏屋之間可供開發的 m 條道路和它們的長度。小明決心親自前往挖掘所有寶藏屋中的寶藏。但是,每個寶藏屋距離地面都很遠,也就是說,從地面打通一條到某個寶藏屋的道路是很困難的,而開發寶藏屋之間的道路則相對容易很多。小明的決心感動了考古挖掘的贊助商,贊助商決定免費贊助他打通一條從地面到某個寶藏屋的通道,通往哪個寶藏屋則由小明來決定。在此基礎上,小明還需要考慮如何開鑿寶藏屋之間的道路。已經開鑿出的道路可以任意通行不消耗代價。每開鑿出一條新道路,小明就會與考古隊一起挖掘出由該條道路所能到達的寶藏屋的寶藏。另外,小明不想開發無用道路,即兩個已經被挖掘過的寶藏屋之間的道路無需再開發。新開發一條道路的代價是:這條道路的長度 × 從贊助商幫你打通的寶藏屋到這條道路起點的寶藏屋所經過的寶藏屋的數量(包括贊助商幫你打通的寶藏屋和這條道路起點的寶藏屋)。請你編寫程序為小明選定由贊助商打通的寶藏屋和之后開鑿的道路,使得工程總代價最小,并輸出這個最小值。

Input

第一行兩個用空格分離的正整數 n 和 m,代表寶藏屋的個數和道路數。
接下來 m 行,每行三個用空格分離的正整數,分別是由一條道路連接的兩個寶藏屋的編號(編號為 1~n),和這條道路的長度 v。

Output

輸出共一行,一個正整數,表示最小的總代價。

Sample Input

【輸入樣例 1】

4 5
1 2 1
1 3 3
1 4 1
2 3 4
3 4 1

【樣例輸入 2】

4 5
1 2 1
1 3 3
1 4 1
2 3 4
3 4 2

Sample Output

【輸出樣例 1】

4

【輸入輸出樣例 1 說明】

小明選定讓贊助商打通了 1 號寶藏屋。小明開發了道路 1->2,挖掘了 2 號寶藏。開發了道路 1->4,挖掘了 4 號寶藏。還開發了道路 4->3,挖掘了 3 號寶藏。工程總代價為:1 × 1 + 1 × 1 + 1 × 2 = 4
(1->2) (1->4) (4->3)

【樣例輸出 2】

5

【輸入輸出樣例 2 說明】

小明選定讓贊助商打通了 1 號寶藏屋。小明開發了道路 1->2,挖掘了 2 號寶藏。開發了道路 1->3,挖掘了 3 號寶藏。還開發了道路 1->4,挖掘了 4 號寶藏。工程總代價為:1 × 1 + 3 × 1 + 1 × 1 = 5
(1->2) (1->3) (1->4)

Data Constraint

對于 20%的數據:
保證輸入是一棵樹,1≤n≤8,v≤5000 且所有的 v 都相等。
對于 40%的數據:
1≤n≤8,0≤m≤1000,v≤5000 且所有的 v 都相等。
對于 70%的數據:
1≤n≤8,0≤m≤1000,v≤ 5000
對于 100%的數據:
1≤n≤12,0≤m≤1000,v≤ 500000

Solution

  • 這道題有兩個解法:搜索剪枝(再加估值函數等神奇優化),狀壓DP。

  • 速度似乎搜索更快,但狀壓DP的時間復雜度更穩定。

  • 看到 n12 ,自然就想到狀壓DP。

  • F[i][s] 表示最大深度為 i 、當前選了的點的集合為 s 的最小總代價。

  • 再設 c[s][s1] 表示當前選了集合 s ,用這個集合連出去,直到選完補集 s1 的所選的邊的最小值。

  • 由于直接求不好求,而且 n 奇小,可以盡情地預處理。

  • h[s][i] 表示當前選了集合為 s 的點,要連接 i 號點的邊的最小值。

  • 那么容易處理出 h 數組,則就可以簡單地處理出 c 數組了。

  • 為了更快地枚舉集合 s 的子集,我們還可以設一個 g[s][i] 表示其第 i 個補集。

  • 同樣的,g 也能快速地預處理出來。那么我們就可以愉快地DP了。

  • 由于深度小的更優解會在之前就計算出來,這樣做的正確性顯然。

  • 注意處理 c 數組時,若兩集合不能連接(其中一個元素不能連接即說明整體連不了),

  • 要將值賦為最大值,不然會將答案算小。

  • 時間復雜度 O(22n?n) ,輕松過掉。

Code

#include<cstdio> #include<cstring> #include<cctype> using namespace std; const int N=13,M=(1<<N-1)+5,inf=1e9; int a[N][N],p[N],f[N][M],g[M][M],h[M][N],c[M][M]; inline int read() {int X=0,w=0; char ch=0;while(!isdigit(ch)) {w|=ch=='-';ch=getchar();}while(isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar();return w?-X:X; } inline int min(int x,int y) {return x<y?x:y; } int main() {int n=read(),m=read();memset(a,60,sizeof(a));for(int i=1;i<=m;i++){int x=read(),y=read(),z=read();if(z<a[x][y]) a[y][x]=a[x][y]=z;}for(int i=p[0]=1;i<N;i++) p[i]=p[i-1]<<1;for(int i=0;i<p[n];i++)for(int j=1;j<p[n];j++)if(!(i&j)) g[i][++g[i][0]]=j;memset(h,60,sizeof(h));for(int i=1;i<p[n];i++)for(int j=1;j<=n;j++)if(!(i&p[j-1]))for(int k=1;k<=n;k++)if(i&p[k-1]) h[i][j]=min(h[i][j],a[k][j]);for(int i=1;i<p[n];i++)for(int j=1;j<=g[i][0];j++)for(int k=1;k<=n;k++)if(p[k-1]&g[i][j])if(h[i][k]<inf) c[i][g[i][j]]+=h[i][k]; else{c[i][g[i][j]]=inf;break;}memset(f,60,sizeof(f));for(int i=1;i<=n;i++) f[0][p[i-1]]=0;for(int i=0;i<n;i++)for(int j=0;j<p[n];j++)for(int k=1;k<=g[j][0];k++)if(f[i][j]<inf && c[j][g[j][k]]<inf)f[i+1][j|g[j][k]]=min(f[i+1][j|g[j][k]],f[i][j]+c[j][g[j][k]]*(i+1));int ans=inf;for(int i=0;i<=n;i++) ans=min(ans,f[i][p[n]-1]);printf("%d",ans);return 0; }

總結

以上是生活随笔為你收集整理的JZOJ 5477. 【NOIP2017提高组正式赛】宝藏的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 免费成人美女在线观看. | 毛片看 | 免费观看理伦片在线播放视频软件 | 麻豆国产av超爽剧情系列 | 美女毛片 | 午夜一区二区三区 | 日本不卡中文字幕 | 欧洲亚洲综合 | 亚洲爱爱片 | av天天看 | 亚洲女优在线观看 | www.sesehu| 伦理片av | 国产精品第1页 | 日韩精品你懂的 | 亚洲成年人在线 | 五月婷婷导航 | 三年中文在线观看中文版 | 亚洲二区精品 | 超碰123 | 日韩欧美中文在线 | 亚洲视频精品在线 | 国产va亚洲va在线va | 日韩视频免费播放 | 成熟女人毛片www免费版在线 | 免费视频a | 91精品国产综合久久福利软件 | 能免费看黄色的网站 | 在线观看一区视频 | 国产在线拍揄自揄拍无码 | 奇米视频在线观看 | 黄色va| 性日本xxx | 免费污污视频在线观看 | 熟女少妇在线视频播放 | 久久免费国产 | 在线观看免费国产视频 | 美日韩丰满少妇在线观看 | 秋霞在线一区二区 | 亚洲精品视频在线观看视频 | 午夜久久剧场 | 欧美1314| 亚洲国产一区二区三区 | 一区二区伦理 | 国产高清免费 | 妺妺窝人体色www婷婷 | 日韩欧美三级在线观看 | 日韩黄色免费网站 | 久久成人综合 | 中国国语农村大片 | 一区二区三区欧美视频 | 成人区人妻精品一区二区不卡视频 | 91视频一区二区 | 献给魔王伊伏洛基亚吧动漫在线观看 | 亚洲色偷偷综合亚洲av伊人 | 国产伦精品一区二区三区高清版 | 精品热 | 亚洲在线成人 | 99re国产在线 | 一级片成人| 91九色论坛| 无码免费一区二区三区 | 成人精品网 | 91在线免费看 | 国产乱淫av麻豆国产免费 | 亚洲天堂影视 | 91精品国自产在线观看 | 91在线资源| 国产一级免费av | 久久久久色 | 日韩插 | 可以在线观看的av网站 | 久久国内偷拍 | 欧美日韩国产不卡 | 国产免费av一区二区三区 | 美国一区二区三区 | 少妇精品亚洲一区二区成人 | 国产酒店自拍 | 岛国精品资源网站 | 亚洲AV无码乱码国产精品牛牛 | 色狠狠操| 国产无遮挡又黄又爽又色 | 看欧美一级片 | 天堂中文字幕在线观看 | 色香五月 | 欧美成人手机视频 | av男人在线| 午夜精品久久久久久99热 | 国产suv精品一区二区60 | 久久网中文字幕 | 亚洲精品视频一二三区 | 67194少妇在线观看 | 综合视频一区二区 | 一区二区三区在线观看视频 | 国产成人精品999在线观看 | 黑丝一区二区三区 | 亚洲一区免费视频 | 激情福利网 | 香蕉视频亚洲 |