正题


题目大意

有若干个省,每个省有些城市,每个省有优惠Xi%X_i\%Xi​%,若在i省内的道路就优惠Xi%X_i\%Xi​%,若在i到j省的道路就优惠(Xi%+Yi%)2\frac {(X_i\%+Y_i\%)}22(Xi​%+Yi​%)​,求一个区间[L,R][L,R][L,R]边权在这个区间内就可以移动。
要求在可以到达终点的情况下:

  1. LLL最大。
  2. LLL最大的情况下RRR最小。

解题思路

先处理所有边权,然后二分LLL,之后求是否可以到达,找到最大的LLL之后计算最小的RRR。


code

#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstring>
#define M 100010
#define N 50010
using namespace std;
struct line{int from,to;double w;int next;
}a[M*2];
queue<int> q;
int n,m,x,y,w,tot,ans;
int ls[N],mark[N],h[N],s,t,L,R;
double f[N];
bool v[N];
void addl(int x,int y,double w)
{a[++tot]=(line){x,y,w,ls[x]};ls[x]=tot;a[++tot]=(line){y,x,w,ls[y]};ls[y]=tot;
}
bool spfa(int up)//SPFA
{q.push(s);v[s]=true;for(int i=1;i<=ans;i++) f[i]=2147483647/3;f[s]=0;while(!q.empty()){int x=q.front();q.pop();for(int i=ls[x];i;i=a[i].next){int y=a[i].to;if(a[i].w>=up&&max(a[i].w,f[x])<f[y]){f[y]=max(a[i].w,f[x]);if(!v[y]){v[y]=true;q.push(y);}}}v[x]=false;}return !(f[t]>=2147483647/4);
}
void answer()//二分答案
{while(L<R){int mid=(L+R+1)/2;if(spfa(mid)) L=mid;else R=mid-1;}spfa(L);if(f[t]!=(int)f[t]) f[t]++;R=(int)f[t];
}
int main()
{//freopen("trip.in","r",stdin);//freopen("trip.out","w",stdout);scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){scanf("%d%d%d",&x,&y,&w);addl(x,y,w);R=max(R,w);}for(int i=1;i<=n;i++){scanf("%d",&t);ans+=t;for(int j=1;j<=t;j++){scanf("%d",&x);mark[x]=i;}}for(int i=1;i<=n;i++)scanf("%d",&h[i]);for(int i=1;i<=tot;i++)//计算边权{x=mark[a[i].from];y=mark[a[i].to];a[i].w*=(h[x]+h[y])/2.0/100.0;}scanf("%d%d",&s,&t);answer();printf("%d %d\n",L,R);
}

