2015 Multi-University Training Contest 1 题解&&总结
----------
题意
给定一个数列(长度<$10^5$),求有多少区间[l,r],且区间内有多少数,满足区间内其它数不是他的约数。
数的范围$[1,10000]$。结果对$10^9+7$取模。
Solution
首先可以预处理每个数的约数有哪些。对每个数存下它的位置有哪些。
然后可以枚举每一个位置,利用二分找到左边第一个是它约数的数,和右边第一个是他约数的数。
假设向左有L个数,向右有R个数。那么ans应该加上(L*R)。
时间复杂度$O(n*log(n)*log(m))$
题意
给定一个数列(长度<$10^5$),求有多少区间,满足区间内任意两数差的绝对值小于k。
Solution
1. 维护两个优先队列,一个大值优先,一个小值优先。移动区间的两个端点l和r
如果当前最大值-最小值>=k,将l从两个队列中删除,l++。
如果当前最大值-最小值<k,ans+=(r-l+1),r++。
时间复杂度$O(n*log(n))$
2. 维护ST,枚举左端点l,二分右端点r。ans+=(r-l+1);
时间复杂度$O(n*log(n)*log(n))$
题意
X国有n($n<10^5$)个城市,用n-1条无向边连接。
城市i有一个权值$w_i(w_i<100)$,如果炸毁城市i,那么距离i不超过$w_i$的节点也会被炸毁。
求炸毁所有城市最少需要炸几次。
Solution
相比前几天做的 SGU 280 不同之处在与这题对每个点有不同的k。
但这一题不能贪心,只能采用dp的方法。形式上却也差不多,都是对子树的讨论。
令f[i][j]为以i为根的子树,能向子树外拓展i个节点最少需要炸毁几个城市。
G[i][j]为以i为根的子树,子树内有节点未被炸毁,且距离根为j最少需要炸毁几个城市。
转移方程:
不炸毁u点
$f[u][j]=f[v][j+1]+min(f[k][0~j+1],G[k][0~j])$;
$G[u][0]=f[u][0]$;
$G[u][j]=G[v][j-1]+min(f[k][0~j-1],G[k][0~j-1])$;
炸毁u点
$f[u][w[u]]=1+min(f[v][0~w[u]+1],G[v][w[u]])$;
这里需要对f[][]和G[][],求前缀最小值。
节点比较多,避免爆栈不能直接用递归的方法做。
时间复杂度$O(n*w)$
题意
有n($n<200$)种糖果,每种有$a_i$ ($a_i<200$)个。
求有多少种方法从n个糖果中取一部分并分成数量相同的两份。
结果对$10^9+7$取模。
Solution
令DP[i][j]为前i种糖果分完后第一部分比第二部分多了j个的种数。
设$a_{i+1}=t $ 可以得到转移.
$DP[i+1][j]=DP[i][j+k]*((t-|k|)/2+1),(|k|<=t)$
这个转移是$O(n)$的,我们需要让它简单一点。
注意到当t为偶数且t=4的时候,以j为准。
从j-4到j+4的乘法系数的差为-2,-2,-1,-1,0,-1,-1,-2,-2
再看转移$DP[i+1][j+1]$时
从j-3到j+5的乘法系数的差为 -2,-2,-1,-1,0,-1,-1,-2,-2
从这里发现可以通过预处理$DP[i]$,来使得可以$O(1)$由$DP[i+1][j]$转移到$DP[i+1][j+1]$。
只要加上右边偶数(包括0)位,减去左边奇数位。
t为奇数的情况类似。
时间复杂度$O(n^3)$
题意
一个2*2的魔方,掉在地上分开后重新组装,给出组装后的样子,判断该魔方是否可以通过旋转还原。
>规律题,不甚了解。
题意
给一个$n(n<2000)$个点,$m(m<60000)$条边的无向图。
分别求最少删掉多少条边该图从1到n的最短路长度变大,最多删掉多少条边该图从1到n的最短路不发生变化。
Solution
先分别以1和n点为起点做一次单源最短路。求出哪些边哪些点在所有的最短路中。
然后用所有的最短路边做一次最小割。就能得出最少删掉的边的数目。
用m减去边最少最短路的边数,就可以求出最多可以删掉的边数。
题意
给一棵$n(n≤10^5)$个节点的树,再给$q(q≤10^5)$个操作,初始集合S为空,
每个操作要在一个集合S中删除或增加某些点,输出每次操作后:要使得集合中任意两点互可达所耗最小需要多少权值。
Solution(官方题解)
题意
给定正整数$n(n<2*10^{18})$和$r(r≤62)$,定义数列为从正整数序列中删除所有能表示成$a^b(2≤b≤r)$的数后的数列
求数列的第n个数是多少。30000组数据。
Solution
利用容斥计算前k个数有多少个在数列里面。然后可以二分或者迭代k。
时间复杂度$O(30000*log(n)*62)$
题意
给$n(n<20000)$个圆,任意两圆的只有包含和相离关系。
两个人玩游戏,每次可以消去一个圆和它包含的所有圆,最后不能消去的失败。
判断先手赢还是后手赢。
Solution
树上博弈。可以先对半径排序。半径最小的包含圆i的圆就是它的父亲。直接暴力判断建树都能过,稳妥的方法还是用线段树。
叶子节点的SG值为0,中间节点的SG值为它的所有子节点的SG值加1后的异或和。直接dfs就行。
2015 Multi-University Training Contest 1 题解&&总结的更多相关文章
- 2015 Multi-University Training Contest 1 题解 BY FZUw
题目链接:5288-5299 HDU5288 题解原文链接:我是链接
- 2016 Multi-University Training Contest 2题解报告
A - Acperience HDU - 5734 题意: 给你一个加权向量,需要我们找到一个二进制向量和一个比例因子α,使得|W-αB|的平方最小,而B的取值为+1,-1,我们首先可以想到α为输入数 ...
- 2016 Multi-University Training Contest 6 题解
我只能说: A Boring Question 下面公式重复了一行 \[ \sum\_{0\leq k\_{1},k\_{2},\cdots k\_{m}\leq n}\prod\_{1\leq j& ...
- 2016 Multi-University Training Contest 10
solved 7/11 2016 Multi-University Training Contest 10 题解链接 分类讨论 1001 Median(BH) 题意: 有长度为n排好序的序列,给两段子 ...
- 2015 Multi-University Training Contest 8 hdu 5390 tree
tree Time Limit: 8000ms Memory Limit: 262144KB This problem will be judged on HDU. Original ID: 5390 ...
- 2015 UESTC Winter Training #8【The 2011 Rocky Mountain Regional Contest】
2015 UESTC Winter Training #8 The 2011 Rocky Mountain Regional Contest Regionals 2011 >> North ...
- 2015 UESTC Winter Training #7【2010-2011 Petrozavodsk Winter Training Camp, Saratov State U Contest】
2015 UESTC Winter Training #7 2010-2011 Petrozavodsk Winter Training Camp, Saratov State U Contest 据 ...
- Root(hdu5777+扩展欧几里得+原根)2015 Multi-University Training Contest 7
Root Time Limit: 30000/15000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Su ...
- 2015 Multi-University Training Contest 6 solutions BY ZJU(部分解题报告)
官方解题报告:http://bestcoder.hdu.edu.cn/blog/2015-multi-university-training-contest-6-solutions-by-zju/ 表 ...
随机推荐
- __FILE__,__LINE__,FUNCTION__
__FILE__,__LINE__,FUNCTION__实现代码跟踪调试 ( linux 下c语言编程 ) 先看下简单的初始代码:注意其编译运行后的结果. root@xuanfei-desktop:~ ...
- oralce health monitor
1. Health Monitor简介 Health Monitor是11g里新增加的特性,用于数据库的各层和各个组建的诊断检查.例如可以检查:文件损坏.物理逻辑块损坏.redo和undo故障. ...
- iOS开发中懒加载的使用和限制
1.在开发过程中很多时候,很多控件和对象需要alloc为了,提高开发效率使得懒加载得以产生. 2.下边用代码解释: - (NSMutableArray *)newsArr{ if (!_newsArr ...
- ABAP多表关联查询
inner join(等值连接) 只返回两个表中联结字段相等的行 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有 ...
- Log4E
工具地址:http://marketplace.eclipse.org/content/log4e Log4E插件能够帮助你在Java项目中轻松地创建记录器.它可以在以下几个任务中提供帮助:记录器声明 ...
- 彻底解决iOS项目中 "_OBJC_CLASS_$_XXXService", referenced from: 的相似问题
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmllcGVuZzEwOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- Derby使用2—C/S模式
零.回顾 这部分先来回顾一下上一篇博客中的主要内容.上一篇博客中主要简单介绍了Derby数据的历史,特点,安装以及使用的两种模式.这篇文章主要介绍这两种模式中的一种模式 一.启动服务端程序 第一部分主 ...
- [译]信仰是怎样毁掉程序猿的How religion destroys programmers
作者原文地址 作者John Sonmez 英文水平不够高,翻译不太准确. 翻译地址:译文 尽管文章是13年的,可是这段时间恰好看到.net开源核心之后,各种java和.net掐架. 语言之争有些牵涉到 ...
- BeagleBone Black Linux驱动程序开发入门(0): 开发环境
搭建arm-linux交叉编译环境的教程有很多,这里只作简要说明.Host宿主机是Ubuntu10.04,我把它装在Windows XP的VirtualBox虚拟机中,这样相当于一台主机有两个操作系统 ...
- select组件
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...