CF416E题解
题意:对于所有的 \((u,v)\),询问有多少条边在这两个点的最短路边集之并内。
考虑对于每一个 \(u\) 建立最短路 DAG 图,问题变成询问唯一的度数为 \(0\) 的节点到所有节点路径的并集有多少条边。
倒是很容易想到用 bitset 去做,不过复杂度是 \(O(\frac {n^4} {\omega})\),应该跑不过去。我们注意到这题 \(O(n^3)\) 可过,所以考虑有没有 \(O(n^2)\) 的暴力。
由于枚举点对是 \(O(n^2)\) 的,考虑把边的计数转化到点上。
令 \(sum[u]\) 表示 \(u\) 的入度,那么 \((u,v)\) 的路径上有多少条边就转化成了路径并集的权值和,此时就可以使用枚举点对做掉了。
题外话:能不能有更快的做法?
我们发现对于 \(u\) 需要枚举的点一定在其的“子树”之内,所以考虑维护一下子树集合。
然后我们发现 bitset 可以胜任这份工作,不过复杂度是 \(O(\frac {n^3} {\omega}+n^3)\)
笔者只想快点儿做掉这道题,而且建图的话代码太长了,所以只写了 Floyd 的暴力。
#include<cstdio>
typedef unsigned uint;
const uint M=505;
uint n,m,sum[M],a[M][M],d[M][M],ans[M];
inline uint min(const uint&a,const uint&b){
return a>b?b:a;
}
signed main(){
register uint i,j,u,v,val;
scanf("%u%u",&n,&m);
for(i=1;i<=n;++i){
for(j=1;j<=n;++j)a[i][j]=a[j][i]=d[i][j]=d[j][i]=0x7fffffff;
d[i][i]=0;
}
for(i=1;i<=m;++i)scanf("%u%u%u",&u,&v,&val),a[u][v]=a[v][u]=d[u][v]=d[v][u]=min(a[u][v],val);
for(i=1;i<=n;++i){
for(u=1;u<=n;++u){
for(v=1;v<=n;++v){
d[u][v]=min(d[u][v],d[u][i]+d[i][v]);
}
}
}
for(i=1;i<=n;++i){
for(u=1;u<=n;++u)sum[u]=ans[u]=0;
for(u=1;u<=n;++u){
for(v=1;v<=n;++v){
if(d[i][u]+a[u][v]==d[i][v])++sum[v];
}
}
for(u=1;u<=n;++u){
for(v=1;v<=n;++v){
if(d[i][u]+d[u][v]==d[i][v])ans[v]+=sum[u];
}
}
for(u=i+1;u<=n;++u)printf("%u ",d[i][u]==0x7fffffff?0:ans[u]);
}
}
CF416E题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
随机推荐
- 导出SQL语句
转载请注明来源:https://www.cnblogs.com/hookjc/ if(!($db_conn=mysql_connect($db_server,$db_name,$db_pass))){ ...
- json解析出现:java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to XXX
感谢大佬:https://blog.csdn.net/one_ink/article/details/99817676 一.出错原因 当我们利用json解析中的toBean方法时,如果它的属性里面包含 ...
- web容器、sevlet容器、spring容器、springmvc容器之间的关系
原文链接:http://www.cnblogs.com/jieerma666/p/10805966.html https://blog.csdn.net/zhanglf02/article/detai ...
- Apache——网页优化与安全
Apache--网页优化与安全 1.Apache 网页优化概述 2.网页压缩 3.网页缓存 4.隐藏版本信息 5.Apache 防盗链 1.Apache 网页优化概述: 企业中,部署Apache后只采 ...
- 对于Web性能优化, 了解和经验
我们在发布项目之前压缩CSS和JavaScript源代码,这样文件体积就变小了,用户加载必要资源所花的时间也就更短了. 压缩源码和图片 JavaScript文件源代码可以采用混淆压缩的方式,CSS文件 ...
- nginx实现后端tomcat的负载均衡调度
一.编译安装nginx 请跳转查阅:编译安装nginx 二.tomcat的二进制安装 请跳转查阅:二进制安装tomcat 三.配置nginx代理 # cat /apps/nginx/conf/ngin ...
- web测试学习大纲
Web测试 Web测试体系介绍 网络协议 Web开发 基础 原理 前端分析 安全性测试 可用性,兼容性 功能测试(同系统测试) 理解网络协议 互联网历史沿革 Web系统基础 Web核心技术 web服务 ...
- Sublime Text3安装及汉化
Sublime Text 是一款流行的代码编辑器软件,也是HTML和散文先进的文本编辑器,可运行在Linux,Windows和Mac OS X.也是许多程序员喜欢使用的一款文本编辑器软件. 下载地址: ...
- uniapp 微信发送订阅消息
这篇主要针对小程序进行演示,既然是发送消息,那么就有三个问题.发送什么内容,给谁发送,怎么发送!往下一条一条解决. 发送什么消息内容 - 通过微信公众号平台 选择对应的消息模板 选择以后在我的模板里面 ...
- 部署 Docker Registry 并配置认证登录
文章目录 搭建 Docker Registry 创建本地映射目录 启动 Docker Registry 配置 Docker Registry 配置 Docker Registry 认证 启动带认证的 ...