NOI2012 Day2
NOI2012 Day2
迷失游乐园
题目描述:给出一个\(n\)个点的图,边数为\(n-1\)或\(n\)。从某个点出发,每次等概率地随机选一个相连的并且没有经过过的点,直到不能走为止,问期望路径长度为多少。(开始时等概率选一个点为起点)
solution:
设期望长度为\(Len\),每个点的度为\(d\),则
\[Len[i]=\sum_{j与i相连} \frac{Len[j]+dis[i][j]}{d[i]}\]
如果是一棵树,那么可以记\(f[i]\)为从\(i\)号的祖先走到\(i\)号点往下走的期望长度,\(g[i]\)为从\(i\)号点的子树走到\(i\)号点往上走的期望长度。
\[f[i]=\sum_{j \in son(i)} \frac{f[j]+dis[i][j]}{d[i]-1}\]
\[g[i]=\frac{g[fa(i)]+f[fa(i)]-\frac{f[i]+dis[i][j]}{d[fa(i)]-1}+dis[i][j]}{d[i]-1}\]
\[ans=\sum_{i=1}^{n} \frac{(f[i]+g[i])*(d[i]-1)}{d[i]}\]
其中,在计算\(g\)的时候要计算出它的父亲不进入该子树的期望长度,所以式子有点长。
如果有一个环,那么先把环找出来,对于环上的每个点的树都按上面的算出\(f\),\(g\)不能在像上面这样先算,因为只有一棵树时,根是无法向上走的,但现在根可以走到环上的其它点的树,所以要先把环上的点的\(g\)算出来。
枚举环上的点\(i\),然后枚举顺逆时针(这样就相当于删去环上的一条边),这就变成了一棵以\(i\)为根的一棵树,求从\(i\)往下走的期望长度(类似于\(f\))。求出环上的点的\(g\)后,就可以像上面一样处理环上的每一点的树。
时间复杂度:\(O(n)\)
美食节
题目描述:有\(n\)种菜品,每种菜品有\(p[i]\)个学生预订,共有\(m\)个厨师制作这\(n\)种菜,厨师按要求的顺序制作,每次做一人份,每个厨师制作同一道菜的时间未必相同每个同学的等待时间为所有厨师开始做菜起,到自己那份菜品完成为止,求学生最短总等待时间。
solution:
这题主要在于能否逆向思考问题,如果卡在顺序上,那么就解不出这道题了。我们应该考虑每道菜的贡献。设一位厨师一共制作\(k\)道菜,那么第一道菜对时间的贡献为(做菜时间$ * k\(),第二道菜为\)(k-1)$,最后一道为\(1\),所以可以求厨师的最后一道菜是什么?倒数第二道才是什么?……以此来构图(最小费用网络流)
可以采用动态加点,首先每位厨师做一道菜(最后一道),哪位厨师做满了,就加点连向这位厨师与对应的菜品,这时新加的边的费用为(\(*2\)),以此类推,直到完成任务为止。
时间复杂度:\(?\)
NOI2012 Day2的更多相关文章
- 【从零开始学BPM,Day2】默认表单开发
[课程主题]主题:5天,一起从零开始学习BPM[课程形式]1.为期5天的短任务学习2.每天观看一个视频,视频学习时间自由安排. [第二天课程] Step 1 软件下载:H3 BPM10.0全开放免费下 ...
- BZOJ 2879: [Noi2012]美食节
2879: [Noi2012]美食节 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1834 Solved: 969[Submit][Status] ...
- NOIp2016 Day1&Day2 解题报告
Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...
- day2
三级菜单: ))))))))))] last_levels.pop() ]]]]]]]]:] information = : ch = msvcrt.getch() ][][: : password= ...
- java day2一个模拟双色球的代码
package day2; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt ...
- Python基础-day2
1.Python模块python 中导入模块使用import语法格式:import module_name示例1: 导入os模块system('dir')列出当前目录下的所有文件 # _*_ codi ...
- 【BZOJ 4517】【SDOI 2016 Round1 Day2 T2】排列计数
本蒟蒻第一次没看题解A的题竟然是省选$Round1$ $Day2$ $T2$ 这道组合数学题. 考试时一开始以为是莫队,后来想到自己不会组合数的一些公式,便弃疗了去做第三题,,, 做完第三题后再回来看 ...
- 冲刺阶段 day2
day2 项目进展 今天本组五位同学聚在一起将项目启动,首先我们对项目进行了规划,分工,明确指出每个人负责哪些项目.由负责第一部分的组员开始编程,在已经搭建好的窗体内,对系部设置进行了编写,本校共六个 ...
- NOI2012 : 迷失游乐园
终于补完NOI2012了好开心~ 题目大意:给定一棵树或者环套外向树,求出从中随机选一条简单路径的期望长度,环上点数不超过20. 设 d[x]表示x的度数,ch[x]表示x孩子个数 up[x]表示x向 ...
随机推荐
- VBS解析时候遇到时间
http://msdn.microsoft.com/en-us/library/aa393687(v=vs.85).aspx MSDN说的很详细么. http://msdn.microsoft.com ...
- 使用Mindjet MindManager 制作流程图案例
心得体会是: 导出为swf格式的流程图最为美观 有些过于复杂的对象在swf viewer中是无法显示的(比如各种表格,任务,提醒,自定义属性). 所有主题和子主题在viewer刚打开的时候一定都是全部 ...
- [开源]在iOS上实现Android风格的控件Toast
[开源]在iOS上实现Android风格的控件Toast iOS的风格和Apple其他产品一样,简单而粗暴.没有给人其他选择的余地,让你又爱又恨.同样的,Apple对待iOS平台的开发人员和对待大众消 ...
- poj 1401---求N!末尾0的个数,2的个数一定比5多,观察得来,0的产生即为2*5,去找这个阶乘一行里面5的个数即可
#include<stdio.h> #include<stdlib.h> int main() { int T,N; while(scanf("%d",&a ...
- 收敛 p75
三种收敛.中心极限定理.大数定理.delta方法
- 在magento中定义static block
在magento中如何调用static block?(系统面板内CMS---->static block) 解答:若想在站点页面的某个地方放点静态的内容,比如广告,或者是促销信息之类的,这样的东 ...
- Design Pattern Iterator 迭代器设计模式
这个设计模式感觉很easy,我们平时敲代码的时候也是常常须要调用iterator的,C++和Java都是. 所以感觉没什么特别的.就是须要模仿C++或者Java的iterator类的功能吧. 这里简单 ...
- 简单的Ajax
ajax获取时间的html代码 <head> <meta http-equiv="Content-Type" content="text/html; c ...
- T-SQL流程控制
常用的T-SQL流程控制有三种,case ... when ... then...(else)...end (as) ... 判断句式,if判断句式和while循环句式. case...when .. ...
- 搭建C#框架 博文观感
最近刚开始着手做项目,在后期开发的时候遇到不少预期之外的问题,而且工期也超出预算不少.反思了一下,主要是做的项目少,前期需求分析不明朗,当然对于框架也没有意识.凡此种种.当然,遇到问题就要去想办法解决 ...