bzoj3143: [Hnoi2013]游走

怀旧党必备!用iPhone4s重温iOS6的保姆级教程(含游戏资源包) 本文提供了一份详细的iPhone4s降级至iOS6.1.3的保姆级教程,包括设备准备、越狱操作、系统降级及资源优化全流程。通过自制固件和越狱工具,用户可以重温经典的拟物化设计和流畅体验,同时获取经典游戏资源包,打造复古游戏神器。 阅读详情

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3143

思路:首先贪心是很显然的,为了使分数最小,期望到达次数越多的,编号就应该给的越小。

直接设边的期望列方程比较复杂。

所以我们换一个思路,先解出每个点的期望到达次数,那么边的期望次数就可以算出来了。

设边为y,与它相连的两个点为a,b,点的期望次数为f[a],f[b],度数为deg[a],deg[b];

那么边的期望次数g[y]就是f[a]/deg[a]+f[b]/deg[b]。

这很好理解,因为一条边只会从这两个点走过来。

现在考虑求点

对于一个点x,它只会从相邻的点过来,那么方程就是

f[x]=∑f[son[x]]/deg[x];

除了n号点,我们就可以得到有n-1个未知数的n-1个方程了

高斯消元即可


#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
const int maxn=510,maxm=300010;
const double eps=1e-10;
using namespace std;
typedef	double ld;
int pre[maxm],now[maxn],son[maxm],tot,deg[maxn],n,m,st[maxm],ed[maxm];ld a[maxn][maxn],f[maxn],g[maxm],ans;
void add(int x,int y){pre[++tot]=now[x],now[x]=tot,son[tot]=y,deg[x]++;}

void gauss(){
	for (int i=1;i<=n;i++){
		int id=i;ld maxs=-1.0;
		for (int j=i;j<=n;j++) if (fabs(a[j][i])+eps>maxs) id=j,maxs=fabs(a[j][i]);
		if (id!=i) for (int j=1;j<=n+1;j++) swap(a[i][j],a[id][j]);
		ld t=a[i][i];if (fabs(t)<eps) for (;;);
		for (int j=1;j<=n+1;j++) a[i][j]/=t; 
		for (int j=1;j<=n;j++)
			if (j!=i){
				ld t=a[j][i];
				for (int k=1;k<=n+1;k++)
					a[j][k]-=t*a[i][k];
			}
	}
	for (int i=1;i<=n;i++) f[i]=a[i][n+1];
}

int main(){
	scanf("%d%d",&n,&m);
	for (int i=1,x,y;i<=m;i++)
		scanf("%d%d",&x,&y),add(x,y),add(y,x),st[i]=x,ed[i]=y;
	n--,a[1][n+1]=-1.0;
	for (int x=1;x<=n;x++){
		a[x][x]=-1.0;
		for (int y=now[x];y;y=pre[y])
			if (son[y]!=n+1)
				a[x][son[y]]=1.0/deg[son[y]];
	}
	gauss();
	for (int i=1;i<=m;i++) g[i]=f[st[i]]/deg[st[i]]+f[ed[i]]/deg[ed[i]];
	sort(g+1,g+1+m);
	for (int i=1;i<=m;i++) ans+=g[i]*(m-i+1);
	printf("%.3lf\n",(double)ans);
	return 0;
}


