2017CodeM复赛
A、配对游戏(loj6191)
题目:
分析:
g[i][j]表示前i个位置尽可能合并,合并到最后右边剩下j个>,这样情况的概率
那么g[i][j]=0.5*g[i-1][j-1]+0.5*g[i-1][j+1]
我们能不能根据概率来求期望呢?
emmmmm...有点困难,因为我们只知道每种情况下右边剩余>的个数,却不知道左边剩余<的个数
其实这两个是对称的,所以结果*2就行了
如果没发现这个怎么办呢?那就老老实实设期望
f[i][j]表示在g[i][j]描述背景下剩余个数的期望
那么f[i][j]=0.5*(g[i-1][j-1]+1*f[i-1][j-1])+0.5*(g[i-1][j+1]-1*f[i-1][j+1])
时间复杂度O(n^2)
B、城市网络(loj6192)
题目:
分析:
直观想法是要在树上维护一个可撤销的单调栈……但好像不太好弄……换思路
首先可以把询问(u,v,c)转换成u点下挂个点,这个点的点权是c
现在关键问题就是如何快速找到树上每个点的father,这个father是点到根路径上最近的比它大的那个点
可以这样搞,倍增求出fa[i][j]表示i的j级父亲,mx[i][j]表示i向上到j级父亲下面这段点的最大点权
那么就可以根据mx倍增走出每个点的最近父亲,然后对于新的父亲进行倍增
对于每个询问根据深度倍增就行了
时间复杂度O(nlogn)
C、神秘代号(loj6193)
题目:
分析:
n个点n条边构成的是一个基环外向树,那个环所表示的模方程正好首位相接,可以解出一个未知数xi的值
然后发现如果确定了一个点的值,那么其它点的值都可以通过bfs得到,并且不会冲突
注意可能有多个基环外向树
D、排列(loj6194)
题目:
分析:
我们通过saved的更新过程来考察所有排列
设saved的值按顺序依次是p[1],p[2]....,p[k]
我们首先来考察给定一个顺序p[1],p[2]....p[k]下,符合的排列有多少个
考虑相邻的p[i]与p[i+1],我们发现p[i]右上方的所有点必须排在p[i+1]后面
于是我们设a[i]表示点p[i]右上方有多少个点(包括自己)
那么符合条件的排列数有多少呢?我们先考虑简单情况,只有两个p[1] p[2]
那么问题相当于求n的带限制排列数,限制是有x-1个数字必须排在数字p[1]之后
考虑这x个数顺序完全固定,那么根据经典结论方案数是n!/x!
但实际上这x个数的后x-1个数是可以排列的 ,所以方案数是n!/x!*(x-1)!=n!/x
那么推广到一般形式,即k>2,发现集合是嵌套的
所以对于一个给定的p[1]....p[k],方案数就是n!/(a[1]*a[2]*a[3]...*a[k])
于是我们可以得出一个O(n^2)的递推算法
f[i]表示以点i为最后一个saved的方案数
那么f[i]=Σf[j]*inv(a[j]) (j在i的左下方)
很容易发现这个如何优化,这个本质就是求左下方的和
于是第一维排序,第二维树状数组
此题也很容易推广到高维,cdq分治即可
2017CodeM复赛的更多相关文章
- 05:统计单词数【NOIP2011复赛普及组第二题】
05:统计单词数 总时间限制: 1000ms 内存限制: 65536kB 描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次 ...
- BOP 2016 复赛题目
复赛采用团队赛的形式,基于Azure云计算平台在实际大数据的基础上展开前沿课题的较量. 在编程之美挑战赛复赛中,选手需要通过组队共同完成复赛题,考查选手编程能力的同时,也考验选手的团队协作能力.选手点 ...
- CCF关于NOIP2014复赛报名的通知
CCF关于NOIP2014复赛报名的通知 CCF NOIP2014复赛全部实行网上注册.报名.未通过网上报名的选手将不具备参赛和申诉资格. 系统注册须知: NOIP2014复赛注册时间:2014年 ...
- NOIP2013,复赛及同步赛,报名及比赛,专题页面
本通知的对象仅仅是福州第十九中学的学生 所有参加复赛以及同步赛的选手,请务必要仔细阅读:<关于CCF NOIP2013复赛有关事宜的通知>,里面有比赛的时间.地点.以及比赛费用的说明. 参 ...
- 纪录参加noip2015(pj+tg)复赛
作为一个既参加了pj又参加了tg的初三蒟蒻,本次复赛不得不算一次很happy的事(可以不做周末作业,可以逃掉小班培训) 昨年参加pj的时候,一题眼瞎,二题作死,只有三题蒙了一点分,简直差到一种境界. ...
- CCF NOIP2015复赛获奖分数线及名额分配办法
CCF NOIP2015复赛获奖分数线及名额分配办法 中国计算机学会CCF NOI竞赛委员会.科学委员 ...
- hdu 4542 数论 + 约数个数相关 腾讯编程马拉松复赛
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4542 小明系列故事--未知剩余系 Time Limit: 500/200 MS (Java/Others) ...
- 2017"百度之星"程序设计大赛 - 复赛1005&&HDU 6148 Valley Numer【数位dp】
Valley Numer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- 2017"百度之星"程序设计大赛 - 复赛1003&&HDU 6146 Pokémon GO【数学,递推,dp】
Pokémon GO Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
随机推荐
- 第一次提交代码到github时经常遇到的问题
最近两年在OpenStack方面做了一些工作,写了一些实验性的plugin. 本着Open Source的共享精神,想尝试提交到github,以便他人能下载使用. 当你注册完github帐号之后,点击 ...
- EOS Dapp体验报告
EOS Dapp体验报告 EOS通过并行链和DPOS的方式解决了延迟和数据吞吐量的难题. EOS能够实现每秒百万级的处理量,而目前比特币是每秒7笔,以太坊是30-40笔,EOS的这一超强能力吊打比特币 ...
- PMP项目管理学习笔记(8)——整个管理之监控项目工作、综合变更控制、结束项目或阶段
监控项目工作 输入:企业环境要素.组织过程资产.项目管理计划.绩效报告 工具:专家判断 输出:变更请求.项目管理计划更新.项目文档更新 综合变更控制 输入:企业环境要素.组织过程资产.项目管理计划.变 ...
- Redis学习笔记(六)有序集合进阶
1.基础操作 ZCARD(获取成员数量) ZINCRBY key_name num member(将member的分数加num) ZCOUNT key_name min max(获取分数在min与ma ...
- 秒杀Sublime Text的微软开源代码编辑工具Visual Studio Code
1. 下载链接: https://code.visualstudio.com/ 2. 秒开一个ASP.NET网站源码 3.编辑CSS颜色支持 4.Git支持 5.常用快捷键 Ctrl+Shift+P ...
- COGS 1361. 树
★ 输入文件:treed.in 输出文件:treed.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 在一个凉爽的夏夜,xth和rabbit来到花园里砍树.为啥 ...
- SQLite-Like语句
SQLite – LIKE子句 使用SQLite LIKE运算符 用于匹配文本.如果搜索表达式可以匹配模式表达式,如操作符将返回true,这是1.有两个通配符与Like操作符一起使用: The per ...
- Node.js Addons翻译(C/C++扩展)
PS:请先升级Node 6.2.1,Node 升级命令 npm install -g n;n stable.NOde.js扩展是一个通过C/C++编写的动态链接库,并通过Node.js的函数requi ...
- Android(java)学习笔记158:多线程断点下载的原理(JavaSE实现)
1. 为什么需要多线程下载? 服务器的资源有限,同时的平均地分配给每个客户端.开启的线程越多抢占的服务的资源就越多,下载的速度就越块. 2. 下载速度的限制条件? (1)你的电脑手机宽带的带宽 ...
- ubuntu卡机
卡机了用ctrl+alt+t打开终端然后top看后台程序 最后kill -9 + PID就能把最影响问题的程序杀掉 我之前就杀了一个占100%cpu的程序