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的更多相关文章

  1. 【从零开始学BPM,Day2】默认表单开发

    [课程主题]主题:5天,一起从零开始学习BPM[课程形式]1.为期5天的短任务学习2.每天观看一个视频,视频学习时间自由安排. [第二天课程] Step 1 软件下载:H3 BPM10.0全开放免费下 ...

  2. BZOJ 2879: [Noi2012]美食节

    2879: [Noi2012]美食节 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1834  Solved: 969[Submit][Status] ...

  3. NOIp2016 Day1&Day2 解题报告

    Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...

  4. day2

    三级菜单: ))))))))))] last_levels.pop() ]]]]]]]]:] information = : ch = msvcrt.getch() ][][: : password= ...

  5. java day2一个模拟双色球的代码

    package day2; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt ...

  6. Python基础-day2

    1.Python模块python 中导入模块使用import语法格式:import module_name示例1: 导入os模块system('dir')列出当前目录下的所有文件 # _*_ codi ...

  7. 【BZOJ 4517】【SDOI 2016 Round1 Day2 T2】排列计数

    本蒟蒻第一次没看题解A的题竟然是省选$Round1$ $Day2$ $T2$ 这道组合数学题. 考试时一开始以为是莫队,后来想到自己不会组合数的一些公式,便弃疗了去做第三题,,, 做完第三题后再回来看 ...

  8. 冲刺阶段 day2

    day2 项目进展 今天本组五位同学聚在一起将项目启动,首先我们对项目进行了规划,分工,明确指出每个人负责哪些项目.由负责第一部分的组员开始编程,在已经搭建好的窗体内,对系部设置进行了编写,本校共六个 ...

  9. NOI2012 : 迷失游乐园

    终于补完NOI2012了好开心~ 题目大意:给定一棵树或者环套外向树,求出从中随机选一条简单路径的期望长度,环上点数不超过20. 设 d[x]表示x的度数,ch[x]表示x孩子个数 up[x]表示x向 ...

随机推荐

  1. fastjson的常用使用方法

    package Demo; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import ...

  2. Javascript基本概念(语句和函数)

    语句 for语句 for语句中的初始化表达式,控制表达式和循环后表达式都是可选的,将这三个表达式省略,就会创建一个无线循环. ECMAScript中不存在块级作用域,因此在循环内容部定义的变量也可以在 ...

  3. python运维开发(五)----模块、生成器

    内容目录 双层装饰器 字符串格式化 生成器和迭代器 递归 模块 双层装饰器 需求场景介绍: 现有用户登录系统,普通用户能查看自己相关信息的权限,管理员用户能查看所有用户的权限,可以做两个装饰器来实现需 ...

  4. Python爬虫实战(2):爬取京东商品列表

    1,引言 在上一篇<Python爬虫实战:爬取Drupal论坛帖子列表>,爬取了一个用Drupal做的论坛,是静态页面,抓取比较容易,即使直接解析html源文件都可以抓取到需要的内容.相反 ...

  5. [solaris]odbc-oracle,简单测试

    #include <string> #include <iostream> #include <stdio.h> #include <sql.h> #i ...

  6. LINUX用户管理——/etc/passwd文件详解

      输入vi /etc/passwd 可以查看此文件的内容 .本机内容如下: [root@localhost ~]# vi /etc/passwdroot:x:0:0:root:/root:/bin/ ...

  7. [Django 1.5] Django 开发学习资源链接

    jQuery : jQuery API introduction:http://api.jquery.com/ jQuery plugins: http://benalman.com/projects ...

  8. javascript预加载和延迟加载

    延迟加载javascript,也就是页面加载完成之后再加载javascript,也叫on demand(按需)加载,一般有一下几个方法: What can your tired old page, o ...

  9. 日本語N1文法まとめ

    1.v连用形+ものの:虽然~但是(201212-32) -(の)かというと/かといえば(201412-38)a动词ます辞書形・た形/イ形+~ な形語幹/名+~a,"至于是否・・・・・・&qu ...

  10. uva 10453 - Make Palindrome(dp)

    题目链接:10453 - Make Palindrome 题目大意:给出一个字符串,通过插入字符使得原字符串变成一个回文串,要求插入的字符个数最小,并且输出最后生成的回文串. 解题思路:和uva 10 ...