[DFS]FJSDFZOJ 1260 城市交通
2014-02-11 20:36
441 查看
原题:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1260
时间:2014.2.11
类型:dp/dfs
源码(dp):(莫名其妙WA了)
(dfs):
最后状态:AC(dp不知为何WA了)
总结:初学dp
时间:2014.2.11
类型:dp/dfs
源码(dp):(莫名其妙WA了)
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int main() { int n; scanf("%d",&n); int map[n+1][n+1],f[n+1]; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { scanf("%d",&map[i][j]); if(map[i][j]==0) { map[i][j]=99999;} } } memset(f,9999,sizeof(f)); f[1]=0; //f[i]表示第i个城市到第一个的距离 for(int i=1;i<=n;i++) { for(int j=1;j<=i;j++) { if(f[i]>f[j]+map[i][j]) { f[i]=f[j]+map[i][j]; } } } printf("%d",f ); //system("pause"); return 0; }
(dfs):
#include<iostream> #include<cstdio> #include<cstdlib> using namespace std; int n,ans=123456789; int map[101][101]; bool past[101]; void search(int num,int tot) { if(num==n) { if(ans==123456789||tot<ans) { ans=tot; } return; } for(int i=num+1;i<=n;i++) { if(map[i][num]&&!past[i]) { past[i]=true; search(i,tot+map[i][num]); past[i]=false; } } } int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { scanf("%d",&map[i][j]); } } search(1,0); printf("%d",ans); //system("pause"); return 0; }
最后状态:AC(dp不知为何WA了)
总结:初学dp
相关文章推荐
- [DFS]FJSDFZOJ 1412 四色问题
- [DFS]FJSDFZOJ 1261 整数拆分
- [DFS]FJSDFZOJ 1427 寻找国都名
- [DFS]FJSDFZOJ 1079/NOIP2002 选数
- [DFS]FJSDFZOJ 1423 n皇后
- [DFS]FJSDFZOJ 1421 数字排列问题
- [DFS]FJSDFZOJ 1420 0/1背包问题
- [贪心]FJSDFZOJ 1133 活动安排问题
- [字符串]FJSDFZOJ 1075 统计单词数
- [字符串]FJSDFZOJ 1134 整数去位
- [DP]FJSDFZOJ 1283 机器分配
- FJSDFZOJ 1109 统计数字
- [DP]FJSDFZOJ 1143 数字三角形
- [DP]FJSDFZOJ 1386 最大连续子段和问题
- 【DFS+剪枝】-ZOJ-3631-Watashi's BG
- zoj 1204 dfs
- zoj 1709 poj 1562 Oil Deposits【邻接阵,dfs】
- ZOJ 1008 Gnome Tetravex(DFS)
- ZOJ-1832(DFS)
- zoj 2412 dfs