2016 Multi-University Training Contest 10 solutions BY BUPT
1001.
一个数组上的两个区间求中位数,可以通过分类讨论直接找到中位数,复杂度O(1).不过本题数据较小,优美的log(n)也可过.
1002.
直接求得阴影面积表达式即可.
1003.
二分完成时间判是否可行.不妨设A的deadline比B的deadline短,对于一次判断内,由于总时间固定,两类任务完成的总时间固定,则可用来练习的时间也固定,首先找到可完成的收益最大的A类任务,若找不到则在B里找,此时若B类的收益还不如去练习,而且练习时间有剩余的话,就先去练习.A类任务若能做则不需要考虑收益,因为要优先保证A的deadline,先练后练对最优解无影响.
1004.
对于第i个数,如果i mod k == 0, 说明它是第一轮出队的,若i mod k != 0,那么i在一轮之后等同于一开始i-i/k的状态,则一遍地推可求得所有数是第几轮第几个出队的,预处理出出队序列O(1)回答查询即可.
1005.
为了使得花费最小,对于一段路来说,它的打开时间就是最早一次被用到到最后一次被用到这段时间.对于每一个操作a,b,在两个点上打上标记,从左至右做一遍扫描,可知道每段路当前有哪些操作会用到它,取出最大值和最小值,在这两个位置打上标记,最后对结果再进行一次扫描即可.
1006.
由于数据限制,只有竖向与横向的线段才会产生交点,所以先对横向线段按x端点排序,每次加入一个线段,将其对应的y坐标位置+1,当出现一个竖向线段时,查询它的两个y端点之间的和即为交点个数.
1007.
用dp[i][j][d]表示构建好i个字符后,最后面的最长公共长度为j,d表示之前答没达到过m,后一状态有j+1,0两种,O(1)递推即可.由于n很大m很小,可以用矩阵快速幂处理.复杂度O(m^3logn)
1008.
直接搜索的状态空间有24(旋转) \(\times\) 2(镜面)\(\times\) 6!(颜色),乘上O(24)的验证,单组数据复杂度到了O(1e6),经过一些很麻烦的优化后能降到O(1e3)左右,差不多能AC.
标解是hash,根据每种颜色的四个位置,求出C(4,2)个距离,共6\(\times\)C(n,2)个距离,排序之后能排除颜色交换的干扰,若两个状态的hash值,判定为同构,否则不同构.用标程和暴搜对拍了5e6组单组数据,没有diff.验证了可行性.
1009.
必胜条件是所有的石子的sg数模三异或为0,如7,11,13,14为0111,1011,1101,1110
然后可以枚举一个石子的后继然后再再其他石子的后继看是否可行.
复杂度是预处理每个石子走了后继以后的变化O(m)并将其记录,可用map或者hash 然后枚举一个石子的后继然后再在其他的变化中查找能让它变0的方法数,复杂度是O(M$\times $M),如果用map再多一个log(m).
1010.
考虑到操作数M较小而树较大,所以可以对操作数进行计算。
假设初始时树上的节点的最大值为x,则在操作完成后的树上的节点的最大值不超过x+M,不低于x,所以可以枚举最终状态的值再计算概率。
设dp[i][k]表示操作i所作用的那棵子树v在操作完成后最大值不超过x+k的概率,maxtree(v) 为该子树初始时的最大值
那么可得递推式
dp[i][k]=p[i] \(\times\) π(dp[j][k-1])+(1-p[i]) \(\times\) π(dp[j][k-1]) j为i的同一棵子树上的后继操作( maxtree(v)<=maxtree(root)+k);
or dp[i][k]=0;(maxtree(v)>maxtree(root)+k);
注意到子树的最大值会比maxtree(root)小很多,因此k可能为负, 所以要加上偏移量M
为了便于计算,添加作用于根节点的概率为0的操作(root,0)
然后预处理出每个操作u的后继操作即可。
先给每一个树标记上dfs的入序indfn[v]和出序outdfn[v],那么作用在v节点上的操作的影响区间就是[indfn[v],outdfn[v]], 所以计算出区间之间的包含关系即可
最后结果为Σ(maxtree(root)+k) \(\times\) (dp[0][k+MAX_M]-dp[0][k-1+MAX_M]);
总复杂度O(M \(\times\) M+N);
1011.
直接模拟即可.
2016 Multi-University Training Contest 10 solutions BY BUPT的更多相关文章
- 2016 Multi-University Training Contest 10
solved 7/11 2016 Multi-University Training Contest 10 题解链接 分类讨论 1001 Median(BH) 题意: 有长度为n排好序的序列,给两段子 ...
- 2016 Al-Baath University Training Camp Contest-1
2016 Al-Baath University Training Camp Contest-1 A题:http://codeforces.com/gym/101028/problem/A 题意:比赛 ...
- hdu 5416 CRB and Tree(2015 Multi-University Training Contest 10)
CRB and Tree Time Limit: 8000/4000 MS (J ...
- 2015 Multi-University Training Contest 10 hdu 5406 CRB and Apple
CRB and Apple Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ...
- 2015 Multi-University Training Contest 10 hdu 5412 CRB and Queries
CRB and Queries Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Other ...
- [二分,multiset] 2019 Multi-University Training Contest 10 Welcome Party
Welcome Party Time Limit: 4000/4000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)T ...
- 2015 Multi-University Training Contest 10(9/11)
2015 Multi-University Training Contest 10 5406 CRB and Apple 1.排序之后费用流 spfa用stack才能过 //#pragma GCC o ...
- 2015 Multi-University Training Contest 6 solutions BY ZJU(部分解题报告)
官方解题报告:http://bestcoder.hdu.edu.cn/blog/2015-multi-university-training-contest-6-solutions-by-zju/ 表 ...
- 2019 Multi-University Training Contest 10
目录 Contest Info Solutions C - Valentine's Day D - Play Games with Rounddog E - Welcome Party G - Clo ...
随机推荐
- Luogu [P3951] 小凯的疑惑
题目详见:[P3951]小凯的疑惑 首先说明:此题为一道提高组的题.但其实代码并没有提高组的水平.主要考的是我们的推断能力,以及看到题后的分析能力. 分析如下: 证明当k>ab-a-b时,小凯可 ...
- Bootstrap历练实例:向列表组添加链接
向列表组添加链接 通过使用锚标签代替列表项,我们可以向列表组添加链接.我们需要使用 <div> 代替 <ul> 元素.下面的实例演示了这点: <!DOCTYPE html ...
- C#数组简介
一.数组的定义 数组:是一种包含若干个变量的数据结构,这些变量可以通过索引进行访问. 数组的元素:数组中的变量就称为数组的元素. 元素类型:数组中的元素具有相同的数据类型,该数据类型就称为数组的元素类 ...
- 2d游戏中的射线与矩形检测碰撞
cc.exports.LineCollideRect(startLine,endLine,rect)--向量与矩形检测碰撞 --获取矩形的四个顶点位置 local p = {cc.p(rect.x,r ...
- linux常用命令(配置查看,定时任务)
1.查看所有待挂载设备信息 fdisk -l # fdisk -l Disk /dev/sda: bytes heads, sectors/track, cylinders, total sector ...
- DeepFaceLab小白入门(3):软件使用!
换脸程序执行步骤,大部分程序都是类似.DeepFaceLab 虽然没有可视化界面,但是将整个过程分成了8个步骤,每个步骤只需点击BAT文件即可执行.只要看着序号,一个个点过去就可以了,这样的操作应该不 ...
- 22.Yii2.0框架多表关联一对一查询之hasOne
思路: 通过文章查它对应的分类信息 一对一的关系 控制器里 //一对一关联查询 public function actionRelatesone() { //方法一,hasOne() 用查一条文章的结 ...
- python面试题之python多线程与多进程的区别
多线程可以共享全局变量,多进程不能 多线程中,所有子线程的进程号相同,多进程中,不同的子进程进程号不同 线程共享内存空间:进程的内存是独立的 同一个进程的线程之间可以直接交流:两个进程想通信,必须通过 ...
- CodeForces - 899E Segments Removal (优先队列 + 链表)
给定一个序列,每次从序列中找一个长度最大的元素相同的片段,删除它. 如果长度相同,删除最靠左边的那个片段. 问,需要删几次. 用链表处理删除片段.对于删除之后两边又能连成一个片段的那种情况,用set记 ...
- HDU - 1496 Equations (hash)
题意: 多组测试数据. 每组数据有一个方程 a*x1^2 + b*x2^2 + c*x3^2 + d*x4^2 = 0,方程中四个未知数 x1, x2, x3, x4 ∈ [-100, 100], 且 ...