1. 程式人生 > >德克薩斯長角牛

德克薩斯長角牛

樣例輸出

7
這道題一開始總是有個別測試資料超時,於是想辦法改進減枝函式,之前用的到當前點花費加上到下一個點的邊的花費不能大於已經找到的最優值,但是這樣限界太大了。改進後換為當前點花費不能大於已經更新過的到當前點的最優花費,但是又有一組資料超時了。最後把這種限界都加上終於過了。
#include <iostream>
using namespace std;
int T,C,TS,TE;
int m[2501][2501];
int s[2501];
int cost=0;
int minc=99999;
int dis[2501];
void Backtrack(int t){
if(t==TE){
if(cost<minc)
minc=cost;
return;
}
else{
for(int j=1;j<=T;j++){
if(s[j])
continue;
if(m[t][j]!=0&&dis[t]+m[t][j]<dis[j]&&cost+m[t][j]<minc){
s[j]=1;
dis[j]=dis[t]+m[t][j];
cost=cost+m[t][j];
Backtrack(j);
s[j]=0;
cost=cost-m[t][j];
}
}
}
}
int main(){
int aa=0,bb=0,cc=0;
scanf("%d%d%d%d",&T,&C,&TS,&TE);
for(int i=0;i<C;i++){
scanf("%d%d%d",&aa,&bb,&cc);
m[aa][bb]=cc;
m[bb][aa]=cc;
}
for(int ii=0;ii<=T;ii++)
dis[ii]=99999;
s[TS]=1;
dis[TS]=0;
Backtrack(TS);
printf("%d\n",dis[TE]);
return 0;
}

相關推薦

計蒜客: (最短路)

https://nanti.jisuanke.com/t/230 德克薩斯純樸的民眾們這個夏天正在遭受巨大的熱浪!!!他們的德克薩斯長角牛吃起來不錯,可是他們並不是很擅長生產富含奶油的乳製品。Farmer John此時以先天下之憂而憂,後天下之樂而樂的精神,身先士卒地承擔起向德克薩斯運送大量

計蒜客 - (最短路)

https://nanti.jisuanke.com/t/230 1000ms 65536K 題目描述 德克薩斯純樸的民眾們這個夏天正在遭受巨大的熱浪!!!他們的德克薩斯長角牛吃起來不錯,可是他們並不是很擅長生產富含奶油的乳製品。Farmer John此時以先天下之憂

樣例輸出 7 這道題一開始總是有個別測試資料超時,於是想辦法改進減枝函式,之前用的到當前點花費加上到下一個點的邊的花費不能大於已經找到的最優值,但是這樣限界太大了。改進後換為當前點花費不能大於已經更新過的到當前點的最優花費,但是又有一組資料超時了。最後把這種限界都加上終於過了。 #include <i

又一個雙足機器人實現類人平衡力!這次是大學用6年打造的“水星”

來源 | 機器人大講堂 原創 | 風雨扶蕖 不知從何時起,在很多小夥伴心目中,讓機器人有像人一樣的腦子是難點,而讓機器人像人一樣走路應該是非常容易、基本的。 殊不知,讓機器人像人一樣走路就足以讓機器人拼盡全力了,很多機器人都是一觸即倒。 其實,人類從爬行到直立行

國慶七連測(六)撲克

【簡化題目描述】 簡化德州撲克的規則,從七張牌中選取五張牌。在忽略花色的情況下,我們把牌型分為七類,大小依次遞減。 1、四帶一 2、三帶對 3、順子 4、三帶二(兩張牌不要求相同)5、兩對帶一張單牌 6

2018款雷LX570

南樂縣 阿里巴巴集團董事局主席馬雲發表致股東的公開信表示:生意難做之時,正是阿里巴巴兌現“讓天下沒有難做的生意”的使命之時。,阿里巴巴(NYSE:BABA)今日釋出了截至2018年9月30日的2019財年第二季度財報(注:阿里巴巴財年與自然年不同步,從每年的4月1日開始,至第二年的3月31日結束)。 財報中

hdu 1679 The Unique MST (卡爾)

plm () pst cati 卡爾 nts 相等 cat get The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24152 Accepted:

