P3232 [HNOI2013] 游走,solution

原題:

link,點擊這里喵。

題意:

給定一個 nnn 個點 mmm 條邊的無向連通圖,圖無重邊和自環,頂點從 111 編號到 nnn,邊從 111 編號到 mmm

小 Z 在該圖上進行隨機游走,初始時小 Z 在 111 號頂點,每一步小 Z 以相等的概率隨機選擇當前頂點的某條邊,沿著這條邊走到下一個頂點,獲得等于這條邊的編號的分數。當小 Z 到達 nnn 號頂點時游走結束,總分為所有獲得的分數之和。 現在,請你對這 mmm 條邊進行編號,使得小 Z 獲得的總分的期望值最小。

n≤500n \le 500n500

解法

這種亂動就很煩,考慮通過列出方程式解答。

fif_ifi? 為第個 iii 點期望到達的次數,我們有:
fu=(∑v∈outu&v≠nfvdv)+[u=1]f_u=(\sum_{v\in out_u \& v\ne n} \frac{f_v}{d_v} )+[u=1] fu?=(voutu?&v=n?dv?fv??)+[u=1]
高斯消元即可。

然后就見了。

代碼 time ~

#include <bits/stdc++.h>
using namespace std;#define inf 0x3f3f3f3f
typedef long long lnt;namespace DEFINES {
// #define TEST
// #define Debug
#ifdef Debug
#define dprintf(a, ...) printf(a, ##__VA_ARGS__)
#else
#define dprintf(a, ...)
#endif
} // namespace DEFINESstruct my_stream {int x;operator int() {scanf("%d", &x);return x;}
} __rp_read;
#define input() __rp_readconst int N = 300 + 20;double v[N][N]; // data of equations// 約定:
// x 從 1 開始編號
// v[i][n + 1] 存儲常數項vector<int> G[N];
int n, m, d[N];
double inv_d[N];struct Edge {int x, y;
} edge[N * N];void init_equations() {           //v[1][n + 1] = 1;              // 哇嗷for (int i = 1; i < n; ++i) { // 注意是 < 號,不能從 n 點獲得轉移!inv_d[i] = 1.0 / d[i];}for (int i = 1; i <= n; ++i) { //v[i][i] = -1;for (const int &e : G[i]) {v[i][e] = inv_d[e];}}
}void sc() {putchar(10);for (int i = 1; i <= n; ++i) {for (int k = 1; k <= n + 1; ++k) {printf("%8.3lf", v[i][k]);}putchar(10);}putchar(10);
}void solve() {                         //for (int i = 1; i <= n - 1; ++i) { // 這一項包有值的,省去一步for (int e = i + 1; e <= n; ++e) {double r = v[e][i] / v[i][i];for (int k = i; k <= n + 1; ++k) {v[e][k] -= r * v[i][k];}}// sc();}// sc();for (int i = 1; i <= n; ++i) v[i][n + 1] *= -1;for (int i = n; i >= 1; --i) {v[i][n + 1] /= v[i][i];v[i][i] = 1;for (int e = i - 1; e >= 1; --e) {v[e][n + 1] -= v[e][i] * v[i][n + 1];v[e][i] = 0;}}
}double _edge[N * N], _v[N];int main() { //n = input(), m = input();for (int i = 0; i < m; ++i) {int x = input(), y = input();edge[i] = {x, y};++d[x], ++d[y];G[x].push_back(y);G[y].push_back(x);}init_equations();// sc();solve();// sc();for (int i = 1; i < n; ++i) { // 是 < _v[i] = v[i][n + 1] / d[i];dprintf("%.3lf\n",_v[i]);}for (int i = 0; i < m; ++i) {_edge[i] = _v[edge[i].x] + _v[edge[i].y];}sort(_edge, _edge + m, greater<double>());double ans = 0;for (int i = 0; i < m; ++i) {ans += _edge[i] * (i + 1);dprintf("%.3lf\n",_edge[i]);}printf("%.3lf",ans);return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/918308.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/918308.shtml
英文地址,請注明出處:http://en.pswp.cn/news/918308.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Docker容器部署discuz論壇與線上商城

準備 關閉防火墻&#xff0c;上下文[rootdocker ~]# systemctl disable --now firewalld[rootdocker ~]# setenforce 0下載應用yum remove runc -y ### rocky8才需要yum install -y yum-utils yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/cento…

Linux入門指南:26個基礎命令全解析

目錄 一.基礎概念與入門 1.Linux操作系統簡介 2.終端與shell的基本概念 3.命令行界面的優勢 二.基礎指令 1.whoami ?2.useradd/userdel/passwd ?3.pwd ?4.ls ?5.cd 6.touch 7.mkdir 8.tree 9.rmdir/rm 10.man 11.cp 12.mv 13.cat 14.le…

【后端】Java 8 特性 `User::getId` 語法(方法引用)介紹

文章目錄核心概念解析&#xff1a;方法引用的四種類型&#xff1a;關鍵特性&#xff1a;使用場景推薦&#xff1a;何時避免使用&#xff1a;性能說明&#xff1a;在 Java 中&#xff0c; User::getId 是一種稱為 方法引用&#xff08;Method Reference&#xff09; 的語法糖&a…

基于BP與CNN的圖像分類模型構建、超參數優化及性能對比研究?

一、實驗目的實驗目標構建基于神經網絡模型的數據分析與模式識別框架&#xff0c;探明神經網絡在大數據分析中的意義。實驗任務構建基于深度 BP 神經網絡與卷積神經網絡的數據分析與模式識別框架&#xff0c;將數據集 MNIST 與 CIFAR-10 分別在兩種模型中訓練&#xff0c;并比較…

HarmonyOS應用開發-低代碼開發登錄頁面(超詳細)

本篇文章我來手把手教大家做一個HarmonyOS 應用的登錄頁面&#xff0c;逐步講解&#xff0c;非常細致&#xff0c;百分百能學會&#xff0c;并提供全部源碼。頁面使用 DevEco Studio 的低代碼開發。 通過本文的實踐經驗&#xff0c;我想告訴大家&#xff0c; HarmonyOS 應用開發…

AJAX與axios框架

文章目錄前言案例跨域訪問總結?前言 提示&#xff1a;這里可以添加本文要記錄的大概內容&#xff1a; 通過 ajax 進行前后端交互 案例 此項目用到了javaweb知識 首先創建JavaWeb項目編寫代碼&#xff1a; package ajax;import java.io.IOException; import java.util.Arr…

智能創造的幕后推手:AIGC浪潮下看AI訓練師如何塑造智能未來

文章目錄一、AIGC時代的算法與模型訓練概覽二、算法與模型訓練的關鍵環節三、AI訓練師的角色與職責四、AI訓練師的專業技能與素養五、AIGC算法與模型訓練的未來展望《AI訓練師手冊&#xff1a;算法與模型訓練從入門到精通》亮點內容簡介作者簡介谷建陽目錄《醫學統計學從入門到…

Python設計模式 - 裝飾模式

定義 裝飾模式&#xff08;Decorator Pattern&#xff09;是一種結構型設計模式&#xff0c;用于在不修改原有類的情況下動態地擴展對象的功能。 結構抽象組件&#xff08;Component&#xff09;&#xff1a;定義對象的公共接口&#xff0c;使得客戶端能以一致的方式處理未被裝…

MySQL(188)如何使用MySQL的慢查詢工具?

使用MySQL的慢查詢工具可以幫助開發者識別和優化性能不佳的SQL查詢。以下是詳細深入的步驟和代碼示例&#xff0c;幫助你使用MySQL的慢查詢工具來進行查詢分析和優化。 一、啟用慢查詢日志 首先&#xff0c;你需要確保MySQL的慢查詢日志功能是啟用的。慢查詢日志記錄了所有執行…

如何培養自己工程化的能力(python項目)

培養 Python 項目的工程化能力需要系統性訓練&#xff0c;以下從基礎到高階的實踐路徑&#xff0c;結合具體案例和工具鏈&#xff0c;幫助你逐步進階&#xff1a;一、夯實工程化基礎能力?1. 規范代碼與項目結構??項目模板化?使用 cookiecutter生成標準項目結構&#xff0c;…

AI編程插件對比分析:CodeRider、GitHub Copilot及其他

AI編程插件對比分析:CodeRider、GitHub Copilot及其他 隨著人工智能技術的快速發展,AI編程插件已成為提升開發者生產力的重要工具。CodeRider和GitHub Copilot作為市場上的領先者,分別以其獨特的特性和生態系統吸引了大量開發者。本文將從功能特性、性能表現、集成性、用戶…

uniapp/uniappx實現圖片或視頻文件選擇時同步告知權限申請目的解決華為等應用市場上架審核問題

在UNIAPP支持vue和nvue,在UNIAPPX支持uvue&#xff0c;安卓支持在選擇圖片或視頻文件權限申請的時候自動同步告知權限申請目的。輕松解決在華為應用市場審核&#xff0c;要求告知權限申請目的或說明的問題。 UNIAPP相冊圖片視頻選擇器(安卓可以自定義界面樣式)功能介紹&#x…

jupyter notebook如何打開其他盤目錄

問題描述Jupyter Notebook 相信是我們學習 Python 避不開的一個工具。當我們使用 pip install notebook 安裝 Notebook 之后&#xff0c;使用命令 jupyter notebook 啟動服務&#xff0c;啟動之后默認會在瀏覽器打開界面。我們會發現&#xff0c;這個界面默認在 C 盤下&#xf…

C語言深度剖析

一、關鍵字 1.1 最快的關鍵字-register register 這個關鍵字請求編譯器盡可能將變量存在CPU內部寄存器中,而不是通過內存尋址以提高效率。 注意是:盡可能、而不是絕對 1.1.1 皇帝身邊的小太監-寄存器 不知道什么是寄存器,那見過太監沒有其實寄存器就是相當于。一個cpu的…

電腦使用“碎片整理”程序的作用

1.解決文件碎片化問題碎片整理的作用&#xff1a;將這些分散的文件片段重新整理、拼接&#xff0c;使其連續存儲在硬盤的某個區域&#xff0c;減少文件的 “碎片化” 程度。2. 提升硬盤讀寫速度機械硬盤的特殊性&#xff1a;機械硬盤依賴磁頭的物理移動來讀取數據&#xff0c;若…

AI 軟件工程開發 AI 算法 架構與業務

AI 軟件工程開發 & AI 算法 & 架構與業務前言1.AI 軟件工程開發1.1. AI Developer Studio &#xff08;playground級&#xff09;1.2. Agent & RAG1.3. LangChain & LangGraph1.4. MCP, Model Context Protocol1.5. Ollama1.6. Coze & Dify2.AI 算法2.1. G…

uniapp實現的圓形滾盤組件模板

采用 uniapp 實現的一款圓形滾盤示例組件模板, 支持 vue2、vue3&#xff0c;適配H5、微信小程序&#xff08;其他小程序未試過&#xff0c;可自行嘗試&#xff09; 代碼實現簡約易懂&#xff0c;用戶可根據自身需求下載模板&#xff0c;并進行擴展開發可到插件市場下載嘗試&…

無須炮解,打開即是Pro版

聊一聊 文檔或文件轉圖片&#xff0c;這個我有段時間沒有推薦了。 今天發現了一款非常好用的圖像格式轉換編輯軟件。 有需要的小伙伴請及時收藏&#xff0c;防止下次找不到。 軟件介紹 全能圖像格式轉換工具 這是一款全能的圖像轉換軟件&#xff0c;支持幾乎所有的圖像格式…

企業高性能web服務器——Nginx

Nginx介紹 Nginx是一個高性能的HTTP和反向代理服務器&#xff0c;也是一個郵件代理服務器。由俄羅斯的程序設計師Igor Sysoev所開發&#xff0c;官方測試nginx能夠支撐5萬并發鏈接&#xff0c;并且cpu、內存等資源消耗卻非常低&#xff0c;運行非常穩定。所以其特點是占有內存…

MCU控制ADAU1701,用System Workbench for STM32導入工程

作者的話 MCU控制ADAU1701&#xff0c;我有寫一個文檔詳細講步驟&#xff0c;里頭用到了System Workbench for STM32這個軟件&#xff0c;他是基于eclips內核的開發軟件&#xff0c;一般來講&#xff0c;設置好workspce工程就會出來&#xff0c;但是架不住就有設置好工程不出來…