当前位置: 首页 > news >正文

做网站语言中国十大门户类网站

做网站语言,中国十大门户类网站,seo优化专家,推广平台有哪几个P1690 贪婪的 Copy - 洛谷 题目描述 Copy 从卢牛那里听说在一片叫 yz 的神的领域埋藏着不少宝藏,于是 Copy 来到了这个被划分为 n 个区域的神地。卢牛告诉了 Copy 这里共有 n 个宝藏,分别放在第 Pi​ 个(1≤Pi​≤n)区域。Copy …

P1690 贪婪的 Copy - 洛谷

题目描述

Copy 从卢牛那里听说在一片叫 yz 的神的领域埋藏着不少宝藏,于是 Copy 来到了这个被划分为 n 个区域的神地。卢牛告诉了 Copy 这里共有 n 个宝藏,分别放在第 Pi​ 个(1≤Pi​≤n)区域。Copy 还得知了每个区域之间的距离。现在 Copy 从 1 号区域出发,要获得所有的宝藏并到 n 号区域离开。Copy 很懒,只好来找你为他寻找一条合适的线路,使得他走过的距离最短。

输入格式

第一行一个正整数 n(1≤n≤100)
接下来一个 n×n 的矩阵,第 i+1 行第 j 列的数字表示区域 i, j 之间的距离。每个距离用空格隔开,距离保证 i→j≤1000。请注意的 i→j 距离并不一定等于 j→i 的距离。
第 n+2 行一个整数 P(0≤P≤10)。
第 n+3 行共 P 个用空格隔开的整数,表示有宝藏的区域编号。

输出格式

一个整数,为 Copy 获得全部宝藏需要的最短距离。数据保证答案小于等于 231−1。

输入输出样例

输入 #1

2
0 4
5 0
2
1 2

输出 #1

4

输入 #2

3
0 2 6
1 0 4
7 10 0
1
2

输出 #2

6

说明 / 提示

  • 对 30% 的数据,1≤n≤15,其余如题所述。
  • 对 100% 的数据,全部数据范围如题所述。
     

代码:
 

#include<bits/stdc++.h>
using namespace std;
int n, p;
int min_total = INT_MAX;
int dis[105][105];
vector<int> treasures;
void dfs(int cur,int sum,int count,vector <bool> & vis) 
{if(count == p){sum += dis[cur][n];min_total = min(min_total,sum);return ;	}for(int i = 0 ; i < p ; i++){if(!vis[i]){vis[i] = true;dfs(treasures[i],sum + dis[cur][treasures[i]],count + 1,vis);vis[i] = false;}} }
int main() 
{cin >> n;for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {cin >> dis[i][j];}}cin >> p;for (int i = 0; i < p; i++) {int t;cin >> t;treasures.push_back(t);}for (int k = 1; k <= n; k++) {for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {dis[i][j] = min(dis[i][j], dis[i][k] + dis[k][j]);}}}if (p == 0) {min_total = dis[1][n];} else {vector <bool> vis(n+1,0);dfs(1,0,0,vis);}cout << min_total << endl;return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n, p;
int dis[105][105];
vector<int> treasures;
int main() 
{cin >> n;for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {cin >> dis[i][j];}}cin >> p;for (int i = 0; i < p; i++) {int t;cin >> t;treasures.push_back(t);}for (int k = 1; k <= n; k++) {for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {dis[i][j] = min(dis[i][j], dis[i][k] + dis[k][j]);}}}int min_total = INT_MAX;if (p == 0) {min_total = dis[1][n];} else {//处理当前的排列 sort(treasures.begin(), treasures.end());int cur_total = 0;int cur = 1;for (int t : treasures) {cur_total += dis[cur][t];cur = t;}cur_total += dis[cur][n];min_total = cur_total;while (next_permutation(treasures.begin(), treasures.end())) //字典序最小的排列到大 {cur_total = 0;cur = 1;for (int t : treasures){cur_total += dis[cur][t];cur = t;}cur_total += dis[cur][n];min_total = min(min_total, cur_total);}}cout << min_total << endl;return 0;
}

http://www.dtcms.com/a/606027.html

相关文章:

  • 广东省省考备考(第一百四十九天11.13)——言语、判断推理(强化训练)
  • 网站专题教程网站编辑做多久可以升职
  • ChatGPT无预告升级:GPT-5.1 来了,自适应推理、语气更自然、可语气设定
  • 网络文件系统(NFS)完全指南:从入门到实战
  • 婚恋APP小程序开发:Uniapp+SpringBoot全栈开发指南
  • Python进度条工具tqdm的安装与使用
  • 个人博客网站模板ui网页设计实习周报
  • 【计算机网络】[特殊字符] 408高频考点 | 数据链路层组帧:从字符计数到违规编码,一文学透四大实现方法
  • 第一次搭建个人主页+GitHub部署全记录:HTML/CSS/JS前端实现+留言板踩坑
  • 中山中小企业网站建设做电商运营需要具备什么能力
  • 音视频课程上传、加密与播放技术详解:知识付费系统源码开发实践
  • 专业做网站的域名官网
  • 网站响应式图片切换代码网站升级建设中
  • 理解 CSS 层叠上下文与 z-index — 从一个真实案例出发
  • 盘一盘Redis的底层数据结构
  • C++_chapter15_C++重要知识点_lambda,initializer_list
  • Collections工具类
  • 国家建设执业注册中心网站字体怎么安装到电脑wordpress
  • Android16 EDLA 开机向导的锁屏设置页面,HDMI out 鼠标不显示问题分析解决
  • 基于yolov8的SAR影像目标检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】
  • 网站做直播功能需要注册吗腾讯广告投放平台官网
  • 网站空间 阿里云北京金山办公软件股份有限公司官网
  • 大丰有做网站的爱客crm官网
  • KingBase通过exp脚本实现数据库自动备份
  • DeepSeek的入门和使用
  • 视觉进阶篇—— PyTorch 安装
  • net开发网站站长素材音效
  • 登录场景下短信验证码功能的设计与实现(Vue 2 + Element UI + Axios附完整代码)
  • SpringBoot-36-开发实战JPA的使用(一对多)@OneToMany+@ManyToOne
  • 云桌面办公系统详解:开启灵活、安全、高效的工作新纪元