HDU 4370 0 or 1(巧妙思路转化,0/1规划,最短路SPFA)
2015-06-12 14:48
441 查看
题目大意:给出一个n×n的矩阵,求一个n×n的只含有0和1的矩阵,使得两个矩阵位置对应的元素相乘后和最小。
思路:巧妙的思路,把题目所给的三个条件以图论的角度考虑可以转换成一个求最短路径的问题。
通过这题了解到了一个新的问题–“0/1规划”。
各种题解:
官方题解
kuangbin
cxlove
Code:
思路:巧妙的思路,把题目所给的三个条件以图论的角度考虑可以转换成一个求最短路径的问题。
通过这题了解到了一个新的问题–“0/1规划”。
各种题解:
官方题解
kuangbin
cxlove
Code:
/* W w w mm mm 222222222 7777777777777 */ /* W w w w m m m m 222 22 7777 */ /* w w w w m m m m 22 777 */ /* w w w w m m m m 22 77 */ /* w w w w m m m m 222 77 */ /* w w w w m m m m 222 77 */ /* w w w w m m m m 222 77 */ /* w w w w m m m m 222 77 */ /* w w w w m m m m 222 77 */ /* ww ww m mm m 222222222222222 77 */ //#pragma comment(linker, "/STACK:102400000,102400000") //C++ //int size = 256 << 20; // 256MB //char *p = (char*)malloc(size) + size; //__asm__("movl %0, %%esp\n" :: "r"(p)); //G++ #include<set> #include<map> #include<queue> #include<stack> #include<ctime> #include<deque> #include<cmath> #include<vector> #include<string> #include<cctype> #include<cstdio> #include<cstdlib> #include<cstring> #include<sstream> #include<iostream> #include<algorithm> #define REP(i,s,t) for(int i=(s);i<=(t);i++) #define REP2(i,t,s) for(int i=(t);i>=s;i--) using namespace std; typedef long long ll; typedef unsigned long long ull; typedef unsigned long ul; int n; const int MAXN=305; const int INF=0x3f3f3f3f; int path[MAXN][MAXN]; bool vis[MAXN];//在队列标志 int dist[MAXN]; void SPFA(int start,int n) { memset(vis,false,sizeof(vis)); queue<int>Q; for(int i=1; i<=n; i++) { if(i==start) { dist[i]=INF; } else { dist[i]=path[start][i]; Q.push(i); vis[i]=1; } } while(!Q.empty()) { int u=Q.front(); Q.pop(); vis[u]=0; REP(i,1,n) { if(dist[i]>dist[u]+path[u][i]) { dist[i]=dist[u]+path[u][i]; if(!vis[i]) { vis[i]=1; Q.push(i); } } } } } int main() { #ifdef ONLINE_JUDGE #else freopen("test.in","r",stdin); #endif while(~scanf("%d",&n)) { REP(i,1,n) { REP(j,1,n) { int c; scanf("%d",&path[i][j]); } } SPFA(1,n); int ans=dist ; int c1=dist[1]; SPFA(n,n); int c2=dist ; printf("%d\n",min(ans,c1+c2)); } return 0; }
相关文章推荐
- UVALive - 4621 Cav 贪心 + 分析
- java 获取时间相关总结
- 需求测试分析文档
- mysql开发需求
- Oracle集群文件系统(OCFS2)
- 史上最详细的Windows10正式版预约升级全过程
- JavaScript
- [stackoverflow]哈希表是如何工作的?
- php之路
- linuxcnc 成功与失败
- 高仿土豆视频iOS版
- oracle数据库导出备份导入恢复
- .net中实现aspnetpager分页
- 使用Jackson在Java中处理JSON
- 字符串转10进制数据
- 【笔记】【chanpin100产品经理深入浅出】产品经理需要写的三大文档
- 【基础】Cocos2d-x 浅谈事件处理机制
- The file “xxx” couldn’t be opened because you don’t have permission to view it.
- WPF中线性渐变画刷的一个小窍门
- PHP获取用户访问IP地址的5种方法