hdu1572 水搜索
題意:
? ? ? ? ? ?中文的不解釋;
思路:
? ? ? ? ? 其實就是一個水的搜索,直接搜索不會超時,還有別跑最短路了,題目沒要求跑最短路,別讀錯題,剛開始自己嘚嗖的跑了一邊最短路 wa了 ,正好最近看了STL的全排列就寫下吧,省著忘了,反正沒有剪枝的深搜也是全排列的枚舉..
#include<stdio.h>
#include<algorithm>
#define N 30 + 5
#define inf 1000000000
using namespace std;
int main ()
{
int map[N][N];
int num[10];
int i ,j ,k ,n ,nn ,ans;
while(scanf("%d" ,&n) && n)
{
for(i = 1 ;i <= n ;i ++)
? ?for(j = 1 ;j <= n ;j ++)
? ?{
scanf("%d" ,&map[i][j]);
}
scanf("%d" ,&nn);
for(i = 1 ;i <= nn ;i ++)
{
scanf("%d" ,&num[i]);
num[i] ++;
}
int c = 1;
for(i = 1 ;i <= nn ;i ++)
c *= i;
ans = inf;
int temp = map[1][num[1]];
for(i = 2 ;i <= nn ;i ++)
temp += map[num[i - 1]][num[i]];
if(ans > temp)
ans = temp;
while(--c)
{
next_permutation(num + 1 ,num + nn + 1);
temp = map[1][num[1]];
for(i = 2 ;i <= nn ;i ++)
temp += map[num[i - 1]][num[i]];
if(ans > temp)
ans = temp;
}
printf("%d\n" ,ans);
}
return 0;
}
?
總結
以上是生活随笔為你收集整理的hdu1572 水搜索的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu2433 spfa+mark[x]
- 下一篇: hdu1261 JAVA