n個人在做傳遞物品的遊戲,編號為1-n。
遊戲規則是這樣的:開始時物品可以在任意一人手上,他可把物品傳遞給其他人中的任意一位;下乙個人可以傳遞給未接過物品的任意一人。
即物品只能經過同乙個人一次,而且每次傳遞過程都有乙個代價;不同的人傳給不同的人的代價值之間沒有聯絡;
求當物品經過所有n個人後,整個過程的總代價是多少。
第一行為n,表示共有n個人(16>=n>=2);
以下為n*n的矩陣,第i+1行、第j列表示物品從編號為i的人傳遞到編號為j的人所花費的代價,特別的有第i+1行、第i列為-1(因為物品不能自己傳給自己),其他資料均為正整數(<=10000)。
(對於50%的資料,n<=11)。
乙個數,為最小的代價總和。
2-1 9794
2724 –1
2724
所有資料時限為1s
裸的狀壓dp。f(i.j)表示i狀態下最後乙個經過的人為j的最小代價,先列舉狀態o(2^n),再列舉取過的點當成最後經過的人o(n),
最後列舉未取過的點加入到狀態中o(n),總時間複雜度o(2^n*n²),約為1e7。
1 #include2using
namespace
std;
3const
int maxn=20;4
int f[(1
<5int
dj[maxn][maxn];
6intn;7
intmain()819
}20 memset(f,127,sizeof
(f));
21for(int i=0;i<=n-1;i++)
22 f[(1
<0;23
for(int i=0;i<(1
<)
2431
int ans=99999999;32
for(int i=0;i<=n-1;i++)
33 ans=min(ans,f[(1
<1
][i]);
34 printf("%d"
,ans);
35return0;
36 }
vijos1456 最小總代價
描述 n 個人在做傳遞物品的遊戲,編號為1 n。遊戲規則是這樣的 開始時物品可以在任意一人手上,他可把物品傳遞給其他人中的任意一位 下乙個人可以傳遞給未接過物品的任意一人。即物品只能經過同乙個人一次,而且每次傳遞過程都有乙個代價 不同的人傳給不同的人的代價值之間沒有聯絡 求當物品經過所有 n 個人後...
vijos 1456 最小總代價 狀壓dp
描述 n個人在做傳遞物品的遊戲,編號為1 n。即物品只能經過同乙個人一次,而且每次傳遞過程都有乙個代價 不同的人傳給不同的人的代價值之間沒有聯絡 求當物品經過所有n個人後,整個過程的總代價是多少。格式輸入格式 第一行為n,表示共有n個人 16 n 2 以下為n n的矩陣,第i 1行 第j列表示物品從...
1195 最小總代價
題目描述 n個人在做傳遞物品的遊戲,編號為1 n。即物品只能經過同乙個人一次,而且每次傳遞過程都有乙個代價 不同的人傳給不同的人的代價值之間沒有聯絡 求當物品經過所有n個人後,整個過程的總代價最小是多少。輸入 第一行為n,表示共有n個人 16 n 2 以下為n n的矩陣,第i 1行 第j列表示物品從...