高斯消元裸题(期望)——【HNOI2013】游走

Android开发中StateFlow与LiveData的5个关键区别及实战避坑指南 本文深度解析了Android开发中StateFlow与LiveData的5个核心区别,包括设计哲学、生命周期管理、值更新策略、线程模型及协程生态整合。通过实战代码对比,为开发者在现代MVVM架构下的状态管理选型提供清晰的决策指南和避坑建议,帮助构建更健壮、可测试的应用。 阅读详情
Description

一个无向连通图,顶点从1 编号到N,边从1 编号到M。

小Z 在该图上进行随机游走,初始时小Z 在1 号顶点,每一步小Z 以相等的概率随机选择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小Z到达N 号顶点时游走结束,总分为所有获得的分数之和。

现在,请你对这M 条边进行编号,使得小Z 获得的总分的期望值最小。

Input

输入第一行是正整数N和M,分别表示该图的顶点数和边数,接下来M行每行是整数u,v(1≤u,v≤N),表示顶点u与顶点v之间存在一条边。

Output

输出仅包含一个实数,表示最小的期望值,保留3 位小数。

Sample Input3 3

2 3
1 2
1 3

Sample Output

3.333

Data Constraint

30%的数据满足N≤10;
100%的数据满足2≤N≤500且是一个无向简单连通图。

Hint

样例解释:边(1,2)编号为1,边(1,3)编号2,边(2,3)编号为3。


解析:

我们很容易想到先求出每条边期望的经过次数,然后排个序就行了。

边期望的经过次数如果直接列方程,由于边数比较大,会T的。

注意到点事很少的,可以先求出点的期望经过次数:

每个点由它相邻的不是终点的点过来,起点的期望要加1,因为一开始就经过了它, 然后高斯消元一波~

点的期望到边的期望的转换:
S_x-y = S_x / du_x +S_y / du_y
当然x,y若是终点就不算。

Code:

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#define abs(a) ((a) > 0 ? (a) : -(a))
#define fo(i, x, y) for(int i = x; i <= y; i ++)
using namespace std;

const int Maxn = 505;

int n, m, x, y, du[Maxn];
int tot, final[Maxn];
struct edge {
    int to, next;
}e[Maxn * Maxn * 2];
struct edge2 {
    int x, y; double c;
}b[Maxn * Maxn * 2];
double a[Maxn][Maxn], s[Maxn];

bool rank_b(edge2 a, edge2 b) {
    return a.c > b.c;
}

void link(int x, int y) {
    e[++ tot].next = final[x], e[tot].to = y, final[x] = tot;   
}

void Init() {
    scanf("%d %d", &n, &m);
    fo(i, 1, m)
        scanf("%d %d", &x, &y), link(x, y), link(y, x), du[x] ++, du[y] ++, b[i].x = x, b[i].y = y;
}

void Build() {
    fo(i, 1, n) {
        a[i][i] = -1;
        for(int k = final[i]; k; k = e[k].next)
            if(e[k].to != n)
                a[i][e[k].to] += (double) 1 / du[e[k].to];
    }
    a[1][0] = 1;
}

void Solve_equation(int n, int m) {
    fo(i, 1, n) {
        int mi = i;
        fo(j, i + 1, m) if(abs(a[j][i]) > abs(a[mi][i]))
            mi = j;
        fo(j, 0, n) swap(a[i][j], a[mi][j]);
        fo(j, 1, m) if(i != j){
            double c = a[j][i] / a[i][i];
            fo(k, 0, n) a[j][k] -= a[i][k] * c;
        }
    }
    fo(i, 1, n) 
        if(a[i][i] != 0)
            s[i] = -a[i][0] / a[i][i];
}

void End() {
    fo(i, 1, m) {
        if(b[i].x != n) b[i].c += s[b[i].x] / du[b[i].x];
        if(b[i].y != n) b[i].c += s[b[i].y] / du[b[i].y];
    }
    sort(b + 1, b + m + 1, rank_b);
    double ans = 0;
    fo(i, 1, m) ans += b[i].c * i;
    printf("%.3lf", ans);
}