Matlab:常见涡旋光束仿真 代码: clc clear all close all %% 环形涡旋光束 N = 200; lambda = 632e-9; %波长为632nm k = 2*pi/lambda; %波数 w0 = 3; %束腰半径 x = linspace(-10,10,N); y = linspace(-10,10,N); [X,Y] = meshgrid(x,y); [t... 阅读详情

相关推荐

Altera Quartus II FPGA固件烧录全攻略:从SOF到JIC的完整流程(附EPCQ128配置技巧)

本文详细介绍了使用Altera Quartus II工具链将FPGA固件从SOF文件转换为JIC文件并烧录到EPCQ128 Flash芯片的完整流程。内容涵盖环境配置、文件转换步骤、EPCQ128专用配置技巧以及常见问题解决方案,帮助工程师实现FPGA固件的flash固化,确保设计可靠运行。

weixin_30275415的博客 204

[BZOJ]3143 游走 期望 + 高斯消元

3143: [Hnoi2013]游走 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 3110  Solved: 1365 [Submit][Status][Discuss] Description 一个无向连通图,顶点从1编号到N,边从1编号到M。  小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择

Le Petit Prince 632

Gephi实战指南——从数据导入到可视化输出

本文详细介绍了Gephi数据可视化工具的使用方法,从数据导入到可视化输出的全流程实战指南。涵盖Gephi三大工作区功能、数据导入技巧、图形编辑进阶操作以及专业级可视化输出方案,帮助用户高效完成社交网络分析等复杂任务。

weixin_28731223的博客 480

「HNOI 2013」游走

算法标签:期望概率,高斯消元

forever_dreams的博客 318

stata:stata软件教程(人大十八讲)(1) 第一章 stata入门

第一章 stata入门1.1 安装1.2 启用和退出1.3 打开和查看数据1.4 寻求帮助与网络资源1.5 命令示例1.6 几个环境设置1.7 复习与练习1.8 附录 注:教材为:Stata 统计分析教程 stata软件教程(人大十八讲) 中国人民大学出版社 陈传波 1.1 安装 1.2 启用和退出 1.3 打开和查看数据 1.4 寻求帮助与网络资源 1.5 命令示例 1.6 几个环境设置 1.7 复习与练习 1.8 附录 ...

qq_47805483的博客 1万+

ROS 2实战:用MoveIt Task Constructor让机械臂完成抓取任务(附避坑指南)

本文详细介绍了如何在ROS 2环境中使用MoveIt Task Constructor框架,为Franka Panda机械臂构建一个完整的拾取放置任务流水线。通过分解任务阶段、配置规划器并处理实际部署中的常见问题,帮助开发者从基础运动规划升级到可靠的多步骤任务编排,并附有核心避坑指南。

vvv99的博客 506

[BZOJ]3143: [Hnoi2013]游走 期望+高斯消元

高斯消元

TYB的博客 367

UE5热更新(通过Pak包加载关卡资源,并添加到流关卡)

请先阅读我上一篇文章)**

xialuhui的博客 6456

[HNOI2013]游走

题意 从111开始每次等概率随机选择一条边走下去,直到走到nnn为止 定义一条边的期望是走到他的期望次数××\times他的编号 让你给这些边编号,使得期望最小 题解 可以贪心地考虑期望大的边编号要小,期望小的编号要大 定义pipip_i表示走到点iii的期望走过的次数,didid_i表示iii的点度 考虑走过一条边(u,v)(u,v)(u,v)的期望次数Ei=pudu+pv...

BeNoble_的博客 1101

TI官方PSpice for TI安装避坑指南:从申请Key到解决器件搜索栏空白(附详细步骤)

本文详细介绍了PSpice for TI的安装与配置全流程,包括申请Key、解决器件搜索栏空白等常见问题。通过分步指南和实战避坑技巧,帮助工程师高效完成安装并优化性能,确保电路仿真工具的正常使用。

weixin_29299807的博客 1073

2023-12-26~2025-07-04备份

一、海康视觉与汇川机器人 服务器-客户端通信设置IP在同一网段名称IP端口类型海康相机工控机7930服务器机器人3000客户端海康VM服务器设置1通信管理 增添TCP服务端,设置本机IP:192.168.0.20,端口号79302 协议解析 通信双方约定通信格式(设置收发数据格式,分隔符)机器人客户端设置(不同类型机器人设置有差别)1 通讯服务设置 设置连接服务器IP、服务端端口号、机器人端口号,确保连接正常2 协议解析 使用指令代码构建通讯解析。

青铜小码农 3126

[Hnoi2013]游走(bzoj3143)

