poj 3251: 最少费用
2014-07-09 22:08
106 查看
动态规划
#include<iostream>
using namespace std;
const int inf = 0x7fffffff;
int main()
{
int n;
int map[110][110];
int visit[110][110];
cin>>n;
for(int i=0;i<=n+1;i++)
for(int j=0;j<=n+1;j++)
map[i][j] = inf;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>map[i][j];
for(int i=0;i<=n+1;i++)
for(int j=0;j<=n;j++)
visit[i][j] = 1;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
visit[i][j] = 0;
visit[1][1] = 1;
while(!visit
)
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(visit[i-1][j]==1 && visit[i][j-1]==1 && !visit[i][j])
{
map[i][j] += min(map[i-1][j],map[i][j-1]);
visit[i][j] = 1;
}
}
cout<<map
<<endl;
return 0;
}
#include<iostream>
using namespace std;
const int inf = 0x7fffffff;
int main()
{
int n;
int map[110][110];
int visit[110][110];
cin>>n;
for(int i=0;i<=n+1;i++)
for(int j=0;j<=n+1;j++)
map[i][j] = inf;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>map[i][j];
for(int i=0;i<=n+1;i++)
for(int j=0;j<=n;j++)
visit[i][j] = 1;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
visit[i][j] = 0;
visit[1][1] = 1;
while(!visit
)
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(visit[i-1][j]==1 && visit[i][j-1]==1 && !visit[i][j])
{
map[i][j] += min(map[i-1][j],map[i][j-1]);
visit[i][j] = 1;
}
}
cout<<map
<<endl;
return 0;
}
相关文章推荐
- poj1753-Flip Game(高斯消元枚举xor线性方程自由变元的值,找为1解的最少数量)
- 【POJ】 3422 Kaka’s Matrix Travels 费用流
- poj 3422 Kaka's Matrix Travels (费用流 + 拆点)
- poj 1273 Drainage Ditches(最大费用流+最短增广路径算法)
- POJ 2135 Farm Tour (最小费用最大流模板题)
- 费用流——POJ 3686
- poj 2516 Minimum Cost 【最小费用最大流】【求解K种物品的最小费用,独立求解累加每个结果】
- poj1159 —— 一个字符串,求最少插入几个字符可以组成回文
- POJ 1674最少排序(可作为排序的新算法)
- POJ 1922到学校的最少时间
- POJ 2175 spfa费用流消圈
- poj2195 Going Home 费用流
- POJ-2135-最大流最小费用
- POJ 3670 Intervals(费用流)
- POJ 3422 Kaka's Matrix Travels 费用流
- POJ 2516 费用流裸题
- poj 3422 Kaka's Matrix Travels(最大费用流,巧妙构图,拆点)
- poj 2135 费用流
- POJ 2135 费用流 spfa
- POJ 3270 Cow Sorting(置换最小费用)