int main() {
    Init();
    Build();
    Solve_equation(n, n);
    End();
}
c++ webrtc基础(1) :webrtc源码下载与编译、项目模块介绍、学习资料推荐 本篇博客介绍webrtc源码的下载与编译,以及推荐webrtc学习资料。 源码下载 电脑环境:win10/win11 64bit,合理的上网环境,没有合理的网络环境无法拉取、下载webrtc代码和工具,宽带速度要快,尽量50M. 主要步骤如下: (1) 安装git (2) 打开cmd控制台,下载google开发工具depot_tools: git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git (3) 新建一个目 阅读详情

相关推荐

UE4引擎分析获取UWord,GName,GetName,GObjectArray

UE4引擎具有很多固定特征和特性 所以我们在逆向UE4引擎开发的游戏的时候,可以利用这些特征和特性. 当然,正常思路逆向也是没问题的(例如我们的ttw课程全数据逆向),你就当多了一个针对于该引擎逆向的快捷方式 或则多了一个思路即可. 正常逆向+引擎分析,使逆向结果全面且快速.

任鸟飞2217777779的博客 1万+

高斯消元配合概率dp-图上随机游走模型

题目大意: 给你一张无向连通图,从第111点随机游走到nnn点。花费为经过的边的编号的和.问你如何安排边的编号使得期望花费最小化. n≤500,m≤n2n \leq 500,m \leq n^2n≤500,m≤n2 题目思路: 很容易想到,求出每条边期望经过次数,然后贪心安放即可. 但是mmm太大,无法求解.考虑先求每个点期望经过次数. 考虑到nnn点就停止了,所以不考虑nnn的贡献。 显然有转移: f1=1+∑(1,j)∈Efjdujf_1=1+\sum_{(1,j)\in E}^{}\frac{f_j}

qq_35577488的博客 1185

【实战解析】SAP EWM与PP深度集成:从后台配置到前台物料流转的全链路设计

本文深入解析SAP EWM与PP深度集成的全链路设计,涵盖后台配置与前台物料流转的实战应用。通过两种集成模式(DPI与API)的选择策略、十二个关键后台配置步骤详解,以及PMR生成、PSA补货等前台演示,帮助企业实现生产计划与物料供应的高效协同,显著提升生产效率和库存周转率。

weixin_30723433的博客 421

高斯消元总结

1426. 游走 (walk) 题意 一个无向连通图,顶点从 1 编号到 N,边从 1 编号到 M。 小 Z 在该图上进行随机游走,初始时小 Z 在 1 号顶点,每一步小 Z 以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小 Z 到达 N 号顶点时游走结束,总分为所有获得的分数之和。 现在,请你对这 M 条边进行编号,使得小 Z 获得的总分的期望...

sz_165394732的博客 287

STM32H750实战:用TIM+DMA驱动ADC/DAC实现音频回环(附CubeMX配置避坑指南)

本文详细介绍了在STM32H750上构建高保真、低延迟音频链路的实战方法。通过配置TIM定时器作为硬件节拍器,精准触发ADC采集与DAC播放,并利用DMA实现数据的自动搬运,全程无需CPU干预。文章重点剖析了CubeMX配置中的关键步骤与常见“坑点”,如ADC的Conversion Data Management模式选择、DMA的FIFO与Burst模式配置,以及STM32H7系列必须开启ADC全局中断等,并提供了完整的代码实现与调试验证指南。

1057

103.在 Vue 3 中使用 OpenLayers 控制图层来显示/隐藏地图

