作业 二十七 三国志
解题思路:Dijkstra算法(单源最短路径)和0-1背包,但是要考虑重边
#include<stdio.h>
#include<vector>
#include<string.h>
#include<iostream>
using namespace std;
vector < pair<int, int> > G[105];
const int INF = 1000000;
int Dij[105];
int isVisit[105];
int City[105];
int f[1000002];
int S, N, M;
void Init(){
int i;
for(i = 0; i <= N; i++){
G[i].clear();
Dij[i] = INF;
}
memset(isVisit, 0, sizeof(isVisit));
memset(f, 0, sizeof(f));
}
void Dijkstra(int begin){
int i, v, weight;
Dij[begin] = 0;
while(isVisit[begin] == 0){
isVisit[begin] = 1;
for(i = 0; i < G[begin].size(); i++){
v = G[begin][i].first;
weight = G[begin][i].second;
if(Dij[v] > Dij[begin] + weight)
Dij[v] = Dij[begin] + weight;
}
int min_cost = INF;
for(i = 0; i <= N; i++){
if(!isVisit[i] && Dij[i] < min_cost){
min_cost = Dij[i];
begin = i;
}
}
}
}
int pack(){
int i, j;
for(i = 1; i <= N; i++){
for(j = S; j >= 0; j--){
if(j >= Dij[i])
f[j] = f[j] > f[j - Dij[i]] + City[i] ? f[j] : f[j - Dij[i]] + City[i];
}
}
return f[S];
}
int main(){
int T, i, max_cost;
scanf("%d", &T);
while(T--){
scanf("%d%d%d", &S, &N, &M);
Init();
for(i = 0; i < M; i++){
int x, y, len;
scanf("%d%d%d", &x, &y, &len);
G[x].push_back(make_pair(y, len));
G[y].push_back(make_pair(x, len));
}
for(i = 1; i <= N; i++)
scanf("%d", &City[i]);
Dijkstra(0);
max_cost = pack();
printf("%d\n", max_cost);
}
return 0;
}
作业 二十七 三国志相关推荐
- 那一年,我们二十七八岁
我今年二十七八岁, 每天起床的时间从中午12点变成了早上7点,睡觉的时间从凌晨变成了晚上11点. 我今年二十七八岁, 工作中开始接触形形色色的人,见到亲戚朋友,他们不再问你考试考了多少分, 而是问你工 ...
- 那年,我们二十七八岁
今天无意中看到这个视频<那年,我们二十七八岁>,虽然我还没有到这个时候,但是仍然很有感触,我把它的歌词抄下来了... 我今年二十七八岁, 每天起床的时间从中午12点变成了早上7点,睡觉的时 ...
- 聊聊二十七八岁,聊二十一二岁
聊聊二十七八岁,聊二十一二岁 我今年二十七八岁, 每天起床的时间从中午12点变成了早上7点,睡觉的时间从凌晨变成了晚上11点. 我今年二十七八岁, 工作中开始接触形形色色的人, 我今年二十七八 ...
- 2021年大数据Hadoop(二十七):YARN运行流程
全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 Yarn运行流程 本系列历史文章 2021年大数据Hado ...
- 福师2021计算机应用基础,2021福师《计算机应用基础》在线作业二【满分答案】...
2021福师<计算机应用基础>在线作业二[满分答案]奥鹏作业满分答案 福师<计算机应用基础>在线作业二-0001 试卷总分:100 得分:100 一.单选题 (共 40 道试 ...
- 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍
游戏开发笔记二十七 Direct3D 11入门级知识介绍 作者:毛星云 邮箱: happylifemxy@163.com 期待着与志同道合的朋友们相互交流 上一节里我们介绍了在迈入Dire ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十七:TFT模块 - 显示
实验二十七:TFT模块 - 显示 所谓TFT(Thin Film Transistor)就是众多LCD当中,其中一种支持颜色的LCD,相较古老的点阵LCD(12864笑),它可谓高级了.黑金的TFT ...
- 计算机在线作业office,16春地大《计算机级等级考试Office》在线作业二.doc
16春地大<计算机级等级考试Office>在线作业二 谋学网 HYPERLINK "" 地大<计算机一级等级考试Offi>在线作业二 一.单选题(共 17 ...
- 计算机应用基础中什么是桌面,福师《计算机应用基础》在线作业二 Windows中进行系统设置的工具集是 用户可以根据自己的爱好更改显示器 键盘 鼠标器 桌面等硬件的设置...
福师<计算机应用基础>在线作业二 Windows中进行系统设置的工具集是 用户可以根据自己的爱好更改显示器 键盘 鼠标器 桌面等硬件的设置 (12页) 本资源提供全文预览,点击全文预览即可 ...
最新文章
- 手把手教你,Java如何实现二维码?【附源码】
- edittext禁止换行符但能自动换行简书_使用n-gram创建自动完成系统
- python函数知识四 迭代器、生成器
- 北斗有 35 颗卫星,而 GPS 有 24 颗卫星,为什么二者数量不同?
- C语言关键字----Const
- grade java_Gradle Java 构建入门
- Kali Linux系统设置中文语言环境-1
- 文件间调用变量(extern,include)[转]
- 从零开始开发标准的s57电子海图第三篇--ECDIS标准(共一百篇)
- bim 水利枢纽 运维_BIM技术与现代化建筑运维管理
- 雷神云手机亚马逊养号替代软件- VMLogin中文版多账号防关联超级浏览器
- TCA9548A IIC多路扩展模块使用
- 红帽的RHCSA、RHCE、RHCA值得报考吗?
- CE游戏修改器制作游戏修改器傻瓜教程
- AMD处理器与INTEL的区别
- 访客预约管理4大难点,帮你逐一破解
- 如何把一个字符串的大小写取反?(大写转小写/小写转大写)
- 2021版!万字UNIX网络编程学习笔记(套接字篇)
- 关于DebugView无法打印出KdPrint信息
- 小程序好看卡片式轮播
热门文章
- django book的实践
- 计算机硬件报警声音,主板报警,详细教您电脑主板报警声的含义介绍
- 数据仓库维度建模——事实表设计
- 自动排课系统的设计与实现 开题报告 java_学校排课系统设计与实现(附源程序)...
- 数据仓库DM、DW和ODS等概念区分
- SpringBoot系统整理|基础篇|黑马视频
- 春节晚报 | 2月6日 星期日 | 短道速滑混合接力中国队夺首金;抖音PC版上架微软应用商店;Meta首次公布元宇宙业绩...
- SonarQube 9.x集成阿里p3c代码规范检测java代码;
- 大数据Spark学习笔记—未更完
- C++单例模式 : 懒汉模式 与 饿汉模式