洛谷 1875 佳佳的魔法药水
//此题像游戏里的装备合成树。类似于树形结构,但又存在环。所以不能用树形DP,考虑贪心的思想,每次用一个当前最小代价得到药水(一定是当前最优价格)+已经确定药水价格的药水来合成另一个药水,更新他的价格,这就是Dijkstra的思想。
#include<bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
const int maxn = 1010;
int n, p[maxn], merg[maxn][maxn], ans[maxn];
bool v[maxn];inline void Dijkstra(){for(int i = 1, now; i < n; i++){int low = inf;for(int j = 1; j <= n; j++)if(!v[j] && p[j] < low){now = j;low = p[j];}v[now] = 1;for(int j = 1; j <= n; j++)if(v[j] && merg[now][j]){if(p[now] + p[j] < p[merg[now][j]]){p[merg[now][j]] = p[now] + p[j];ans[merg[now][j]] = ans[now] * ans[j];}else if(p[now] + p[j] == p[merg[now][j]])ans[merg[now][j]] += ans[now] * ans[j];}}
}int main(){scanf("%d", &n);for(int i = 1; i <= n; i++){scanf("%d", &p[i]);ans[i] = 1;}int x, y, z;while(scanf("%d%d%d", &x, &y, &z) != EOF)merg[x+1][y+1] = merg[y+1][x+1] = z+1;Dijkstra();printf("%d %d\n", p[1], ans[1]);return 0;
}
洛谷 1875 佳佳的魔法药水相关推荐
- 洛谷:P1875 佳佳的魔法药水(有向有环图 + Dijkstra变式)
相信的心是你的魔法 | 信じの心は君の魔法 题意: 药水可以直接买,也可以由两种其他药水配置而来,问配置出 0号药水 的最小价钱 和 最小价的方案数 思路: 义眼拓扑,但!在题意没有明确强调 有向无环 ...
- 洛谷—— P1875 佳佳的魔法药水
P1875 佳佳的魔法药水 题目描述 发完了 k 张照片,佳佳却得到了一个坏消息:他的 MM 得病了!佳佳和大家一样焦急 万分!治好 MM 的病只有一种办法,那就是传说中的 0 号药水 --怎么样才能 ...
- 洛谷P1875 佳佳的魔法药水
P1875 佳佳的魔法药水 链接:https://www.luogu.org/problemnew/show/P1875 题目背景 发完了 k 张照片,佳佳却得到了一个坏消息:他的 MM 得病了!佳佳 ...
- 洛谷 P1875 佳佳的魔法药水(最短路) 题解
题目来源: https://www.luogu.org/problemnew/show/P1875 题目描述: 题目背景 发完了 k 张照片,佳佳却得到了一个坏消息:他的 MM 得病了!佳佳和大家一样 ...
- 「Vijos 1285」「OIBH杯NOIP2006第二次模拟赛」佳佳的魔法药水
佳佳的魔法药水 背景 发完了k张照片,佳佳却得到了一个坏消息:他的MM得病了!佳佳和大家一样焦急万分!治好MM的病只有一种办法,那就是传说中的0号药水--怎么样才能得到0号药水呢?你要知道佳佳的家境也 ...
- [NDK 佳佳的魔法药水]
[题目]:佳佳的魔法药水 [来源]:NDK [关键字]:图论 构图 //================================================================ ...
- vijos 1282128312841285 佳佳的魔法照片/魔法药水/魔杖/魔法阵
题目链接: https://vijos.org/p/1282 https://vijos.org/p/1283 https://vijos.org/p/1284 https://vijos.org/p ...
- P1875 佳佳的魔法药水
P1875 佳佳的魔法药水 题目描述 发完了 k 张照片,佳佳却得到了一个坏消息:他的 MM 得病了!佳佳和大家一样焦急 万分!治好 MM 的病只有一种办法,那就是传说中的 0 号药水 --怎么样才能 ...
- vijosP1285 佳佳的魔法药水
vijosP1285 佳佳的魔法药水 链接:https://vijos.org/p/1285 [思路] 图论思想. 很巧妙. 如A+B=C,将AB之间连边,边权为C,用以找相连物品与合成物. 用Dij ...
最新文章
- 一段神奇的c代码错误分析
- 成功解决CatBoostError: Invalid type for cat_feature cat_features must be integer or string, real number
- C#MUD英雄大作战(副源码文件连接)
- 那些年我用过的开源软件、框架
- Kettle, Solr
- LiveWriter测试
- 选择交换机需要了解的一些性能参数
- Python核心团队计划2020年停止支持Python2,NumPy宣布停止支持计划表
- python asyncio 并发编程_asyncio并发编程
- Cocos2d-x3.1TestCpp之NewRenderTest Demo分析
- ROS ( C++) 订阅一个机器人的位置并发布给另外一个机器人作为目标goal
- 数据结构与算法题整理
- 无法抗拒Minecraft给予超高的自由度和探索-微访谈
- tongweb自动部署_将web应用迁到TongWeb
- mysql sql优化面试题_SQL优化(面试题)
- mysql查询各专业人数_SQL统计各专业学生人数
- Exploring the Emerging Type of Comment for Online Videos: DanMu
- 大数据技术原理与应用第10讲:Spark
- C++ 求最大公因数
- java se 基础
热门文章
- 乱七八糟: 人鱼世界 (梦境)
- html圆角边框背景颜色,CSS之圆角边框渐变的实现
- 通过ReleaseId创建现有项目的KieContainer的时候,提示Cannot find KieModule
- 【植物大战僵尸-2】实现一炮秒杀僵尸
- string复制部分内容
- 基于模板的知识问答方法
- ime-mode 不支持Chrome | 输入框限制输入语言
- 最新 UltraEdit 24.20 注册成功经验分享
- 关于WIN7输入法的小问题
- 汉字转拼音,文字转语音tts (语音技术、语音识别),Asr/tts,变声