是一个强大的开源库,可以用于构建各种地理信息系统应用。在 Vue 3 中,我们可以结合。方法,可以直接控制某个图层是否可见,而不需要删除或重新创建图层。在开始之前,确保你已经搭建了 Vue 3 项目,并安装了。本文将详细介绍如何在 Vue 3 组合式 API (,并实现按钮控制地图的显示/隐藏功能。会导致 OSM 瓦片地图无法加载。方法控制地图图层的显示与隐藏。安装完成后,即可开始编写代码。在本教程中,我们介绍了如何在。来实现地图的显示/隐藏功能。来实现交互式地图,并通过。在 WebGIS 开发中,

小彭的博客 1561

【BZOJ3143】【HNOI2013】游走(期望dp,高斯消元)

首先想到怎么求出每一条边 iii 在每次游走中被经过次数的期望 fif_ifi​,那么答案就可以贪心地取。(即让最大的 fif_ifi​ 权值设为 111,次大的设为 222,……,最小的设为 mmm) 但是发现不好统计,或者时间无法承受。 发现点数很小(n≤500n\leq 500n≤500),于是想到怎么通过点的期望值转移到边上。 容易得到:如果设每一个点 uuu 在每次游走中被经过次数的期望 gug_ugu​,每个点的度数为 degudeg_udegu​,然后假设某一条边 iii 为 (u,v)(u,

ez_lcw的博客 307

芒果YOLO11改进145:Loss损失函数KLD:即插即用 NeurIPS顶会论文,独家首发原创新颖|通过 Kullback-Leibler 散度学习用于目标检测的高精度边界框

旋转检测Loss损失函数KLD:即插即用 NeurIPS顶会论文,独家首发原创新颖|通过 Kullback-Leibler 散度学习用于目标检测的高精度边界框

包括YOLOv5、YOLOv7、YOLOv8等模型改进 566

【xsy1201】 随机游走 高斯消元

题目大意:你有一个$n*m$的网格(有边界),你从$(1,1)$开始随机游走,求走到$(n,m)$的期望步数。 数据范围:$n≤10$,$m≤1000$。 我们令 $f[i][j]$表示从$(1,1)$随机游走到$(i,j)$的期望步数。不难推出: 如果$(i,j)$与边界不想邻,则有 $f[i][j]=\frac{1}{4}(f[i-1][j]+f[i+1][j]+f[i]...

diaoyoutun2652的博客 280

全新YOLOv11有效涨点改进专栏目录 | 本专栏持续更新500+篇内容 | 包含各种卷积、主干网络、各种注意力机制、检测头、损失函数、小目标检测改进、二次创新模块、独家创新等几百种创新点改进

YOLOv11专栏持续更新500+种创新改进方案,涵盖卷积优化、注意力机制、主干网络、Neck特征融合、检测头、小目标检测等核心模块。提供独家创新点组合方案、模型轻量化改进及最新Mamba架构融合技术,配套完整实验代码和训练参数解析。订阅用户可加入专属答疑群,获取一键运行项目支持。专栏包含YOLOv11网络结构详解、配置文件解读等入门必读内容,助力科研论文发表与模型性能提升。限时开放订阅通道,提供多种涨点改进方案组合,满足不同研究需求。

Ai缝合怪、助力小伙伴高效发论文 4004

地方政府预算数据抓取:利用Python爬虫获取预算安排、资金分配与支出情况

爬虫是通过模拟浏览器行为,从互联网上自动获取数据的程序。在本案例中,我们将通过爬虫从地方政府的官方网站或预算公开平台抓取各类预算信息。这些信息一般以HTML网页的形式呈现,可以通过爬虫对网页内容进行解析,提取所需的预算数据。Python作为数据抓取的强大工具,凭借其简洁的语法、强大的第三方库(如requestsSelenium等)以及丰富的数据处理能力,成为了开发爬虫应用的首选语言。

2201_76125261的博客 942

游走[HNOI2013][期望Dp+高斯消元]

文章目录题目思路代码 题目 Vjudge 一个无向连通图,顶点从1编号到N,边从1编号到M。 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和。 现在,请你对这M条边进行编号,使得小Z获得的总分的期望值最小。 无向图 思路 考虑 ans=∑...

Mouse_liang的博客 258

手把手教你学simulink(57.3)--电励磁同步电动机场景示例:基于Simulink的自适应控制(Adaptive Control)电励磁同步电动机

目录基于Simulink的自适应控制(Adaptive Control)电励磁同步电动机项目实例1. 项目背景2. 系统架构2.1 电励磁同步电动机模型2.2 三相逆变器模型2.3 自适应控制器(Adaptive Controller)2.4 系统框图3. 模型设计3.1 创建Simulink模型3.2 自适应控制(Adaptive Control)设计3.3 仿真环境搭建4. 参数优化4.1 自动调优5. 实际应用案例5.1 工业驱动系统5.2 风力发电系统6. 结论需求分析电励磁同步电动机(Electr

MHD0815的博客 505

bzoj3143【HNOI2013】游走

概率DP+高斯消元

AaronPolaris 4967

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【期望·高斯消元】HNOI2013 游走

题目传送门 容易想到,应该是算出经过每一条边的期望,然后给期望大的赋小的编号,期望小的赋大的编号。 没有其它奇奇怪怪的附加属性,只是随意地走的话,经过边的期望应该只是和图的长相有关联,也就是只和边两边的结点有关,而且边的数量没有限制,最大可以达到n2n^2n2的级别,所以我们可以用点的期望来算边的期望。 如果知道了点的期望,那么边的期望就是 点的期望∗1这个点的边数点的期望*\frac{1}{这个...

岂曰无衣,与子同袍 320

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

P3232 [HNOI2013]游走

首先,根据贪心的思想,期望经过次数多的边我们给它更小的编号。这个式子的道理和上面和边有关的那个式子是一样的^o^/个节点是开始的节点,也就是刚开始就走过了,所以。看到题不要慌,不要因为是期望而慌张。注意:因为是方程组,式子的形式都是。个式子中的系数),所以对于特殊的。个节点是结束的节点,也就是走到。那那么我们就把问题转化到怎么求出。即结束,所以任何一个点不能从。元方程组,用高斯消元求解即可。我们一步一步分析(●’◡’●)这个点的期望经过次数,那么现在就想怎么求出。

jasony_sam的博客 609

BZOJ_3143_[Hnoi2013]游走_期望DP+高斯消元

BZOJ_3143_[Hnoi2013]游走_期望DP+高斯消元 题意: 一个无向连通图,顶点从1编号到N,边从1编号到M。 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和。 现在,请你对这M条边进行编号,使得小Z获...

149

【BZOJ3143】【Hnoi2013】游走 高斯消元 解期望方程

哎一听这个题目名字就感觉好有趣。 题解: (注意:下方的题解每一步如果,相当于你写个递归函数,每次求完了下一层的值才能求此层的。Wow略高能,) 首先我们整体上既然是求期望,那么我们如果能算出每条边的期望经过次数wiw_i,那么只需要把1~m这些边权值从小到大按期望从大到小填入这些边,就可以得到最小的期望路径长度啦。 然后怎么求每条边的期望经过次数呢? 我们设边ii的两端点为uu和v

辗转山河弋流歌 3421

bzoj 3143: [Hnoi2013]游走 高斯消元

3143: [Hnoi2013]游走 Time Limit:10 SecMemory Limit:128 MBSubmit:1026Solved:448[Submit][Status] Description 一个无向连通图,顶点从1编号到N,边从1编号到M。小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,...

alex151194310的博客 149

3143: [Hnoi2013]游走 (高斯消元 + 期望dp)

3143: [Hnoi2013]游走 Description 一个无向连通图,顶点从1编号到N,边从1编号到M。 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和。 现在,请你对这M条边进行编号,使得小Z获得的总分的期望值最小。 ...

FIVE 426

[bzoj3143][Hnoi2013]游走——动态规划+高斯消元

题目大意: 一个无向连通图,顶点从1编号到N,边从1编号到M。 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和。 现在,请你对这M条边进行编号,使得小Z获得的总分的期望值最小。 思路: 由于我们需要确定每条边的权值,所以不妨将每条边期望意...

ylsoi的博客 496

[HNOI2013]随机游走(高斯消元)

Link(https://www.luogu.org/problemnew/show/P3232) 题义   一个n(<=500)个点,m条边的无向简单联通图,从一号点出发随机游走,每到一个点都会随机选择一条出边接着往下走,到n号点时停止。定义得分为经过的所有边的编号之和,求经过调整边的编号,一次随机游走的期望得分最小值。 求出每条边的期望经过次数然后贪心即可 ...

atqfzbx6775的博客 605

[HNOI2013]游走 题解

[HNOI2013]游走 [HNOI2013]游走 考虑每一条边的单独贡献,发现这个不是很好计算,而且边数其实很多。 我们考虑对于一条 u→vu \to vu→v 的边,其贡献是 f(u)deg(u)+f(v)deg(v)\dfrac{f(u)}{deg(u)} + \dfrac{f(v)}{deg(v)}deg(u)f(u)​+deg(v)f(v)​。 其中 f(i)f(i)f(i) 表示点 iii 期望被经过的次数,别忘了一开始点 111 就被经过一次了。 考虑走到别的点之后再走回来更新这个点: f

莫莫 dicol 的博客 323

【BZOJ3143】[Hnoi2013]游走 期望DP+高斯消元

【BZOJ3143】[Hnoi2013]游走 Description 一个无向连通图,顶点从1编号到N,边从1编号到M。小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和。现在,请你对这M条边进行编号,使得小Z获得的总分...

aodanchui1057的博客 160

如何使用高斯消元解决期望DP

前言破事水一篇:我们为什么会用高斯消元来解决期望DP的问题在之前的几篇字里我们确乎是提到了期望DP的,但只有博物馆一道题是要用到高斯消元的。那么这是不是一种特例呢? Obviously not. 事实上,在期望与概率DP中引入高斯消元并不是突兀的,毫无关联的,而确乎是有实际需求的。因为在一类概率问题中,有的事件的概率是前后关联的。出于简化运算的目的,我们会列出方程来求解。这个时候我们自然需要利用

Friedrich_Taylor的博客 989

P3232 [HNOI2013]游走 [高斯消元]

/# 游走游走游走 题目描述见链接 . /## 正解部分\color{red}{正解部分}正解部分 题目要求走过的 边 编号和期望最小, 先求出 点 的期望值 f[i]f[i]f[i], 走过一条边 u,vu, vu,v 的期望值即为 f[u]/du[u]+f[v]/du[v]f[u]/du[u] + f[v]/du[v]f[u]/du[u]+f[v]/du[v], 最后将期望值大的边赋予较小的...

Zbr162的博客 226

P3232 [HNOI2013] 数学期望 + 高斯消元

题意 传送门 P3232 [HNOI2013]游走 题解 设 XiX_iXi​ 为 i→Ni\rightarrow Ni→N 的期望分数。考虑一步转移状态可以列出 NNN 个 NNN 元一次方程。若能通过高斯消元将 X1X_1X1​ 用边编号的线性组合表示,那么就能够基于贪心策略,将编号的系数排序,较小的编号对应较大的系数,从而得到答案。总时间复杂度 O(N4)O(N^4)O(N4),显然难以胜任。 上述系数即对应边被经过次数的数学期望。那么可以如下定义,XiX_iXi​ 代表节点 iii 被经过次数的数学

neweryyy的博客 193
上一篇: 费用流技巧(更新ing~)
下一篇: 计算几何模板
Cold_Chair
博客等级 码龄11年 158粉丝 410原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值