nssl1155-遨游【二分答案,SPFA】相关推荐

  1. [洛谷1462 ]通往奥格瑞玛的道路---二分答案+spfa

    题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 题目描述 在艾泽拉斯, ...

  2. 洛谷P1462 通往奥格瑞玛的道路 二分答案+最短路SPFA

    洛谷P1462 通往奥格瑞玛的道路 二分答案+最短路SPFA 二分交费最多的一次的钱数 然后只将符合要求的边加入图中 如果到终点的最短路大于等于血量 或者直接起点不能到达终点 那么说明不符合要求 需要 ...

  3. [APIO2017]商旅——分数优化+floyd+SPFA判负环+二分答案

    题目链接: [APIO2017]商旅 枚举任意两个点$(s,t)$,求出在$s$买入一个物品并在$t$卖出的最大收益. 新建一条从$s$到$t$的边,边权为最大收益,长度为原图从$s$到$t$的最短路 ...

  4. 牛客多校2 - Link with Game Glitch(spfa求正环,套汇,二分答案)

    https://ac.nowcoder.com/acm/contest/33187/D 题意 给定 n 种物品,一共 m 种转换方案. 每种转换方案给出四个数 a , b , c , d a, b, ...

  5. 解题报告:luoguP2868 Sightseeing Cows G(最优比率环,负环判定,二分答案)

    根据题意,我们要环上各点权值之和除以各边权值之和最大. 求最大答案,很明显可以使用二分答案.那么我们假设当前答案为 x,如果有更大的答案,那么方程就可以按下图转换: 也就是说如果有更大的答案,则有一个 ...

  6. [HNOI2009]最小圈 (二分答案+负环)

    题面:[HNOI2009]最小圈 题目描述: 考虑带权的有向图\(G=(V,E)\)以及\(w:E\rightarrow R\),每条边\(e=(i,j)(i\neq j,i\in V,j\in V) ...

  7. Luogu4926 倍杀测量者(二分答案+差分约束)

    容易想到二分答案.问题变为判断是否所有条件都被满足,可以发现这是很多变量间的相对关系,取个log之后就是经典的差分约束模型了.特殊的地方在于某些人的分数已被给定,从每个人开始跑一遍最短路判断一下是否能 ...

  8. 【洛谷】【二分答案+最短路】P1462 通往奥格瑞玛的道路

    在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量有一天他醒来后发现自己居然到了联盟的主城暴风城在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 题目背景 [题目描述:] 在艾泽拉斯 ...

  9. 洛谷P1902 刺杀大使(二分答案+bfs验证)

    题目描述 伊朗伊斯兰革命卫队(某恐怖组织)正在策划一起刺杀行动,他们的目标是沙特驻美大 使朱拜尔.他们来到了沙特驻美使馆,准备完成此次刺杀,要进入使馆首先必须通过使馆前 的防御迷阵. 迷阵由 n*m ...

最新文章

  1. 一周焦点 | 最强AI芯片麒麟980发布;前端开发者将被取代?
  2. QIIME 2用户文档. 01简介和安装 Introduction Install(2020.2)
  3. 中的 隐藏鼠标菜单_如何在鼠标右键菜单中添加自定义菜单?工效率提升一倍...
  4. 在linux c 以结构体形式写文件 结构体参数如何在函数中传递,Linux安全审计机制模块实现分析(16)-核心文件之三auditsc.c文件描述及具体变量、函数定义...
  5. Geany编辑器配置Python路径(Windows10)
  6. sqlserver 的一些好用的插件
  7. Ubuntu 开发环境搭建
  8. 7开启uasp协议_【环海解读】新版通关无纸化协议签约amp;报关代理委托发起和确认操作流程...
  9. 数据结构探险系列—栈篇-学习笔记
  10. html 文本框 初始化,Flutter 文本框初始化时显示默认值
  11. B 站神曲 damedane:精髓在于换脸,五分钟就能学会
  12. Major GC 是清理老年代。 Full GC 是清理整个堆空间—包括年轻代和老年代。
  13. C语言入门经典(第4版)电子书pdf下载
  14. 常用的python科学计算库有哪些_python科学计算常用的数学科学计算库有哪些?
  15. 实验二 帧中继的基本配置
  16. 2018年DevOps最新现状研究报告解读
  17. 原来 Elasticsearch 还可以这么理解
  18. win10中conda activate激活环境出错的解决办法
  19. c语言fseek128字节,你知道C语言是如何处理fseek()和ftell()这两个I/O随机访问数吗?...
  20. 复变函数笔记——解析函数、柯西-黎曼方程

热门文章

  1. setresult()java_Java ResultSet getType()方法与示例
  2. cefsharp49显示html,CefSharp-cefshar
  3. leetcoed123. 买卖股票的最佳时机 III
  4. php项目通过不了压力测试,压力测试 – Apache ab测试和失败 – Apache或PHP配置问题?...
  5. [PAT乙级]1043 输出PATest
  6. C++实现链式基数排序
  7. 十一届蓝桥杯国赛 玩具蛇-dfs
  8. Harmonic Number (II) LightOJ - 1245(找规律?大数f(n)=n/1+n/2+n/3+......+n/n)
  9. java printf 版本_java – PrintStream类型中的printf(String,Object ...
  10. CF 1635E Cars 二分图 + 拓扑