pat 1003. Emergency (25)
来源:互联网 发布:软件测试网上培训班 编辑:程序博客网 时间:2024/06/18 06:33
#include <iostream>#include <algorithm>using namespace std;#include <vector>struct Node { int dist=0; int recume=0;};vector<Node> res;int a[505][505]={0};int eachRes[500];int n,m;bool way[500];void dfs(int now,int desti,Node tmp){ for(int i=0;i<n;i++){ if(a[now][i]>0){ tmp.dist += a[now][i]; tmp.recume += eachRes[i]; a[now][i] = -1; a[i][now] = -1; if(i==desti){ res.push_back(tmp); }else dfs(i,desti,tmp); tmp.dist = 0; tmp.recume = eachRes[now]; } } return;}bool cmp1(Node a,Node b){ if(a.dist!=b.dist) return a.dist<b.dist; else return a.recume>b.recume;}int main() { ios::sync_with_stdio(false); int now,desti; Node tmp; cin>>n>>m>>now>>desti; for(int i=0;i<n;i++){ cin>>eachRes[i]; } int c1,c2,d; for(int i=0;i<m;i++){ cin>>c1>>c2>>d; a[c1][c2] = d; a[c2][c1] = d; } for(int i=0;i<500;i++){ way[i] = false; } way[now] = true; tmp.recume += eachRes[now]; dfs(now,desti,tmp); sort(res.begin(),res.end(),cmp1); cout<<res[0].dist<<" "<<res[0].recume; return 0;}
只过一个测试点(10’)
还没找出错误
阅读全文
0 0
- 1003. Emergency (25)-PAT
- (PAT)1003. Emergency (25)
- PAT 1003. Emergency (25)
- PAT 1003. Emergency (25)
- [PAT]1003. Emergency (25)
- 【PAT】1003. Emergency (25)
- PAT 1003. Emergency (25)
- PAT 1003. Emergency (25)
- PAT 1003. Emergency (25)
- 【PAT】1003. Emergency (25)
- PAT 1003. Emergency (25)
- pat 1003. Emergency (25)
- PAT:1003. Emergency (25)
- PAT:1003. Emergency (25)
- 【PAT】1003. Emergency (25)
- pat 1003. Emergency (25)
- PAT 1003. Emergency (25)
- PAT --- 1003. Emergency (25)
- 51nod 1192GCD表中的质数(莫比乌斯反演+双分块)
- redis安装和简单配置
- OkUrl----okhttp网络请求封装类
- centos7安装其他源以及安装软件
- Unity3d之小技巧
- pat 1003. Emergency (25)
- 图像点运算
- 暴走漫画gif爬取及保存
- Java 实现文件下载--解决中文乱码
- Python3下用tkinter和PIL实现简单的看图工具
- 美国陆军启动5年PNT技术研发计划
- 装箱问题 vijos
- ajaxFileUpload上传图片
- centos7安装第三方源