[CF1200E]Tourism

題面描述

給定一個n個點萝毛,m條邊的無向圖项阴,其中你在第i個點建立旅游站點的費用為Ci。在這張圖中笆包,任意兩點間不存在節(jié)點數(shù)超過10的簡單路徑环揽。請找到一種費用最小的建立旅游站點的方案,使得每個點要么建立了旅游站點庵佣,要么與它有邊直接相連的點里至少有一個點建立了旅游站點薯演。

輸入格式

第一行包含兩個正整數(shù)n,m(1<=n<=20000,0<=m<=25000),分別表示點數(shù)和邊數(shù)秧了。
第二行包含n個整數(shù)跨扮,其中第i個數(shù)為Ci(0<=Ci<=10000),表示在第i個點建立旅游站點的費用验毡。
接下來m行衡创,每行兩個正整數(shù)u,v(1<=u,v<=n),表示u與v之間連了一條邊晶通,保證沒有重邊璃氢。

輸出格式

輸出一行一個整數(shù),即最小的總費用狮辽。

樣例數(shù)據(jù)

樣例輸入

3
1 2 3

樣例輸出

1
2

題解

直接dfs暴力查找最優(yōu)解即可一也。中間需判斷到達(dá)一個點后還能否繼續(xù)移動到其它點。如果可以喉脖,則將這條支路上的貢獻(xiàn)一并加入總的答案中椰苟。同時,當(dāng)一個點被到達(dá)后我們需要判斷是否走進了回路树叽。這里可以記錄之前到達(dá)的路徑舆蝴,如果發(fā)現(xiàn)重復(fù)的路徑則說明進入了回路。
這里貼出未剪枝的代碼。

#include<bits/stdc++.h>
#define int long long
#define maxn 200005
#define maxm 200005
using namespace std;
inline char get(){
    static char buf[30000],*p1=buf,*p2=buf;
    return p1==p2 && (p2=(p1=buf)+fread(buf,1,30000,stdin),p1==p2)?EOF:*p1++;
}
inline int read(){
    register char c=get();register int f=1,_=0;
    while(c>'9' || c<'0')f=(c=='-')?-1:1,c=get();
    while(c<='9' && c>='0')_=(_<<3)+(_<<1)+(c^48),c=get();
    return _*f;
}
struct edge{
    int u,v,w,next;
}E[maxm<<1];
int p[maxn],eid;
inline void init(){
    for(register int i=0;i<maxn;i++)p[i]=-1;
    eid=0;
}
inline void insert(int u,int v,int w){
    E[eid].u=u;
    E[eid].v=v;
    E[eid].w=w;
    E[eid].next=p[u];
    p[u]=eid++;
}
inline void insert2(int u,int v,int w){
    insert(u,v,w);
    insert(v,u,w);
}
int n,m,a[maxn],s;
int vis[maxn];
int dfs(int u,int last,int w,int deep){
    if(deep>n+5)return w;
    w+=a[u];
    //cout<<u<<" "<<deep<<endl;
    //cout<<u<<" "<<last<<" "<<a[u]<<" "<<w<<endl;
    int save=a[u];
    a[u]=0;
    int ret=0;
    for(register int i=p[u];~i;i=E[i].next){
        int v=E[i].v;
        //cout<<v<<" "<<vis[i]<<endl;
        vis[i]=1;
        if(v==last && (vis[i] || vis[i ^ 1]))continue;
        //cout<<v<<"<>"<<vis[i]<<endl;
        ret=max(ret,dfs(v,u,w,deep+1));
        vis[i]=0;
    }
    a[u]=save;
    if(ret==0)return w;
    return ret;
}
signed main(){
    //freopen("1.txt","r",stdin);
    init();
    n=read(),m=read();
    for(register int i=1;i<=n;i++)a[i]=read();
    for(register int i=1;i<=m;i++){
        int u=read(),v=read();
        insert2(u,v,1);
    }
    s=read();
    cout<<dfs(s,-1,0,0); 
    return 0;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末洁仗,一起剝皮案震驚了整個濱河市层皱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赠潦,老刑警劉巖叫胖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異她奥,居然都是意外死亡臭家,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門方淤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钉赁,“玉大人,你說我怎么就攤上這事携茂∧悴龋” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵讳苦,是天一觀的道長带膜。 經(jīng)常有香客問我,道長鸳谜,這世上最難降的妖魔是什么膝藕? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮咐扭,結(jié)果婚禮上芭挽,老公的妹妹穿的比我還像新娘。我一直安慰自己蝗肪,他們只是感情好袜爪,可當(dāng)我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著薛闪,像睡著了一般辛馆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上豁延,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天昙篙,我揣著相機與錄音,去河邊找鬼诱咏。 笑死苔可,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的胰苏。 我是一名探鬼主播硕蛹,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼硕并!你這毒婦竟也來了法焰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤倔毙,失蹤者是張志新(化名)和其女友劉穎埃仪,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體陕赃,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡卵蛉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了么库。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片傻丝。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖诉儒,靈堂內(nèi)的尸體忽然破棺而出葡缰,到底是詐尸還是另有隱情,我是刑警寧澤忱反,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布泛释,位于F島的核電站,受9級特大地震影響温算,放射性物質(zhì)發(fā)生泄漏怜校。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一注竿、第九天 我趴在偏房一處隱蔽的房頂上張望茄茁。 院中可真熱鬧,春花似錦巩割、人聲如沸胰丁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锦庸。三九已至,卻和暖如春蒲祈,著一層夾襖步出監(jiān)牢的瞬間甘萧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工梆掸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扬卷,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓酸钦,卻偏偏與公主長得像怪得,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 樹形動態(tài)規(guī)劃徒恋,顧名思義就是樹+DP蚕断,先分別回顧一下基本內(nèi)容吧:動態(tài)規(guī)劃:問題可以分解成若干相互聯(lián)系的階段,在每一個...
    Mr_chong閱讀 1,467評論 0 2
  • 一年級語文上冊生字表 生字表一(共400字) 啊(ā)愛(ài)安(ān)岸(àn)爸(bà)八(bā)巴(bā)...
    meychang閱讀 2,760評論 0 6
  • sì 支zhī茶chá 對duì 酒jiǔ入挣,賦fù 對duì 詩shī亿乳,燕yàn子zi 對duì 鶯yīng 兒é...
    每個人的孟母堂閱讀 1,196評論 0 6
  • One 1 the [e?, ei:] art.這,那 ad.[用于比較級径筏;最高級前] 2 be [bi:,bi]...
    梁培林閱讀 9,234評論 0 10
  • 五味子 五味子葛假,味酸,氣溫滋恬,降也聊训。陰中微陽,非陽中微陰也恢氯,無毒魔眨。此藥有南北之分,必以北者為佳酿雪,南者不可用遏暴。古人為南...
    杏林書蟲閱讀 799評論 2 2