Luogu2164 SHOI2007 交通网络 期望、BFS、拓扑排序
题目还算不难吧
首先我们枚举点$i$,将其他所有点到这个点的最短路求出来
然后我们在这一次建出的最短路$DAG$的反图上进行拓扑排序。假设我们算到了点$j$,点$j$的人流量为$t_j$,点$j$连出去的边到达的点为点集$\{v\}$,那么对于每一个点$u \in \{v\}$,边$(j,u)$的流量就会增加$\frac{t_j}{|\{v\}|}$,$t_u$会加上$\frac{t_j}{|\{v\}|}$
总时间复杂度$O(N^2)$
#include<bits/stdc++.h>
#define ld long double
using namespace std;
inline int read(){
;
char c = getchar();
while(!isdigit(c)) c = getchar();
) + (a << ) + (c ^ ') , c = getchar();
return a;
}
inline int max(int a , int b){
return a > b ? a : b;
}
struct Ed{
int start , end , upEd;
}ans[];
] , ifRail[][];
];
] , minRoute[];
ld peo[][] , To[][];
struct cmp{
bool operator() (const int& a, const int& b ){
return minRoute[a] < minRoute[b];
}
};
int main(){
int N = read() , M = read();
; i <= M ; i++){
int a = read() , b = read();
ans[(i << ) - ].start = a;
ans[(i << ) - ].end = b;
ans[(i << ) - ].upEd = firEd[a];
firEd[a] = (i << ) - ;
ans[i << ].start = b;
ans[i << ].end = a;
ans[i << ].upEd = firEd[b];
firEd[b] = i << ;
ifRail[a][b] = ifRail[b][a] = ;
}
; i <= N ; i++)
; j <= N ; j++) To[i][j] = read();
; i <= N ; i++){
memset(minRoute , 0x3f , sizeof(minRoute));
memset(Times , , sizeof(Times));
minRoute[i] = ;
Times[i] = ;
queue < int > q;
priority_queue < int , vector < int > , cmp > q1;
q.push(i);
while(!q.empty()){
int t = q.front();
q.pop();
;
for(int j = firEd[t] ; j ; j = ans[j].upEd)
){
minRoute[ans[j].end] = minRoute[t] + ;
Times[ans[j].end] = Times[t];
q.push(ans[j].end);
f = ;
}
){
Times[ans[j].end] += Times[t];
f = ;
}
if(!f) q1.push(t);
}
memset(vis , , sizeof(vis));
vis[i] = ;
while(!q1.empty()){
int t = q1.top();
q1.pop();
; j <= N ; j++)
){
ld t1 = (ld)To[i][t] * Times[j] / Times[t];
peo[j][t] += t1;
peo[t][j] += t1;
To[i][j] += t1;
if(!vis[j]){
vis[j] = ;
q1.push(j);
}
}
}
}
; i <= M ; i++)
cout << ) << peo[ans[i << ].start][ans[i << ].end] + 1e- << endl;
;
}
Luogu2164 SHOI2007 交通网络 期望、BFS、拓扑排序的更多相关文章
- [LuoguP2164][SHOI2007]交通网络_拓扑排序_概率期望
交通网络 题目链接:https://www.luogu.org/problemnew/solution/P2164 数据范围:略. 题解: 直接算不好算,我们考虑建反图然后$Toposort$. 这样 ...
- C. Journey bfs 拓扑排序+dp
C. Journey 补今天早训 这个是一个dp,开始我以为是一个图论,然后就写了一个dij和网络流,然后mle了,不过我觉得如果空间开的足够的,应该也是可以过的. 然后看了题解说是一个dp,这个dp ...
- uvaLA4255 Guess BFS+拓扑排序
算法指南白书 思路:“连续和转化成前缀和之差” #include <stdio.h> #include <string.h> #include <iostream> ...
- hihoCoder1343 : Stable Members【BFS拓扑排序】
题目链接:https://hihocoder.com/problemset/problem/1343 #1343 : Stable Members 时间限制:10000ms 单点时限:1000ms 内 ...
- CH 2101 - 可达性统计 - [BFS拓扑排序+bitset状压]
题目链接:传送门 描述 给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量.N,M≤30000. 输入格式 第一行两个整数N,M,接下来M行每行两个整数x,y,表示从x到y的一条 ...
- hihocoder 1174 [BFS /拓扑排序判断是否有环]
hihocoder 1174 [算法]: 计算每一个点的入度值deg[i],这一步需要扫描所有点和边,复杂度O(N+M). 把入度为0的点加入队列Q中,当然有可能存在多个入度为0的点,同时它们之间也不 ...
- Going from u to v or from v to u?_POJ2762强连通+并查集缩点+拓扑排序
Going from u to v or from v to u? Time Limit: 2000MS Memory Limit: 65536K Description I ...
- 【ZOJ - 3780】 Paint the Grid Again (拓扑排序)
Leo has a grid with N × N cells. He wants to paint each cell with a specific color (either black or ...
- [LeetCode] 207. 课程表(拓扑排序,BFS)
题目 现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课程总量 ...
随机推荐
- 微软Azure AspNetCore微服务实战 第一期
微服务大家已经不在陌生了,相对传统单体架构其带来了更大的灵活性与多方位的效率提升. 2017官方发布了EshopOnContainers的微服务项目,其结合了.Net Core.Azure.Docke ...
- Linux 下tomcat 出现 java.lang.OutOfMemoryError: unable to create new native thread
问题现象: Tomcat(8.5.13)部署了SuperMap iServer,并发用户在100左右.系统运行一段时间后,服务崩溃.异常提示 问题分析: 1.看到日志中的提示信息后,认为是系统内存不足 ...
- Git应用--04遇到冲突解决办法git stash(转载)
git merge git pull时候遇到冲突解决办法git stash https://www.cnblogs.com/juandx/p/5362723.html 在使用git pull代码时,经 ...
- Flutter 布局(十)- ListBody、ListView、CustomMultiChildLayout详解
本文主要介绍Flutter布局中的ListBody.ListView.CustomMultiChildLayout控件,详细介绍了其布局行为以及使用场景,并对源码进行了分析. 1. ListBody ...
- 数据层的多租户浅谈(SAAS多租户数据库设计)
在上一篇“浅析多租户在 Java 平台和某些 PaaS 上的实现”中我们谈到了应用层面的多租户架构,涉及到 PaaS.JVM.OS 等,与之相应的是数据层也有多租户的支持. 数据层的多租户综述 多租户 ...
- 【HANA系列】SAP HANA XS使用JavaScript数据交互详解
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用Jav ...
- Fedroa 28 php 和 mail 命令,邮件发不出去
问题:在配置服务中,发现本地命令mail 和 php 邮件函数的邮件发送不出去. 解决方案: 安装 MTA 服务: postfix , sendmail 等. MTA 为 邮件传输代理 想要了解Lin ...
- 【第一章】zabbix3.4监控WindowsCPU使用率磁盘IO磁盘事件日志监控阈值邮件报警详细配置
Windows安装zabbix-agent 监控Windows-CPU使用率 监控Windows-磁盘IO性能监控 监控Windows/Linux-磁盘触发器阈值更改 监控Windows-网卡自动发现 ...
- SVN服务端VisualSVN数据转移说明
两台服务器,进行SVN的迁移: 系统平台:windows server 2008 and windows server 2012 版本库:meishu 源服务器:192.168.0.245 目标服务器 ...
- January 27th, 2018 Week 04th Saturday
How long is forever? Sometimes, just one second. 永远有多久?有时候只是一秒. Just one second can make your life t ...