[JLOI2015]管道連接(斯坦納樹)

[Luogu3264]

原題解

多個頻道,每個頻道的關鍵點要求相互聯通

詳見代碼,非常巧妙

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
#define debug(...) fprintf(stderr,__VA_ARGS__)
#define Debug(x) cout<<#x<<"="<<x<<endl
using namespace std;
typedef long long LL;
const int INF=1e9+7;
inline LL read(){register LL x=0,f=1;register char c=getchar();while(c<48||c>57){if(c=='-')f=-1;c=getchar();}while(c>=48&&c<=57)x=(x<<3)+(x<<1)+(c&15),c=getchar();return f*x;
}const int MAXN=1005;
const int MAXM=6005;
const int MAXL=1<<10;struct Edge{int v,w,c,next;
}e[MAXM];
int first[MAXN],Ecnt=1;
inline void Add_edge(int u,int v,int w=0,int c=0){e[++Ecnt]=(Edge){v,w,c,first[u]};first[u]=Ecnt;
}struct Point{int col,id;inline friend bool operator < (Point a,Point b){return a.col<b.col;}
}a[12];int f[MAXN][MAXL],g[MAXL];
bool inq[MAXN];
int n,m,K,Cnt;
queue <int> q;inline void SPFA(int sta){while(!q.empty()){int u=q.front();q.pop();inq[u]=false;for(int i=first[u];i;i=e[i].next){int v=e[i].v,w=e[i].w;if(f[u][sta]+w<f[v][sta]){f[v][sta]=f[u][sta]+w;if(!inq[v]) inq[v]=true,q.push(v);}}}
}inline int solve(int cnt){//一共只要考慮cnt個點for(int i=1;i<(1<<cnt);i++){//這一維為基礎:狀態for(int j=1;j<=n;j++){for(int k=(i-1)&i;k;k=(k-1)&i)f[j][i]=min(f[j][i],f[j][k]+f[j][i^k]);//再枚舉j:以j為根連接狀態了j的點if(f[j][i]<f[0][0])inq[j]=1,q.push(j);}SPFA(i);//我理解為暴力散開}int res=INF;for(int i=1;i<=n;i++) res=min(res,f[i][(1<<cnt)-1]);return res;
}int main(){n=read(),m=read(),K=read();for(int i=1;i<=m;i++){int x=read(),y=read(),w=read();Add_edge(x,y,w);Add_edge(y,x,w);}for(int i=1;i<=K;i++)a[i].col=read(),a[i].id=read();sort(a+1,a+K+1);for(int i=1;i<=K;i++){if(a[i].col!=a[i-1].col) Cnt++;a[i].col=Cnt;//離散化}Cnt=1<<Cnt;memset(g,0x3f,sizeof g);for(int i=1;i<Cnt;i++){memset(f,0x3f,sizeof f);int tmp=0;for(int j=1;j<=K;j++){if((1<<(a[j].col-1))&i)f[a[j].id][1<<tmp++]=0;//i這些頻道共有tmp個點}g[i]=solve(tmp);//i這些頻道 <- 考慮這tmp個點的答案}for(int i=1;i<Cnt;i++){for(int j=(i-1)&i;j;j=(j-1)&i)g[i]=min(g[i],g[j]+g[i^j]);//再更新一次}printf("%d\n",g[Cnt-1]);
}

轉載于:https://www.cnblogs.com/lizehon/p/10584549.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394621.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394621.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394621.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于web前端的學習路線

第一階段&#xff1a; HTMLCSS:HTML進階、CSS進階、divcss布局、HTMLcss整站開發、 JavaScript基礎&#xff1a;Js基礎教程、js內置對象常用方法、常見DOM樹操作大全、ECMAscript、DOM、BOM、定時器和焦點圖。 JS基本特效&#xff1a;常見特效、例如&#xff1a;tab、導航、整頁…

值大于為此列指定的允許精度_電能質量測試精度會受到哪些因素影響?如何解決?...

關于電能質量&#xff08;也稱為PQ:Power Quality&#xff09;研究的主題已成為多方面的話題。其需要考慮的不僅僅是IEC 61000-x-x電磁兼容性標準中規定的實際電能質量現象。在實踐中&#xff0c;通常還會增加其他重要參數來保證供電的安全性&#xff0c;在某些情況下這些參數甚…

SEO博客

http://www.chinamyhosting.com/seoblog/分類: SEO 本文轉自快樂就好博客園博客&#xff0c;原文鏈接&#xff1a;http://www.cnblogs.com/happyday56/archive/2008/05/10/1191435.html&#xff0c;如需轉載請自行聯系原作者

gis計算各省河流長度_用河流和各方解釋安全漏洞

gis計算各省河流長度by Andrea Zanin由Andrea Zanin 用河流和各方解釋安全漏洞 (Security Vulnerabilities Explained with Rivers and Parties) Security vulnerabilities can be boring to learn. But you still need to learn them, unless you want some hacker to delete…

Delphi關于記錄文件的操作

http://www.cnblogs.com/railgunman/archive/2010/08/16/1801004.html Delphi關于記錄文件的操作 本例子幾個變量的說明TFileRec record   //記錄定義Day : Integer;...          //其他定義end;f : File of TFileRec;   //標準的輸入/輸出文件FilRec : TFileR…

pygame游戲開發入門例子

# *_* coding:utf-8 *_*# 開發團隊:中國軟件開發團隊# 開發人員:Administrator# 開發時間:2019/3/23 11:16# 文件名稱:pygame_demo# 開發工具:PyCharmimport sysimport pygameimport timedef main(): sizewidth,height640,480 pygame.init() screenpygame.display.set…

HTML引入媒體查詢CSS,CSS3 多媒體查詢

CSS3 多媒體查詢CSS2 多媒體類型media 規則在 CSS2 中有介紹&#xff0c;針對不同媒體類型可以定制不同的樣式規則。例如&#xff1a;你可以針對不同的媒體類型(包括顯示器、便攜設備、電視機&#xff0c;等等)設置不同的樣式規則。但是這些多媒體類型在很多設備上支持還不夠友…

Codeforces 835 F Roads in the Kingdom(樹形dp)

F. Roads in the Kingdom(樹形dp) 題意&#xff1a; 給一張n個點n條邊的無向帶權圖 定義不便利度為所有點對最短距離中的最大值 求出刪一條邊之后&#xff0c;保證圖還連通時不便利度的最小值 $n < 2e5 $\(w_i < 1e9\) 思路:樹形dp 這個圖是一個環上掛著很多顆樹&#xf…

前端websocket獲取數據后需要存本地嗎_是什么讓我放棄了restful api?了解清楚后我全面擁抱GraphQL...

GraphQL初步認識背景REST作為一種現代網絡應用非常流行的軟件架構風格&#xff0c;自從Roy Fielding博士在2000年他的博士論文中提出來到現在已經有了20年的歷史。它的簡單易用性&#xff0c;可擴展性&#xff0c;伸縮性受到廣大Web開發者的喜愛。REST 的 API 配合JSON格式的數…

列出薪金高于在部門30_我如何在五個月內將薪金提高一倍并獲得一份了不起的工作...

列出薪金高于在部門30by Sam Williams通過山姆威廉姆斯 我如何在五個月內將薪金提高一倍并獲得一份了不起的工作 (How I Doubled my Salary in Five Months and Got an Amazing Job) Six months ago I quit my job as a junior JavaScript developer and travelled around sou…

ftp服務器 vsftpd搭建和配置以及虛擬用戶的設置

tp: File Transfer Protocol應用層協議&#xff1a;tcp, 21/tcpC/S&#xff1a;Client: 程序Server: 程序數據&#xff1a;命令連接&#xff1a;文件管理類命令&#xff0c;始終在線的連接數據連接&#xff1a;數據傳輸&#xff0c;按需創建及關閉的連接數據傳輸格式&#xff1…

計算機應用基礎案例教程總結,計算機應用基礎案例教程

包杰軍等編著的《計算機應用基礎案例教程》以培養職業能力為目標&#xff0c;本著“做學合一”、“理論與實踐并行”、“知識與技能并重”的教育思想編寫。本書將實際操作案例與教學內容緊密結合&#xff0c;結構清晰、內容翔實、圖文并茂、實用性強。全書共分6章&#xff0c;第…

讓不支持h5新標簽的瀏覽器支持新標簽

把這段js加到頁面的頭部就可以了&#xff0c;創建想讓瀏覽器支持的標簽即可 //條件判斷是否支持 h5 if(window.applicationCache){alert("支持h5")}else{alert("不支持h5")document.createElement("article");document.createElement("head…

ios開發之--UIDocumentInteractionController的使用(實現更多分享服務)

最近在做項目的時候&#xff0c;碰到這樣一個需求&#xff0c;就是本地生成pdf文件&#xff0c;然后本地打開&#xff0c;經過測試發現&#xff0c;pdf文件是無法保存到相冊里面的&#xff0c;只能存到手機里面&#xff0c;鑒于蘋果的存儲機制&#xff0c;需要取出來&#xff0…

eclipse tomcat新建一個_Javaweb07-Eclipse自動創建動態web項目

學習筆記是參考的how2j使用Eclipse創建Dynamic Web Project前面的web項目都是通過手動創建的&#xff0c;現在使用eclipse EE自動創建動態web項目&#xff0c;熟悉一下創建流程&#xff0c;仍舊使用前面創建過的HelloServlet。需要注意的是&#xff0c;這里的tomcat版本變了&am…

python 刪除重復字符_Google面試問題指南:使用Python刪除重復出現的字符

python 刪除重復字符by Anthony Sistilli安東尼西斯蒂里(Anthony Sistilli) Google面試問題指南&#xff1a;使用Python刪除重復出現的字符 (Google Interview Question Guide: Delete Reoccurring Characters with Python) Nowadays, Google interviews are all the rage. Bu…

cordova

命令行 npm install -g cordova cordova create MyApp cd MyApp cordova platform add android 當然也可以把android換成browser把自己的前端程序放在www文件夾內這里注意如果用android studio打包或運行的話&#xff0c;&#xff08;即不用cordova&#xff09;&#xff0c;要把…

冒泡排序(Java版)

冒泡排序基本思想&#xff1a; 1.比較相鄰的元素&#xff0c;如果第一個比第二個大&#xff0c;就交換它們兩個。 2.對每一對相鄰元素做同樣的工作&#xff0c;從開始的第一對到結尾的最后一對。在這一點&#xff0c;最后的元素應該會是最大的數。 3.針對所有的元素重復以上的步…

計算機科學與技術專業的論文周報,畢業設計(實習)周報

本科畢業設計周報第1 周畢業生周記撰寫畢業論文開題報告(初稿)&#xff0c;結合畢業設計所選的題目&#xff0c;查閱大量相關資料&#xff0c;主要針對該設計所涉及的背景&#xff0c;研究目的及意義&#xff0c;以及國內外的相關成熟技術進行篩選&#xff0c;提取部分核心內容…

excel導出_SpringBoot實現快速導出Excel

閱讀本文約需要6分鐘 大家好&#xff0c;我是你們的導師&#xff0c;我每天都會在這里給大家分享一些干貨內容(當然了&#xff0c;周末也要允許老師休息一下哈)。上次老師跟大家分享了下MyBatis 幾種通用的寫法的相關知識&#xff0c;今天跟大家分享SpringBoot實現快速導出Exce…