hdu 1233 還是暢通project (卡爾裸題)

pid 要求 -s algo iss eight find 用例 cep 還是暢通project Time Limit: 4000/2000 MS (Java/Other

poj 2931 Building a Space Station &lt;卡爾&gt;

accep for each ppi ons cee ont line 求解 0.11 Building a Space Station Time Limit: 1000MS Memory Limit: 30000K

[您有新的未分配科技點][BZOJ3545&BZOJ3551]卡爾重構樹

return 講解 date 要求 strong 重構 mission amp null 這次我們來搞一個很新奇的知識點:克魯斯卡爾重構樹。它也是一種圖,是克魯斯卡爾算法求最小生成樹的升級版首先看下面一個問題:BZOJ3545 Peaks。 在Bytemountains有N

卡爾

bool cin ace truct span algo logs namespace using #include<iostream> #include<algorithm> #include<cstdio> #include

最小生成樹算法(卡爾算法和普裏姆算法)

algo 貪心 size cin out visit cast 聯通 兩個 一般最小生成樹算法分成兩種算法: 一個是克魯斯卡爾算法:這個算法的思想是利用貪心的思想,對每條邊的權值先排個序,然後每次選取當前最小的邊,判斷一下這條邊的點是否已經被選過了,也就是已經在樹內了,一般

圖解最小生成樹 - 卡爾(Kruskal)算法

lin p s nbsp 時間 top table idt max 回路 我們在前面講過的《克裏姆算法》是以某個頂點為起點,逐步找各頂點上最小權值的邊來構建最小生成樹的。同樣的思路,我們也可以直接就以邊為目標去構建,因為權值為邊上,直接找最小權值的邊來構建生成樹也是很自然的

【NOI2018】歸程(卡爾重構樹)

復雜度 修改 復雜 print noi truct dfs second getch 【NOI2018】歸程(克魯斯卡爾重構樹) 題面 洛谷 題解 我在現場竟然沒有把這道傻逼題給切掉,身敗名裂。 因為這題就是克魯斯卡爾重構樹的模板題啊 我就直接簡單的說一下把 首先發現答案就

c/c++ 用卡爾(kruskal)算法構造最小生成樹

方向 查看 維數 dbo 一個 code lse size 只需要 c/c++ 用克魯斯卡爾(kruskal)算法構造最小生成樹 最小生成樹(Minimum Cost Spanning Tree)的概念: 假設要在n個城市之間建立公路,則連通n個城市只需要n-1條線路。這時

卡爾重構樹小結

.org work 根節點 問題 net 重構 lca lin 創建 https://zybuluo.com/ysner/note/1239639 定義 克魯斯卡爾重構樹可以維護諸如“查詢從某個點出發經過邊權不超過\(w\)的邊最遠所能到達的節點”或“從某點到某點所有路徑的

卡爾求最小生成樹

角度 ems 不理解 += 重復 highlight 賦值 truct bool 處理何種問題:求解最小生成樹,適合點多邊少的無向圖。(以證明,放心用) 性能:時間復雜度為O(e*loge),e為邊的個數。 原理:貪心策略 實現步驟: <1>設一個有

luogu P3366 【模板】最小生成樹(卡爾演算法)

題目描述 如題,給出一個無向圖,求出最小生成樹,如果該圖不連通,則輸出orz 輸入輸出格式 輸入格式: 第一行包含兩個整數N、M,表示該圖共有N個結點和M條無向邊。(N<=5000,M<=200000) 接下來M行每行包含三個整數Xi、Yi、Zi,表示有一條長度為Zi的無向邊連線結點Xi

天才紳士少女助手蒂娜 解題報告

天才紳士少女助手克里斯蒂娜 Description 紅莉棲想要弄清楚樓下天王寺大叔的映象管電視對 “電話微波爐 (暫定)” 的影響. 選取映象管的任意一個平面, 一開始平面內有個 \(n\) 電子, 初始速度分別為 \(v_i\), 定義飄升係數為\(\sum\limits_{1 \le i <

最小生成樹-HDU1233 卡爾演算法 模板

題意就是給你一個圖,然後算這個圖衍生的最小生成樹 簡直就是模板題 程式碼: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using