hdu3696(spfa求最长路)
来源:互联网 发布:crf算法原理 编辑:程序博客网 时间:2024/06/06 07:51
链接:点击打开链接
题意:给出n个物品的价值和数量,有m个关系,每种关系的格式为(a0,b1,a1,b2,a2,…,bk-1,ak-1)表示1个ai可以转换成bi+1个ai+1,问最后n个物品转换后的最大价值和
代码:
#include <set>#include <map>#include <queue>#include <vector>#include <math.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>using namespace std;const int siz=10005;int n,m,vis[siz];double d[siz],num[siz];struct node{ int to; double val;};vector<node> G[siz];void spfa(int S){ //直接spfa求一下最长 double w; int i,u,v; queue<int> qu; for(i=0;i<=n;i++) d[i]=vis[i]=0; vis[S]=1; qu.push(S); while(qu.size()){ u=qu.front(); qu.pop(); vis[u]=0; for(i=0;i<G[u].size();i++){ v=G[u][i].to; w=G[u][i].val; if(d[v]<d[u]+w){ d[v]=d[u]+w; if(vis[v]==0){ vis[v]=1; qu.push(v); } } } }}int main(){ //因为每个物品转化需要所有的汇率相乘并乘价值 int i,j,k,x,y; //所以我们可以讲每个数取对数,这样就变成了加 double u,v,w,ans; //法,但是如果我们正向建图,那么每个点都需要 while(scanf("%d",&n)!=EOF&&n){ //求一次最长路,而且最值也不好维护,所以我们 for(i=0;i<=n;i++) //填一个源点,并反向建图求最长路就解决了每个 G[i].clear(); //求最长路的问题,思想跟poj3268基本是一样的 for(i=1;i<=n;i++){ scanf("%lf%lf",&u,&num[i]); G[0].push_back((node){i,log(u)}); } scanf("%d",&m); while(m--){ scanf("%d",&k); scanf("%d",&x); for(i=1;i<=k-1;i++){ scanf("%lf%d",&u,&y); G[y].push_back((node){x,log(u)}); x=y; } } spfa(0); ans=0; for(i=1;i<=n;i++) //最后在转换回来 ans+=(exp(d[i])*num[i]); printf("%.2lf\n",ans); } return 0;}
阅读全文
0 0
- hdu3696(spfa求最长路)
- spfa求最长路
- hdu3696Farm Game(SPFA求最长路)
- hdu 1534(差分约束+spfa求最长路)
- hdu 6201 transaction transaction transaction (spfa求最长路)
- SDUT AOE关键路径 SPFA求最长路(倒序建路)
- poj 3592(强连连通分量+缩点+重建图形+spfa求最长路)
- zoj 3088 Easter Holidays (SPFA 求最长路 最短路 + 打印路径)
- POJ 3160 Father Christmas flymouse tarjan缩点+spfa求最长路
- Bellman_Ford变形求最长路+正权回路或spfa——POJ 1860
- poj 3160 Father Christmas flymouse (SCC缩点+SPFA求最长路)
- hdoj 1534 Schedule Problem 【差分约束】【SPFA求最长路】
- Easter Holidays(二次spfa求最短路、最长路+打印路径)
- poj 3160 Father Christmas flymouse 【SCC缩点 + 虚拟源点SPFA求最长路】
- POJ 3126 --Father Christmas flymouse【scc缩点构图 && SPFA求最长路】
- POJ 3592--Instantaneous Transference【SCC缩点新建图 && SPFA求最长路 && 经典】
- poj 3592 Instantaneous Transference (借助强连通分量求缩点在建图spfa求最长路)
- POJ 1716(spfa最长路
- 抓取进程和系统cpu loading信息,debug相关
- 在线实时数据清洗架构(3)—— 缓存选型 Redis
- JustOj1228: 大小写转换
- 关于 mina netty activiemq RabbitMq nio 的比较 区别 应用
- springmvc中appllicationcontext.xml配置文件
- hdu3696(spfa求最长路)
- 使用LabVIEW和西门子S7-200PLC
- 【二十二】设计模式——基础
- Bom编程·事件编程·Dom编程 学习
- 纳税服务系统【统计图Fusionchart】
- 流水线和吞吐率
- 自己的事情
- php session的一点要点
- 51nod1289 大鱼吃小鱼