2月4日 考试——迟到的 ACX
迟到的 ACX
时限:1s
内存限制:128MB
题目描述:
今天长沙下雪了,小 ACX 在上学路上欣赏雪景,导致上学迟到,愤怒的佘总给 ACX 巨佬出了一个题目想考考
他,现在他找到你,希望你能帮帮他。
对于一张有向图,要你求图中最小环的平均值最小是多少,即若一个环经过 k 个节点,那么这个环的平均值为
环上 k 条边权的和除以 k,现要求其中的最小值。
考虑到在座的各位都是巨佬,本题需要保留小数点后面八位。
读入格式:
第一行 2 个正整数,分别为 n 和 m ,并用一个空格隔开,分别表示图中有 n 个点 m 条边。 接下来 m 行,
每行 3 个数 i,j,w 表示有一条边(i,j)且该边的权值为 w。输入数据保证图连通,存在环且有一个点能到达其他所有
点。
输出格式:
请输出一个实数及最小环的平均值,要求输出到小数点后 8 位。
样例输入:
4 5
1 2 5
2 3 5
3 1 5
2 4 3
4 1 3
样例输出:
3.66666667
数据范围:
100%的数据: n<=3000 m<=10000 |wi,j|<=10^7
Solution:
看到这题一个很好的思路就是二分答案,把问题转化成判定性问题。二分答案后,将每条边的边权都减去答案Ans,那么问题就转变成了判定一幅图中是否存在负环,一个经典的做法就是用Spfa,判断一个点有没有被加入超过N次,如果有则存在负环,可是这个复杂度是O(NM)的,不能通过本题。还有一种判负环的思想就是用Dfs来跑Spfa,然后一个点重复出现时就存在负环。具体实现可以一开始把所有点的初始距离设为0,然后枚举以每个点位开头是否存在负环,因为一个负环总有一个位置开始到每个点的路径都是负数。用这种做法就可以通过本题了。
代码:
/*本题不要想歪,直接二分+spfa,不多bb——by 520*/
#include<bits/stdc++.h>
#define il inline
#define ll long long
#define debug printf("%d %s\n",__LINE__,__FUNCTION__)
using namespace std;
int n,m,cnt,h[];
double dis[],ans;
struct edge{
int to,net;double val;
}e[];
bool vis[],bj;
il void add(int u,int v,double w)
{
e[++cnt].net=h[u],h[u]=cnt,e[cnt].to=v,e[cnt].val=w;
}
il void spfa(int x)
{
vis[x]=;
for(int i=h[x];i;i=e[i].net){
int v=e[i].to;
if(dis[x]+e[i].val-ans<dis[v]){
if(vis[v]){ bj=;return;}
dis[v]=dis[x]+e[i].val-ans;
spfa(v);
if(bj)return;
}
}
vis[x]=;
}
il bool check()
{
memset(dis,,sizeof(dis));
memset(vis,,sizeof(vis));
for(int i=;i<=n;i++){
bj=;spfa(i);
if(bj)return ;
}
return ;
}
int main()
{
freopen("late.in","r",stdin);
freopen("late.out","w",stdout);
scanf("%d%d",&n,&m);
int u,v;double w;
for(int i=;i<=m;i++)scanf("%d%d%lf",&u,&v,&w),add(u,v,w);
double l=-,r=;
while(r-l>1e-){
ans=(l+r)/;
if(check())r=ans;
else l=ans;
}
printf("%.8lf",ans);
return ;
}
2月4日 考试——迟到的 ACX的更多相关文章
- 7月13日考试 题解(DFS序+期望+线段树优化建图)
T1 sign 题目大意:给出一棵 N 个节点的树,求所有起点为叶节点的有向路径,其 上每一条边权值和的和.N<=10000 水题.考试的时候毒瘤出题人(学长orz)把读入顺序改了一下,于是很多 ...
- 3月28日考试 题解(二分答案+树形DP+数学(高精))
前言:考试挂了很多分,难受…… --------------------- T1:防御 题意简述:给一条长度为$n$的序列,第$i$个数的值为$a[i]$.现让你将序列分成$m$段,且让和最小的一段尽 ...
- 2月24日考试——ZYYS
LSGJ zyys 战队的 CYA 小垃圾,被各位神佬出的题目搞得心态爆炸.于是他模仿了蔡老师给了你两个整数 n 和 m .让你计算字母表大小为 m ,(即可用 m 个字母)长度为 n ,不存在长度至 ...
- 1月24日考试(ftp密码)
错因分析 ♦对文件的保存不够恰当,例如第一题和第三题的题目,我是真的很愤怒,第一题在我写了一个多小时,终于样例成功.可是当我再一次打开文件时,里面只有我最开始的代码,谁可以告诉我这是为什么(我绝对保存 ...
- 7月15日考试 题解(链表+状压DP+思维题)
前言:蒟蒻太弱了,全打的暴力QAQ. --------------------- T1 小Z的求和 题目大意:求$\sum\limits_{i=1}^n \sum\limits_{j=i}^n kth ...
- 3月21日考试 题解(数据结构+区间DP+贪心)
前言:T3写挂了,有点难受. --------------- T1 中位数 题意简述:给你一段长度为$n$的序列,分别输出$[1,2k-1]$的中位数$(2k-1\leq n)$. --------- ...
- 6月28日考试 题解(GCD约分+动态规划+树状数组二维偏序)
前言:考的一般般吧……T3暴力没打上来挺可惜的,到手的75分没了. ---------------------------------- T1 [JZOJ4745]看电影 Description 听说 ...
- 微软SQL Server认证最新信息(17年5月22日更新),感兴趣的进来看看哟
之前一直有在关注微软认证的一些消息,由于最新的SQL Server认证加入了2016的相关内容,导致课程资料需要大部分更新,但是微软更新相对比较慢,并且经常改版,目前发现的最新的MCP Cert Pa ...
- JZOJ2020年10月5日提高B组反思
2020年10月5日提高B组反思 T1 考试的时候想简单了 觉得把跟没有攻占的点相连的边留下就可以了 没有考虑到最小 WA&RE 10 T2 没有思路 就直接从中间往后枚举分解处 蜜汁错误 W ...
随机推荐
- 【转载】值得推荐的C/C++框架和库
原文:值得推荐的C/C++框架和库 值得学习的C语言开源项目 Libevent libev是一个开源的事件驱动库,基于epoll,kqueue等OS提供的基础设施.其以高效出名,它可以将IO事件,定时 ...
- 牛客小白月赛9 A签到(分数取模,逆元)
传送门 对分母求一下逆元,把除法取模变成乘法取模,逆元介绍看这里 这种方法只适合模为质数的情况 #include<bits/stdc++.h> using namespace std; ; ...
- 获取json键值对的对应字符串
获取json中的姓名 json串ac 关键字key public class Json { public static String json(String key;String ac) { JS ...
- Centos6升级至openssh-7.5p1
最近公司有几台服务器需要搬至甲方(政府单位),所以在安装服务时用的是16年的openssh7.3pl, 今天通知我们有漏洞,需要再一次升级,看到官方文档上版本已升级至7.5,所以干脆直接搞7.5 具体 ...
- Spark入门(Python)
Hadoop是对大数据集进行分布式计算的标准工具,这也是为什么当你穿过机场时能看到”大数据(Big Data)”广告的原因.它已经成为大数据的操作系统,提供了包括工具和技巧在内的丰富生态系统,允许使用 ...
- es6 babel编译
本文主要参照阮一峰的es6入门,为提高自己写了一份随笔. 原文地址请戳这里 ECMAScript 6 入门 ECMAScript 6是JavaScript语言的下一代标准.因为当前版本的ES6是在2 ...
- 城联数据TSM技术方案起底
近日,城联数据有限公司与中国电信签订了<基于NFC技术的公交业务的合作协议>.双方基于NFC技术开展互联互通城市公交卡业务合作,实现符合住房和城乡建设部城市公用事业互联互通卡系列标准的移动 ...
- Asphalting Roads(翻译!)
Description City X consists of n vertical and n horizontal infinite roads, forming n × n intersectio ...
- Scrum立会报告+燃尽图(十月二十六日总第十七次)
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2246 项目地址:https://git.coding.net/zhang ...
- Shell脚本初学习
第一个shell程序运行,教程来自:http://jingyan.baidu.com/article/8cdccae947f83e315413cd05.html 代码如下: #!/bin/sh tou ...