Description:   ~~~一个无向连通图,顶点从 11 编号到 N(N≤500)N(N\leq 500),边从 11 编号到 M(M≤N2)M(M\leq N^2)。 小 ZZ 在该图上进行随机游走,初始时小 ZZ 在 11 号顶点,每一步小 ZZ 以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小 ZZ 到达 NN 号顶点时游走结束,总分为

zzj的专栏 851

Creo模型装配总结

creo7.0的零件装配操作方法,建立基准面、新建约束、约束顺序

heda3的博客 1万+

【Hnoi2013】Bzoj3143 游走

Bzo3143 Hnoi2013 游走Position: http://www.lydsy.com/JudgeOnline/problem.php?id=3143 ListBzo3143 Hnoi2013 游走 List Description Solution CodeDescription 一个无向连通图,顶点从1编号到N,边从1编号到M。 小Z在该图上进行随机游走,初始时小Z在1号顶点,每

YJP的博客 605

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

bzoj3143【HNOI2013】游走

概率DP+高斯消元

AaronPolaris 4967

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

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

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

149

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【bzoj3143】[Hnoi2013]游走

高斯消元

Circus 826

BZOJ3143 [Hnoi2013]游走

本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作。 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! 题目链接:BZOJ3143 正解:高斯消元 解题报告:   因为直接考虑每条边被经过的次数很不好考虑,而...

dgoh41514的博客 129

bzoj 3143: [Hnoi2013]游走

题目链接 bzoj 3143: [Hnoi2013]游走 题解 代码 设经过一个点的期望为p[x],可以得到边的概率为 \(p(e<x,y>)p[x]/d[x] + p[y]/d[y]\) 也就是到某条特定的边的期望就是经过这个点的期望值乘上 1/该点的总边数 那么一条边被经过的期望次数就应该是两端点到这条边的期望值之和 p[i]表示经过这个点的概率,d[i]表示这个点的度数...

agtvo48266的专栏 120

bzoj 3143 [Hnoi2013]游走

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

Elijahqi 206

Bzoj3143 [Hnoi2013]游走

Time Limit:10 SecMemory Limit:128 MBSubmit:2816Solved:1207 Description 一个无向连通图,顶点从1编号到N,边从1编号到M。小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小Z 到达N号顶点...

dezhen7015的博客 106

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

BZOJ3143 [HNOI2013]游走

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

weixin_33757911的博客 74

HNOI 2013 bzoj 3143 游走

每条边期望经过次数 w[i]=x[u]/d[u]+x[v]/d[v]   x[i]为点i期望经过次数,d[i]为i出度数 列出关于x的方程,高斯消元解决 /************************************************************** Problem: 3143 User: Clare Language: C++

LKC1999的博客 636

BZOJ 3143: [Hnoi2013]游走

看题面戳我 求最小的获得的期望 很容易想到当边的期望经过数量越小,给予的权值越大 设表示边经过次数的期望,为经过点出去次数的期望,为度数 ,要, 通过移项,可以得到个未知数,个方程的方程组 高斯消元后求出,进而求出,进而求出总期望 唯一坑点:要开  ,这无疑是想不到   这道题不得说是一道对于初学者来说不错的题目 作为一个对期望一窍不通的弱鸡,我对此还能做出 #incl...

YYHS_WSF的博客 306

bzoj3143 [Hnoi2013]游走

这个题是让你给遍赋权,问1-n路径的最小期望值。 显然只要我们知道了每一条边经过次数的期望值,我们就可以贪心地给边赋权了。但是要求边的期望值会很恶心,因为每条边正着走和反着走对其它边的贡献是不同的。于是我们考虑求每个点经过的次数的期望,那么每条边经过次数的期望就是它的端点的期望/端点的度数。 设f[i]表示i点经过次数的期望,那么f[i]=Σf[j]/d[j] (j->i) ...

dengronggua5662的博客 117
上一篇: Codeforces 168D Wizards and Huge Prize
下一篇: bzoj2337: [HNOI2011]XOR和路径
thy_asdf
博客等级 码龄12年 16粉丝 186原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值