标签:二分

题目

n,m<=1000

分析

主要问题在于存在自环,每次可以重复绕自己

把每个点的出边从小到大排序

同时把另一端端点到终点的距离从小到大排序

计算的是n*m种配对中最小的和的期望

可以枚举每个和

将所有大于等于它的概率统计进入答案,概率扫描的时候需要用优先队列简单维护

但我们不确定距离x,所以需要二分这个参数

对每个点求一遍就可以得到答案

时间复杂度O(n∗mlogANS)时间复杂度O(n∗mlog⁡ANS)

时间复杂度O(n*m\log ANS)

code

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<queue>
#define rep(i,a,b) for(register int i=a;i<=b;i++)
#define dep(i,a,b) for(register int i=a;i>=b;i--)
#define ll long long
#define mem(x,num) memset(x,num,sizeof x)
#define reg(x) for(int i=last[x];i;i=e[i].next)
#define inf 1e16
#define eps 1e-12
using namespace std;
inline ll read()
{ll f=1,x=0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
const int maxn=1e5+6;
struct edge{int to,next;double z;}e[maxn<<1];
struct Q{double z;int x;};
inline bool operator > (Q a,Q b){return a.z>b.z;}
double b[maxn],c[maxn],f[maxn],l,r,mid;
int last[maxn],id[maxn],n,m,S,T,cnt,cnt1,cnt2;
bool p[maxn],P[maxn];
priority_queue <Q,vector <Q> ,greater <Q> > que;
inline double doit(){while(!que.empty())que.pop();cnt=cnt1;rep(i,0,cnt-1)que.push((Q){b[i]+c[0],i}),id[i]=cnt;double re=0,p=1;while(!que.empty()&&p>eps){Q now=que.top();int x=now.x;double P=p*(id[x]-x-1)/(id[x]-x);id[x]--;re+=(p-P)*now.z;p=P;que.pop();if(id[x]>x)que.push((Q){b[x]+c[cnt-id[x]],x});else break;}return re;
}
void dfs(int x){p[x]=1;if(x==T){P[x]=1;return;}reg(x){if(!p[e[i].to])dfs(e[i].to);P[x]|=P[e[i].to];}if(!P[x]){f[x]=inf;return;}cnt1=cnt2=0;l=0,r=1e5;reg(x)b[cnt1++]=e[i].z;sort(b,b+cnt1);rep(num,1,40){mid=(l+r)/2,cnt2=0;reg(x)c[cnt2++]=((e[i].to==x)?mid:f[e[i].to]);sort(c,c+cnt2);if(mid<doit())l=mid;else r=mid;}f[x]=l;
}
int main()
{n=read(),m=read(),S=read(),T=read();rep(i,1,m){int u=read(),v=read();scanf("%lf",&e[i].z);e[i].to=v,e[i].next=last[u],last[u]=i;}dfs(S);printf("%.8lf\n",f[S]);return 0;
}

Tomoya【省选模拟赛】相关推荐

  1. 省选模拟赛记录(越往下越新哦~~~)

    LOG 模拟赛 第一次见尼玛这么给数据范围的-- 开考有点困,迷迷糊糊看完了三道题,真的是像老吕说的那样,一道都不会-- 思考T1,感觉有点感觉,但是太困了,就先码了暴力,发现打表可以50分,于是就大 ...

  2. 省选模拟赛2022/3/23

    省选模拟赛2022/3/23 比赛时间安排 赛后总结反思 与正解的差距 T1 T2 T3 比赛时间安排 7.30-7.40 t1 n<=10,全排列一下跳叶子结点的顺序暴力搞 t2 题意感觉好复 ...

  3. 省选模拟赛2022/3/31

    省选模拟赛2022/3/31 比赛时间安排 赛后反思总结 与正解的差距 T3 比赛时间安排 7.50-8.10 t1 暴力复杂度都很大啊,完全没想法 t2 dfs可以试一试,但是感觉复杂度还是会炸,想 ...

  4. 省选模拟赛(正睿的最后一场)

    省选模拟赛(正睿的最后一场!!) 比赛时间安排 与正解的差距 T1 比赛时间安排 7.30-7.40 t1 能拿10分dfs,n=0的情况或许可以找规律 t2 看不懂 t3 暴力挺好写的,求lca太麻 ...

  5. NOI2019省选模拟赛 第五场

    爆炸了QAQ 传送门 \(A\) \(Mas\)的童年 这题我怎么感觉好像做过--我记得那个时候还因为没有取\(min\)结果\(100\to 0\)-- 因为是个异或我们肯定得按位考虑贡献了 把\( ...

  6. test 7 3-22 2021省选模拟赛seven

    文章目录 考试复盘 人生 赢家 黑红兔 考试复盘 T1T1T1 subtask1:n≤5subtask1:n\le 5subtask1:n≤5,暴搜点的颜色状态以及边的存在状态 对于一条连接相同颜色点 ...

  7. 20200515省选模拟赛B、幻化成风(毒瘤容斥题+构造容斥系数+生成函数+hash状压DP+Trie树优化背包)

    题解 花了一上午+一中午终于把这道题A了 首先,我们要求的是bi互不相同的合法方案数 我们可以枚举一个a的集合S,来强制里面的b全部都相同,然后其它的随便放 由于这个题的n的约数非常多,我们可以把它质 ...

  8. snoi 省选模拟赛day2t1 bzoj 2873: 光之大陆

    Description 在光之大陆的土地上,各种势力盘根错节.来自光之峡谷的精灵,来自黑暗森林的亡灵,来自古老东方的人类共同生活在一起.善于打造装置的矮人,善于发明的侏儒,隐匿于山林的巨人也坚守着属于 ...

  9. NOI2019省选模拟赛 第六场

    传送门 又炸了-- \(A\) 唐时月夜 不知道改了什么东西之后就\(A\)掉了\(.jpg\) 首先,题目保证"如果一片子水域曾经被操作过,那么在之后的施法中,这片子水域也一定会被操作&q ...

最新文章

  1. LeetCode 快乐数(Happy Number)
  2. POJ - 1328 Radar Installation(贪心+思维)
  3. 算法 --- 希尔排序、归并排序、快速排序的js实现
  4. sqlserver2008驱动_Python连接数据库两种方法,QSqlDatabase,pymmsql,驱动名
  5. 无需 Dockerfile 的镜像构建:BuildPack vs Dockerfile
  6. UIButton 详解
  7. 中国凝胶密封高效空气过滤器行业市场供需与战略研究报告
  8. 辨异 —— 有两人生日在同一天、只有两人生日在同一天
  9. 计蒜客 贝壳找房函数最值(好题,巧妙排序)
  10. UnionID与OpenID的区别【转自微信官方文档】
  11. 不知道PDF转Word用什么软件?试试这3款实用软件
  12. 机器学习算法工程师、计算机视觉工程师 技术路线
  13. word打出计算机图形符号,word显示所有格式标记
  14. 没想到你是这样的MethodArgumentNotValidException
  15. vue-cli4 + cordova扫描二维码
  16. windows7未能连接一个windows服务(无法连接网络)的解决方法
  17. 测试硬盘,ssd,优盘读取速度
  18. 基于MATLAB的Cholesky分解法
  19. 商标注册用免费商用字体整体
  20. android 串口通信打开失败

热门文章

  1. 基于FPGA的VGA显示图片
  2. NUC970实现SPI通信
  3. 360卫士携手“全家桶”入住UOS 应用商店
  4. 配置idea 的浏览器框架、Windows本地安装git,以及如何远程连接gitlab
  5. 本地ping不通虚拟机的各种情况
  6. firstElementChild与firstChild区别
  7. 架构解读:如何快速搭建直播答题方案
  8. 衍生品市场众生相:风险释放、高波动率、低信心、空头平仓 | TokenInsight
  9. RFID智能仓储方案
  10. 嘟咪QQ魔法表情动画http://comic.qq.com/a/20080628/000012.htm