博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AtCoder Beginner Contest 073 赛后反思与总结
阅读量:5272 次
发布时间:2019-06-14

本文共 1368 字,大约阅读时间需要 4 分钟。

前三道题目 普及-的难度就不说了。

 

最后一道题目难度 普及+~提高-的难度

向复杂了,花了1小时解决题目。

思路就是 floyd+dfs

1 #include 
2 using namespace std; 3 int dis[205][205]; 4 int tot=0x3f3f3f3f,vis[205]; 5 int n,m,r,Start; 6 int R[12]; 7 int x,y,z; 8 9 void floyd(){10 for (int k = 1; k <= n; k++) {11 for (int i = 1; i <= n; i++) {12 if (i == k) continue;13 for (int j = 1; j <= n; j++) {14 if (i == j || k == j) continue;15 dis[i][j] = min(dis[i][j], dis[i][k] + dis[k][j]);16 }17 }18 }19 20 }21 22 void dfs(int last,int x,int num){23 if(x>r){24 tot = min(tot,num);25 return;26 }27 for(int i=1;i<=r;i++){28 if(!vis[R[i]]){29 vis[R[i]]=1;30 dfs(R[i],x+1,num+dis[last][R[i]]);31 vis[R[i]]=0;32 }33 }34 }35 36 int main(){37 memset(dis,0x3f3f3f3f,sizeof(dis));38 scanf("%d%d%d",&n,&m,&r);39 for(int i=1;i<=r;i++) scanf("%d",&R[i]);40 for(int i=1;i<=m;i++){41 scanf("%d%d%d",&x,&y,&z);42 dis[x][y]=z;43 dis[y][x]=z;44 }45 floyd();46 for(int i=1;i<=r;i++){47 vis[R[i]]=1;48 dfs(R[i],2,0);49 vis[R[i]]=0;50 }51 printf("%d\n",tot);52 return 0;53 }

 

转载于:https://www.cnblogs.com/OIerLYF/p/7500681.html

你可能感兴趣的文章
《你的灯亮着吗?:发现问题的真正所在》读书笔记2
查看>>
[转]serialport控件的详细用法
查看>>
Mina入门:Java NIO基础概念
查看>>
LintCode "Subarray Sum Closest"
查看>>
LeetCode "Longest Substring with At Most K Distinct Characters"
查看>>
[命令技巧]ls
查看>>
Number of Islands II Leetcode
查看>>
Word页码的设定(转)
查看>>
为智能化尽“芯”尽“力”
查看>>
这种写法用过没:string.Format("{0,-10}", 8)
查看>>
数组去重
查看>>
npm install --save 与 npm install --save-dev 的区别
查看>>
sparkstreaming + kafka + zookeeper + hbase整体发布说明
查看>>
api proxy设置 后端服务器代理
查看>>
用户svn密码自定义
查看>>
HDU 4539 郑厂长系列故事――排兵布阵(曼哈顿距离)
查看>>
python--函数式编程--9
查看>>
大二(上)------我欠青春一份疯狂
查看>>
myeclipse,eclipse设置编码格式的4种情况,以及遇见部分问题的解决办法。
查看>>
magento 去掉index.php .html
查看>>