题目大意:给你一个图,要你求出其中1->n路径中乘积最小的一条路

题解:用$log_2$把乘法变成加法,然后记录每个点的前驱,最后求出答案

C++ Code:

#include<cstdio>
#include<cmath>
using namespace std;
const int mod=9987;
int n,m;
int head[1010],cnt;
struct Edge{
int to,cost,nxt;
}e[1000010];
int q[2000010],h,t,res=1;
int tmp[1010][2];
bool v[1010];
double ans[1010];
void addE(int a,int b,int c){
e[++cnt]=(Edge){b,c,head[a]};
head[a]=cnt;
}
void SPFA(int rt){
for (int i=2;i<=n;i++)ans[i]=1000000;
q[++t]=rt;
while (h<t){
int x=q[++h];
v[x]=false;
for (int i=head[x];i;i=e[i].nxt){
int to=e[i].to;double lg=log(e[i].cost);
if (ans[to]>ans[x]+lg){
ans[to]=ans[x]+lg;
tmp[to][0]=x,tmp[to][1]=e[i].cost;
if (!v[to]){
v[to]=true;
q[++t]=to;
}
}
}
}
for (int i=n;i!=1;i=tmp[i][0])res=(res*tmp[i][1])%mod;
printf("%d\n",res);
}
int main(){
scanf("%d%d",&n,&m);
for (int i=0;i<m;i++){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
addE(a,b,c);
}
SPFA(1);
return 0;
}

[洛谷P2384]最短路的更多相关文章

  1. 洛谷 P2384 最短路

    洛谷 P2384 最短路 题目背景 狗哥做烂了最短路,突然机智的考了Bosh一道,没想到把Bosh考住了...你能帮Bosh解决吗? 他会给你10000000000000000000000000000 ...

  2. 洛谷——P2384 最短路

    P2384 最短路 题目背景 狗哥做烂了最短路,突然机智的考了Bosh一道,没想到把Bosh考住了...你能帮Bosh解决吗? 他会给你10000000000000000000000000000000 ...

  3. 洛谷P2384 最短路(dijkstra解法)

    题目背景 狗哥做烂了最短路,突然机智的考了Bosh一道,没想到把Bosh考住了...你能帮Bosh解决吗? 他会给你100000000000000000000000000000000000%10金币w ...

  4. 洛谷P2384 最短路 题解

    题目简叙: 请你求出从1到n的最短路径,其中最短路径☞这条路经过的边的权值的乘积. 题目分析: 很显然,这也是一道经典的单元最短路问题,首先我们可以考虑使用Floyd,显然,这是一个比较无脑简单的最短 ...

  5. 洛谷 P2384 最短路题解

    题目背景 狗哥做烂了最短路,突然机智的考了Bosh一道,没想到把Bosh考住了...你能帮Bosh解决吗? 他会给你100000000000000000000000000000000000%10金币w ...

  6. 洛谷 P2384 最短路 题解

    题面 这道题需要用到一个神奇的知识点:log(n*m)=log(n)+log(m): 所以对所有边权取个log,然后算log的最短路的同时维护乘积即可 #include <bits/stdc++ ...

  7. 洛谷P1144 最短路计数(SPFA)

    To 洛谷.1144 最短路计数 题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 输入第一行包含2个正整数N,M ...

  8. 洛谷 1144 最短路计数 bfs

    洛谷1144 最短路计数 传送门 其实这道题目的正解应该是spfa里面加一些处理,,然而,,然而,,既然它是无权图,,那么就直接bfs了,用一个cnt记录一下每一个点的方案数,分几种情况讨论一下转移, ...

  9. 洛谷2483 k短路([SDOI2010]魔法猪学院)

    题目请戳这里 一句话题意: 给你一张n个节点,m条单向边的图,求1到n第k短的路. emmm,纪念第一个黑题(我是真的菜啊!!) 这题目还是很难的,本蒟蒻只会被洛谷卡掉的A(所以就愉快地特判了),首先 ...

随机推荐

  1. Java处理中文乱码问题

    package servlet; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.ser ...

  2. Angular2中使用Jsonp

    除了引入HttpModule模块,还要引入 JsonpModule 模块 import { HttpModule, JsonpModule } from '@angular/http'; Observ ...

  3. Idea 2017 激活方法

    http://www.cnblogs.com/suiyueqiannian/p/6754091.html

  4. 常用 css html 样式

    CSS基础必学列表 CSS width宽度 CSS height高度 CSS border边框 CSS background背景 CSS sprites背景拼合 CSS float浮动 CSS mar ...

  5. hack游戏攻略(梦之光芒黑客小游戏)

    2019.2.11 继续玩~~还是黑客游戏闯关类的 地址:http://monyer.com/game/game1/ 直接查看页面代码: first.php就是了: 查看源代码: 这里尝试输入 两个空 ...

  6. JAVA 反射之Method

    ★ Method没有构造器,只能通过Class获取. 重点方法: class.getDeclaredMethods():获取所有方法. class.getDeclaredMethod(String n ...

  7. mysql 时间相关sql , 按天、月、季度、年等条件进行查询

    #今天 select * from or_order_task where to_days(created_date)=to_days(now()); #近七天 select * day )<= ...

  8. web视频播放

    webm.mp4/h264    video.js hevc libde265.js hls/m3u8 hls.js

  9. spoj1026 favorite dice

    #include <bits/stdc++.h> using namespace std; int n,t; ; double dp[N]; /* 甩一个n面的骰子,问每一面都被甩到的需要 ...

  10. ORACLE中order by造成分页不正确原因分析

     工作中遇到的问题: 为调用方提供一个分页接口时,调用方一直反应有部分数据取不到,且取到的数据有重复的内容,于是我按以下步骤排查了下错误. 1.检查分页页码生成规则是否正确. 2.检查SQL语句是否正 ...