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

  1. 2016 Multi-University Training Contest 10

    solved 7/11 2016 Multi-University Training Contest 10 题解链接 分类讨论 1001 Median(BH) 题意: 有长度为n排好序的序列,给两段子 ...

  2. 2016 Al-Baath University Training Camp Contest-1

    2016 Al-Baath University Training Camp Contest-1 A题:http://codeforces.com/gym/101028/problem/A 题意:比赛 ...

  3. hdu 5416 CRB and Tree(2015 Multi-University Training Contest 10)

    CRB and Tree                                                             Time Limit: 8000/4000 MS (J ...

  4. 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 ...

  5. 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 ...

  6. [二分,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 ...

  7. 2015 Multi-University Training Contest 10(9/11)

    2015 Multi-University Training Contest 10 5406 CRB and Apple 1.排序之后费用流 spfa用stack才能过 //#pragma GCC o ...

  8. 2015 Multi-University Training Contest 6 solutions BY ZJU(部分解题报告)

    官方解题报告:http://bestcoder.hdu.edu.cn/blog/2015-multi-university-training-contest-6-solutions-by-zju/ 表 ...

  9. 2019 Multi-University Training Contest 10

    目录 Contest Info Solutions C - Valentine's Day D - Play Games with Rounddog E - Welcome Party G - Clo ...

随机推荐

  1. 01_2Java开发环境的下载 安装 配置

    01_2Java开发环境的下载 安装 配置 l 配置Java开发环境步骤(WindowsXP) l 下载并按照最新版本的J2SDK l 设置Windows环境变量 l 选择合适的文本编辑器或使用集成开 ...

  2. java子父类初始化顺序 (1)父类静态代码块(2)父类静态变量初始化(3)子类静态代码块(4)子类静态变量初始化(5)main(6)有对象开辟空间都为0(7)父类显示初始化(8)父类构造(9)子类显示初始化(10)子类构造

    标题 静态代码块与静态成员变量还要看代码的先后顺序 看程序,说出结果 结果为: x=0 看程序,说出结果 结果如下: 补充 : 静态代码块:static{ } 在JVM加载时即执行,先于主方法执行,用 ...

  3. Sorted Union-freecodecamp算法题目

    Sorted Union 1.要求 写一个 function,传入两个或两个以上的数组,返回一个以给定的原始数组排序的不包含重复值的新数组. 换句话说,所有数组中的所有值都应该以原始顺序被包含在内,但 ...

  4. Codeforces 517 #B

    http://codeforces.com/contest/1072/problem/B 开始想的只有搜索,时间复杂度$O(4^n)$,明显有问题. 想了半个小时没有思路,然后想到了正难则反,就开始步 ...

  5. javascript实现原生ajax的几种方法介绍

    自从javascript有了各种框架之后,比如jquery,使用ajax已经变的相当简单了.但有时候为了追求简洁,可能项目中不需要加载jquery这种庞大的js插件.但又要使用到ajax这种功能该如何 ...

  6. Python9-网络编程-day30

    # 由于不同机器上的程序要通信,才产生了网络# server# client# 端口 找到的程序# 在计算机上,每一个需要网络通信的程序,都会开一个端口# 在同一时间只会有一个程序占用一个端口# 不可 ...

  7. JAVA基础篇—多态

    class ColaEmployee父类 package com.cola; public class ColaEmployee { private String name; private int ...

  8. LeetCode(173) Binary Search Tree Iterator

    题目 Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the ...

  9. LeetCode (160) Intersection of Two Linked Lists

    题目 Write a program to find the node at which the intersection of two singly linked lists begins. For ...

  10. German Collegiate Programming Contest 2015

    // Legacy Code #include <iostream> #include <cstdio> #include <cstring> #include & ...