前言

自己出的一道题,但是申请的时候因为没有说明距离等于代价所以没能通过洛谷的审核

链接

https://www.luogu.org/problemnew/show/T25627

思路

大意就不详细概述了,这是一个需要自己去理解的过程
思路就是用SPFASPFASPFA求价格,再配合并查集跑一遍背包
注意:不用输入输出流可能会超时

动态转移方程

F[j]=max(F[j],F[j−w[i]]+c[i])F[j]=max(F[j],F[j−w[i]]+c[i])

F[j]=max(F[j],F[j-w[i]]+c[i])

代码

#include<cstdio>
#include<queue>//SPFA用到的库
#include<algorithm>
#define r(i,a,b) for(int i=a;i<=b;i++)
#define N 10001//最大点数
#define M 100001//最大边数
using namespace std;int n,m,v,k,t;//基本变量
int tot,l[N],x,y,z;bool vis[N];//邻接表变量
int c[N],w[N],F[M];//大写f是dp数组,小写的是并查集数组,这一行是dp数组
int f[N];//并查集数组
int find(int x){return x==f[x]?x:f[x]=find(f[x]);}//并查集
void judge(int x,int y)//合并
{x=find(x);y=find(y);if(x!=y){f[y]=x;c[x]+=c[y];w[x]+=w[y];//将两个背包合并成一个背包}
}
struct node
{int next,to,w;
}e[2*M];//邻接表
void add(int u,int v,int w)//建图
{e[++tot].next=l[u];e[tot].to=v;e[tot].w=w;l[u]=tot;
}
int read()//输入流
{int d=1,f=0;char c;while (c=getchar(),c<'0'||c>'9') if (c=='-') d=-1;f=(f<<3)+(f<<1)+c-48;while (c=getchar(),c>='0'&&c<='9') f=(f<<3)+(f<<1)+c-48;return d*f;
}
void write(int x)//输出流
{if (!x) {putchar(48);return;}if (!(x/10)) {putchar(x%10+48);return;}elsewrite(x/10);putchar(x%10+48);
}
void Lrz()//输入
{n=read();v=read();m=read();k=read();t=read();r(i,1,n) c[i]=read(),f[i]=i;//初始化+输入r(i,1,v) {x=read();y=read();z=read();add(x,y,z);add(y,x,z);//建图}
}
void Spfa()//最短路计算价值
{queue<int>q;r(i,1,n) w[i]=536870912;//初始化q.push(t);w[t]=0;while(!q.empty())//以下spfa不解释{int u=q.front();q.pop();vis[u]=true;for(int i=l[u];i;i=e[i].next){int len=e[i].w,to=e[i].to;if(w[u]+len<w[to]){w[to]=w[u]+len;if(!vis[to])q.push(to),vis[to]=true;}}vis[u]=false;}
}
void Find_Judge()//并查集部分
{r(i,1,k) judge(read(),read());//合并
}
void dp()//dp
{r(i,1,n)if(f[i]==i)for(int j=m;j>=w[i];j--)F[j]=max(F[j],F[j-w[i]]+c[i]);
}
int main()//主程序
{Lrz();Spfa();Find_Judge();dp();write(F[n]);//输出
}

【SPFA,并查集,dp】黑心商店1相关推荐

  1. POJ 1417 True Liars(路径压缩并查集+DP背包问题)

    POJ 1417 True Liars(路径压缩并查集+DP背包问题) http://poj.org/problem?id=1417 题意: 给出p1+p2个人,其中p1个是好人,p2个是坏人.然后有 ...

  2. 2017.7.15. SPFA + 并查集

    SPFA + 并查集 适用题型:求链型最短路 1.询问多起点,多终点之间的最短路 2.求有几条链构成的图上的最短路时比Dijkstra快. 3.一般当作BFS来用. 样题: 题目描述 成都浣花溪公园是 ...

  3. NOIP 2017 提高组 K: 奶酪 (SPFA || 并查集)

    K: 奶酪 时间限制: 1 Sec  内存限制: 128 MB 提交: 115  解决: 30 [提交][状态][讨论版] 题目描述 现有一块大奶酪,它的高度为 h ,它的长度和宽度我们可以认为是无限 ...

  4. 【并查集+dp】Team

    Team 时间限制: 1 Sec  内存限制: 128 MB 提交: 124  解决: 10 [提交] [状态] [命题人:admin] 题目描述 ACM-ICPC is a interesting ...

  5. P1455-搭配购买【图论,并查集,dp,背包】

    正题 题目链接: https://www.luogu.org/problemnew/show/P1455 大意 有n个商品,给出价值和价格.有m组搭配,如果买了其中一个就得买另一个,给出你拥有的钱,求 ...

  6. POJ 1417 True Liars(带权并查集+DP)

    传送门 Description After having drifted about in a small boat for a couple of days, Akira Crusoe Maeda ...

  7. POJ 1417 True Liars (种类并查集+DP)

    题目:True Liars 题目大意:给出n对关系,p1个好人,p2个坏人.要求根据n对关系中找出好人有哪些,若方案唯一,则逐个输出好人,最后输出end:若方案不唯一/找不到,那么输出no 结论:通过 ...

  8. [Tarjan][并查集][dp] Jzoj P4253 QYQ在艾泽拉斯

    Description 在艾泽拉斯的无尽之海里,有着一群不为人知的由各个种族的冒险者统治的岛屿,这些岛屿都很庞大,足以在上面建造许多的城市,城市之间有一些单向道路连接. 有一天,QYQ无意中发现了这些 ...

  9. POJ 并查集 题目汇总 ——czyuan原创(转)

    继续数据结构的复习,本次的专题是:并查集. 并查集,顾名思义,干的就是"并"和"查"两件事.很多与集合相关的操作都可以用并查集高效的解决. 两个操作代码:    ...

  10. All men are brothers(并查集+思维 好题!!!)

    链接:https://ac.nowcoder.com/acm/contest/889/E 来源:牛客网 Amy asks Mr. B problem E. Please help Mr. B to s ...

最新文章

  1. css浮动+应用(瀑布流效果的实现)
  2. 可视化篇(五)——— python绘制热力图及案例
  3. COLING 2020 | 面向机器阅读理解的双向认知思维网络
  4. 十进制小数转换为二进制
  5. 【年度盘点】最受欢迎的5大Java练习项目
  6. 聚合多个文件_python数据分析与挖掘(二十五)--- Pandas高级处理分组与聚合
  7. java语言发展历程
  8. 算法心得1:由$nlogn$复杂度的LIS算法引起的思考
  9. Python panads数据处理二
  10. OpenAI公布强化学习新算法,可控制复杂机器人
  11. ping命令的作用。
  12. 网站死链检测的软件-网站死链检测的工具
  13. 从0到1手写分布式对象存储系统-05纠删码与数据修复
  14. 数据分析——AB实验
  15. Windows Server 2003 Sp2 雨林木风版
  16. Struts1与Struts2的区别和对比(深度好文)
  17. java系统过载保护_过载保护之常见过载处理
  18. 细化(thinning)
  19. 元学习笔记——MAML
  20. 如何分析关键词的优化难度?

热门文章

  1. Java程序设计实验一 Java环境搭建
  2. Android如何动态申请权限(打电话)
  3. 安装centos7 如何分区
  4. 【观察】引领智慧园区进入400G超宽时代,新华三的底蕴与底气
  5. android绑定文件描述符,认识安卓的文件描述符FileDescriptor
  6. 中国引流海绵行业市场供需与战略研究报告
  7. 虚拟机能装红旗linux吗,在虚拟机中安装红旗LINUX及制作LiveCD.doc
  8. 通达信 python插件选股_[转载]通达信插件选股(基于通达信插件编程规范的简单分析)...
  9. 小米小爱鼠标升级失败解决办法
  10. ZStack Cloud助力Today便利店快速布局新零售