尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

P3232 [HNOI2013] 游走

P3232 [HNOI2013] 游走
📅 发布时间:2026/6/20 19:56:28

考虑贪心。

随机游走则显然每条边期望经过次数越大则其编号应越小。

每条边的期望经过次数难以计数,考虑每个店期望经过次数,设计状态 \(f_i\) 表示点 \(i\) 期望经过次数。

转移:

\(f_i=\sum_{v\in e_i}f_v\cdot \frac{f_v}{d_v}+[u=1]\)

其中 \(d_i\) 为点 \(i\) 的度数,而 \([u=1]\) 则是因为初始在 1 也算一次经过次数,\(f_n\)。

而这种方程无法按照某种顺序转移,发现 \(n\le 500\) 考虑高斯消元,把每个 \(f_i\) 当做一个未知数,则为 \(n\) 个 \(n\) 元方程组,直接 \(O(n^3)\) 求解。

#include<bits/stdc++.h>
#define fin(x) freopen(#x".in","r",stdin)
#define fout(x) freopen(#x".out","w",stdout)
#define fr(x) fin(x),fout(x);
#define Fr(x,y) fin(x),fout(y)
#define INPUT(_1,_2,FILE,...) FILE
#define IO(...) INPUT(__VA_ARGS__,Fr,fr)(__VA_ARGS__)
using namespace std;
#define mp make_pair
#define pii pair<int,int>
#define fi first
#define se second
#define pb push_back
#define cfast ios::sync_with_stdio(false);cin.tie(0),cout.tie(0)
#define ll long long
#define ull unsigned long long
#define intz(x,y) memset((x),(y),sizeof((x)))
char *p1,*p2,buf[100000];
#define nc() (p1==p2 && (p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++)
inline ll read(){ll x=0,f=1;char ch=nc();while(ch<48||ch>57){if(ch=='-')f=-1;ch=nc();}while(ch>=48&&ch<=57)x=x*10+ch-48,ch=nc();return x*f;
}
void write(pii x){cout<<x.fi<<' '<<x.se<<'\n';}
void write(vector<auto>x){for(auto i:x)cout<<i<<' ';cout<<'\n';}
inline int pcount(ll x){for(int i=0,res=0;;res+=(x>>i)&1,i++)if(i>60)return res;
}
inline ll lowbit(ll x){return x&-x;}
const int N=505,M=2e5+5;
int n,m,d[N],_u[M],_v[M],E[M];double ans,a[N][N];vector<int>e[N];
void add(int u,int v){e[u].pb(v),e[v].pb(u);}
double calc(int i){int u=_u[i],v=_v[i];return (u==n?0:a[u][n+1]/d[u])+(v==n?0:a[v][n+1]/d[v]);
}
inline void UesugiErii(){cin>>n>>m;for(int i=1;i<=m;i++)cin>>_u[i]>>_v[i],++d[_u[i]],++d[_v[i]],add(_u[i],_v[i]);for(int i=1;i<=n;a[i][i]=1,i++)if(i<n)for(int v:e[i])a[i][v]=-1.0/d[v];a[1][n+1]=1;for(int i=1;i<n;i++){double mx=0;int id=0;for(int j=i;j<n;j++)if(abs(a[j][i])>mx)mx=abs(a[j][i]),id=j;for(int j=i;j<=n+1;j++)swap(a[i][j],a[id][j]);for(int j=i+1;j<=n+1;j++)a[i][j]/=a[i][i];a[i][i]=1;	for(int j=i+1;j<n;j++){for(int k=i+1;k<=n+1;k++)a[j][k]-=a[j][i]*a[i][k]; a[j][i]=0;}}for(int i=n;i;i--)for(int j=i+1;j<=n;j++)a[i][n+1]-=a[j][n+1]*a[i][j];for(int i=1;i<=m;i++)E[i]=i;sort(E+1,E+1+m,[&](int x,int y){return calc(x)<calc(y);});for(int i=1;i<=m;i++)ans+=(m-i+1)*calc(E[i]);cout<<fixed<<setprecision(3)<<ans;
}
signed main(){//IO();cfast;int _=1;//cin>>_;for(;_;_--)UesugiErii();return 0;
}

相关新闻

  • 正睿 2025 NOIP 20连测 Day9
  • 计算几何初步:CCW 与判断两线段的相交性
  • Robot Queries

最新新闻

  • 2026年市场知名的DTRO公司哪个好,DTRO膜片焊接设备/DTRO/DTRO水处理设备,DTRO源头厂家找哪家 - 品牌推荐师
  • JUC高并发编程—Fork / Join
  • 2026深圳全屋定制避坑指南:跑了6家店,这家轻高定让我直接签了合同 - 爱格研究所
  • 如何快速实现专业级音频转文字:免费开源智能字幕生成工具完整指南
  • 2026年6月最新真力时中国官方售后电话热线客服地址服务网点 - 亨得利官方服务中心
  • AI in Practice:人机协作缝合带的6个落地场景与实操手册

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号