2017CodeM复赛

A、配对游戏(loj6191)

题目:

https://loj.ac/problem/6191

分析:

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)

题目:

https://loj.ac/problem/6192

分析:

直观想法是要在树上维护一个可撤销的单调栈……但好像不太好弄……换思路

首先可以把询问(u,v,c)转换成u点下挂个点,这个点的点权是c

现在关键问题就是如何快速找到树上每个点的father,这个father是点到根路径上最近的比它大的那个点

可以这样搞,倍增求出fa[i][j]表示i的j级父亲,mx[i][j]表示i向上到j级父亲下面这段点的最大点权

那么就可以根据mx倍增走出每个点的最近父亲,然后对于新的父亲进行倍增

对于每个询问根据深度倍增就行了

时间复杂度O(nlogn)

C、神秘代号(loj6193)

题目:

https://loj.ac/problem/6193

分析:

n个点n条边构成的是一个基环外向树,那个环所表示的模方程正好首位相接,可以解出一个未知数xi的值

然后发现如果确定了一个点的值,那么其它点的值都可以通过bfs得到,并且不会冲突

注意可能有多个基环外向树

D、排列(loj6194)

待填坑

时间: 2024-10-16 12:24:54

2017CodeM复赛的相关文章

hdu 4542 数论 + 约数个数相关 腾讯编程马拉松复赛

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4542 小明系列故事--未知剩余系 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 889    Accepted Submission(s): 207 Problem Description "今有物不知其数,三三数之有二,五五数之有三,七七数之有

海康威视复赛题 ---- 碰撞避免方案(1)

题目详情:http://www.cnblogs.com/wlzy/p/7096182.html 复赛题要求机器人之间不允许发生碰撞和相遇,拿到题目后,大体有以下几个解题思路: 1.基于侧边停车的碰撞避免算法 侧边停车是属于一种局部路径规划,只要保证每辆车时时刻刻拥有独立的侧停车位,那么即使发生相遇冲突,也可以及时侧停避让,算法大体描述如下: 定义机器人占据点属性: 机器人可获取侧停车位的最小路径点集. 预测点属性: 从占据点下个点到路径终点的点集. 开始: 1.初始化地图map 2.计算每个机器

陕西省第九次大学生高等数学竞赛复赛试题

参考解答见 家里蹲大学数学杂志第6卷第430期_陕西省第九次大学生高等数学竞赛复赛试题参考解答

【百度之星2014~复赛)解题报告】The Query on the Tree

声明 笔者最近意外的发现 笔者的个人网站http://tiankonguse.com/ 的很多文章被其它网站转载,但是转载时未声明文章来源或参考自 http://tiankonguse.com/ 网站,因此,笔者添加此条声明. 郑重声明:这篇记录<[百度之星2014~复赛)解题报告]The Query on the Tree>转载自 http://tiankonguse.com/ 的这条记录:http://tiankonguse.com/record/record.php?id=673 前言

LibreOJ #6191. 「美团 CodeM 复赛」配对游戏

二次联通门 : LibreOJ #6191. 「美团 CodeM 复赛」配对游戏 /* LibreOJ #6191. 「美团 CodeM 复赛」配对游戏 概率dp 不是很懂为什么这样做... */ #include <cstdio> #include <iostream> const int BUF = 12312312; char Buf[BUF], *buf = Buf; inline void read (int &now) { for (now = 0; !isdi

2017&quot;百度之星&quot;程序设计大赛 - 复赛1005&amp;&amp;HDU 6148 Valley Numer【数位dp】

Valley Numer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 311    Accepted Submission(s): 165 Problem Description 众所周知,度度熊非常喜欢数字. 它最近发明了一种新的数字:Valley Number,像山谷一样的数字. 当一个数字,从左到右依次看过去数字没有出现先递增接

2017&quot;百度之星&quot;程序设计大赛 - 复赛1003&amp;&amp;HDU 6146 Pok&#233;mon GO【数学,递推,dp】

Pokémon GO Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 171    Accepted Submission(s): 104 Problem Description 众所周知,度度熊最近沉迷于 Pokémon GO. 今天它决定要抓住所有的精灵球! 为了不让度度熊失望,精灵球已经被事先放置在一个2*N的格子上,每一个格子上都

2017&quot;百度之星&quot;程序设计大赛 - 复赛1001&amp;&amp;HDU 6144 Arithmetic of Bomb【java大模拟】

Arithmetic of Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 129    Accepted Submission(s): 94 Problem Description 众所周知,度度熊非常喜欢数字. 它最近在学习小学算术,第一次发现这个世界上居然存在两位数,三位数……甚至N位数! 但是这回的算术题可并不简单,由于

2017华为软件精英大赛复赛体验及最终代码

踉踉跄跄进入复赛,复赛题目出来的那一天,结点数最多10000,边最多10000.感觉我的费用流肯定要崩了啊:都有点想弃赛的冲动: 但是缓了几天之后,还是准备试一试,不能给学校丢人啊,到最后一个0分多尴尬: 复赛最大的变化就是服务器有了带宽上限,这点其实不难解决,计算费用流的时候每次加服务器不再提供无限流聊,提供最大档的流量不就可以了,但是这么做出来的结果cost一直很大:改了好久都没有解决: 还有遇到的参赛以来最大的困难就是输出路径那一块了,初赛的时候也听说好几个人输出路径有问题,搞了好几天,我