多校赛题解
零壹號
这个作者很懒,什么都没留下…
展开
-
2018 Multi-University Training Contest 1----hdu 6301
题意: 给出一组长度为n的数组,有m个区间内的数不相同,并且按字典排序为最小 例如题目中的第三个例子为 5 2 1 3 2 4 共有5个数,有2个要求 1-3不一样 2-4不一样 很明显就可以知道1-3的排序为1 2 3,而2-4的排序为2 3 1,剩下没有要求的按1填充 所以答案就为1 2 3 1 1 思路: 用一个优先队列把...原创 2018-07-24 11:32:57 · 133 阅读 · 0 评论 -
2018 Multi-University Training Contest 9----hdu 6425 Rikka with Badminton
点击链接 题意: 学生既没有球拍也没有球,b学生只有球拍,c学生只有球,d学生同时有球拍和球。俱乐部将组织学生打羽毛球。每个学生都可以选择自由参加。因此,有可能的注册状态。要打羽毛球,必须至少有两名学生有球拍,至少有一名学生有球。因此,如果没有足够的球或球拍,活动将失败。 现在,Rikka想要计算所有可能的注册状态中的状态数,这将使活动失败。 求失败的数量 这道题可以...原创 2018-08-20 21:43:47 · 347 阅读 · 0 评论 -
2018 Multi-University Training Contest 9----hdu 6415 Rikka with Nash Equilibrium
点击链接 这道题根据大佬推出来的公式就是n!*m!*(n*m)!/(n+m-1)! #include<bits/stdc++.h> using namespace std; int main(){ int t; scanf("%d",&t); while(t--){ int n,m,k; scanf("%d %d %d",&n,&m...原创 2018-08-20 21:18:46 · 274 阅读 · 2 评论 -
2018 Multi-University Training Contest 10----hdu 6434 Count
题目链接 题意: 如题所求和 思路: 暴力是肯定会TLE的,这道题只能是找规律,先打一个表,再oeis一下,发现n和n-1项的差符合欧拉函数线性筛 代码: #include <cmath> #include<bits/stdc++.h> using namespace std; const ...原创 2018-08-23 11:17:37 · 112 阅读 · 0 评论 -
2018 Multi-University Training Contest 10----hdu 6432 Cyclic
题目链接 题意: 找到n个数的循环排列组合之中不会出现[ i , i+1 % n ]的情况 例如第一个样例n=4的时候 不能出现1 - 2 , 2 - 3 , 3 - 4 , 4 - 1这几种情况 1 3 2 4像这种是错误的,因为可以循环排列,实际上是1 3 2 4 1 3 2 4 ...原创 2018-08-23 10:27:31 · 184 阅读 · 0 评论 -
2018 Multi-University Training Contest 10----hdu 6433 Pow(大数运算)
点击链接 题意: 给你一个n,找共有多少种组个方式 思路: 其实这个东西就是个幌子,真正让你求的其实就是n个数字总共有多少种排列方式,也就是次,而题目给的数字较大,需要大数板来写 一般来说这个是需要大数板来写的,但是看大佬的代码看到了一个神奇的东西,代码如下 #include<bits/stdc++.h> using na...原创 2018-08-23 10:15:31 · 290 阅读 · 0 评论 -
2018 Multi-University Training Contest 8----hdu 6406 Taotao Picks Apples (线段树)
点击链接 题意:给你一串数字让你求严格递增的有多少个 思路: 用线段树可以提升查找的速度,tr[rt].ma就是记录当前到此的最大值,而ans就是左子树的ans加上右子树大于该值前的max值的数量 代码: #include<bits/stdc++.h> using namespace std; int a[100005]; struct p...原创 2018-08-16 15:52:14 · 156 阅读 · 0 评论 -
2018 Multi-University Training Contest 8----hdu 6400 Parentheses Matrix (构造)
点击链接 题意:给你h和w代表矩形的长和宽,让你构造一个仅包含‘(’‘)’的具有最大完美值的矩形 完美的定义如下 ()(()) 横着一整行如果全部匹配成功,,完美值为1 ( ( ) ) 像上面这样一列也满足则也算匹配成功,,完美值+1 这道题来看有很多种情况,我们可以先参考一下题解 也就是说总的就分成几类来看 ...原创 2018-08-16 10:14:18 · 172 阅读 · 0 评论 -
2018 Multi-University Training Contest 6----hdu 6373 Pinball (这是道纯物理题啊!!)
点击链接 题意:给你一个球的坐标和一个板的斜率,求几次能落下斜面 思路:完完全全的一道高中物理题啊,考虑把坐标系给转一下会好做很多 这样就可以把重力g分解成gx和gy,把球看做是上下弹,并且右移,而上下弹的时间是相同的,通过x=1/2*g*t...原创 2018-08-08 20:23:21 · 130 阅读 · 0 评论 -
2018 Multi-University Training Contest 5----hdu 6351 Beautiful Now(全排列爆搜)
点击链接 题意: 给出一段数字,在更换k次后,找到最大值和最小值。 题解: 这道题没办法用贪心算,只能用dfs或者全排列爆搜,题目给的范围只有10位数,我们可以全部列出来全排列 10*9*8*7*6*5*4*3*2*1 暴力列出所有就是10!次 我们用下标来进行排列变换, 来排列好的值按照1 2 3 ...原创 2018-08-07 15:17:08 · 140 阅读 · 0 评论 -
2018 Multi-University Training Contest 4----HDU 6341 Let Sudoku Rotate (DFS)
链接 题意:分大块旋转完成数独,并且找到最小的旋转数 查每一行每一列,如果都能满足不重复,就可以记录一次答案,并于之前答案对比寻找较小值 使用dfs跑可以找到所有的答案。。。 #include<bits/stdc++.h> using namespace std; char s[20][20]; char temp[5][5]; int vis[20]; i...原创 2018-08-02 15:33:14 · 144 阅读 · 0 评论 -
2018 Multi-University Training Contest 7----hdu 6396 Swordsman (IO输入挂)
点击链接 题意: 给一个人的k个属性,,然后给n只怪的k个属性,当主角所有属性高于怪的时候能将怪的属性吞噬并杀死 求主角能杀多少只怪并且属性最高到多少 思路: 因为题目的属性最多为五,用一个一维优先队列,队列里面放怪的单个属性进行排序,这里我们需要用到pair绑定属性和怪的id,优先队列里面我们可以直接判断能打死的怪,...原创 2018-08-14 16:42:51 · 118 阅读 · 0 评论 -
2018 Multi-University Training Contest 7----hdu 6386 Age of Moyu(Dijkstra)
点击链接 题意:给你一些路径,每次换路径的id时加收一块,求到终点所需的最少钱 思路:用Dijkstra跑一遍所有路径,从某条边到另一条边如果遇到不同的路径的时候cost+1,遇到相同的保留该cost 如果只是普通的跑会TLE,这时候我们需要用动态数组来存遍,以便在某个点时访问所有路径时候快点,还需要一个优先队列进行bfs操作 代码: #include<bits/st...原创 2018-08-14 10:57:57 · 149 阅读 · 0 评论 -
2018 Multi-University Training Contest 3----hdu 6319 Ascending Rating(单调队列)
题意: 求从1到n-m+1分别为起点的连续的m个区间长度中从起点开始的上升序列的长度和最大值 用单调队列从后往前就行 #include<bits/stdc++.h> using namespace std; const int maxn=10000005; long long nex[maxn],a[maxn],qq[maxn],t; long long p,q,r,mo,an...原创 2018-07-31 09:45:57 · 200 阅读 · 0 评论 -
2018 Multi-University Training Contest 2----hdu 6315 Naive Operations(线段树)
题意: 给一个长度为n的a数组和b数组,b数组给固定值做分母,每次可以add a数组的一个区间,区间内的数全部加一,也可以query a数组区间内各个数模b数组的值的和 这道题单纯暴力或者线段树都是会TLE,需要用个sub数组来记录当前需要更新的最小值,每次需要add的时候sub就会-1,只有当sub[root]=0的时候才会更新lazy和sum #include<bit...原创 2018-07-26 16:52:54 · 140 阅读 · 0 评论 -
2018 Multi-University Training Contest 2----hdu 6313----Hack It
题意: 构造一个n*n 的矩阵 满足, 任意一个子矩阵 的4个角 不能全是1 , 且满足 1 的个数>= 85000. 例如当n=5时,分为五大板块,构造一个n*n的矩阵如下: i/j | 0 1 2 3 4 0 | 10000 10000 10000 10000 10000 1 | 10000 0...原创 2018-07-26 10:12:43 · 140 阅读 · 0 评论 -
2018 Multi-University Training Contest 1----hdu 6299
题意:找到能够使组成'(' ')'个数的排列,不同行可以组合 先把能自己组成“()”的去掉 所以也就只剩下下面几类 ( ( ( ( ( ) ) ) ) ) ) ( ( ( ( ) ) ) ) ( 关键在于把这些排序好就可以了 让'('多的在左边 ')'多的在右边 #include<bits/stdc++.h> using namespace st...原创 2018-07-24 18:47:13 · 149 阅读 · 0 评论 -
2018 Multi-University Training Contest 9----hdu 6418 Rikka with Stone-Paper-Scissors
点击链接 题意: 两个人在玩剪刀石头布,每一种都有各自的卡牌数,求第二个人赢的最大期望值 思路: 因为第一个人出牌是随机的,所以直接从第二个人看,假设第二个人出了剪刀,那么他的得分就是此人的剪刀*布的概率-剪刀*石头的概率,也就是 ,以此类推 代码: #include<bits/stdc++.h> usi...原创 2018-08-21 09:38:19 · 192 阅读 · 0 评论