![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
比赛补题
HangShao99
将来的你一定会感谢现在拼命的自己~~~~
展开
-
2018-2019 ACM-ICPC, Asia Jiaozuo Regional Contest H题(后缀数组+单调栈+线段树)
题目链接:https://nanti.jisuanke.com/t/A2206题意:给你n个数,1<=l<=r<=n,求所有本质不同的a[l...r]的最大值的和分析:本质不同的子串可想到用后缀数组,所有子串等价于该串的所有后缀的所有前缀,利用后缀数组求本质不同的子串的原理,即本质不同的子串=总子串个数-本质相同的子串个数=n-sa[i]+1为该后缀的前缀个数,即...原创 2019-10-20 21:39:38 · 287 阅读 · 0 评论 -
2019 Multi-University Training Contest 7 补题
题目:hdu6656题意:你处于i级,必须花费a[i]元的前提下,有r[i]/s[i]的概率跳到i+1级,也有1-r[i]/s[i]的概率掉回x[i]级(x[i]<=i),有q组询问,每次有l,r问从l升到r的花费期望。分析:需要列出方程找公式,设f(i->i+1)表示从i->i+1花费的期望,则用sum[i]表示从1->i的花费期望则化简得:最后递推一...原创 2019-08-12 21:14:41 · 268 阅读 · 0 评论 -
2019牛客暑期多校训练营(第八场)补题
A题:题目链接:https://ac.nowcoder.com/acm/contest/888/A题意:求所有全为1的矩阵且每个子矩阵都不会被其他矩阵完全包含的子矩阵的个数。分析:最近遇到的全1子矩阵的题有点多额....,可是还是不怎么会做。但基本都用了单调栈....设h[i][j]表示第i行以j点为底点的最高连续的1的个数,可以用单调栈求使j点以h[i][j]为高度的矩形的左右边...原创 2019-08-12 10:34:54 · 173 阅读 · 0 评论 -
2019牛客暑期多校训练营(第七场)补题
C题:链接:https://ac.nowcoder.com/acm/contest/887/C题意:n中树,第i种树有P[i]颗,砍掉每颗树的代价是C[i], 高度是H[i].需要用最小的代价砍掉一些树,让最高的树超过一半。分析:从从低到高枚举最高的树,在剩下的树当中砍掉代价最小的。可以用一颗线段树维护。线段树按照代价从小到大的顺序构建,支持单点插入,查询前x个的总和。Ac c...原创 2019-08-12 10:00:08 · 107 阅读 · 0 评论 -
2019牛客暑期多校训练营(第十场)(斜率优化dp)
先推荐一个大佬的博客:https://blog.csdn.net/lxc779760807/article/details/51366552J题链接:https://ac.nowcoder.com/acm/contest/890/J题意:给 n 个木材,求制造 k 个木板浪费的木材的最小值,木材可以随意组合,制造木板浪费的木材:将 m 块木材连在一起,将所有的木材砍成一样的高度,砍掉的就是...原创 2019-08-20 17:40:09 · 201 阅读 · 0 评论 -
hdu6665(离散化+bfs)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6665题意:两个矩形能把平面分割为多少个部分比赛时都是疯狂if else 做的,写了200+行,然鹅我不想写这种繁琐的,就没写....考虑简洁明了的方法,先把坐标离散化,然后把矩形边界标记为1,每次从标记为0的开始bfs,把访问过的点标记为1,由于矩形边界被标记为1了,矩形外面的点bfs时进...原创 2019-08-14 20:37:23 · 174 阅读 · 0 评论 -
2019 Multi-University Training Contest 6补题
题目:hdu6638题意:给你n个点,每个点都有一个坐标和权值,要你寻找一个矩阵使其内部的点的权值和最大。分析:把n个点按横坐标排序一下,首写枚举左右边界,当左边固定右边界移动时,会将x值相等的坐标加进来,x值相等的左边加完后查询此时的最大子段和,更新答案。Ac code:#include<bits/stdc++.h>using namespace std;typ...原创 2019-08-07 21:17:21 · 225 阅读 · 0 评论 -
2019 Multi-University Training Contest 5补题
题目:hdu6625题意:给你两个数组a,b,要求你重排a,b使c[i]=a[i]^b[i]得到的c数组字典序最小分析:根据贪心思想,每次都要求得a[i]^b[i]都最小才能保证字典序最小。有两种方法:方法一:对a,b两个数组建两颗字典树,每次同时遍历两棵字典树,如果都为0或都为1就走,否则没有办法只有一个走0一个走1,此时对答案产生贡献,每次找出来的最后排个序就okAc co...原创 2019-08-06 22:57:33 · 120 阅读 · 0 评论 -
2019 Multi-University Training Contest 1补题
1002:http://acm.hdu.edu.cn/showproblem.php?pid=6579题意:给你n个数,有m次操作,每次操作有两种1、0 l r 表示查询[l,r]里选任意个数时异或值最大。2、1 x表示在n个数后面继续添加1个数x,并令n=n+1分析:选任意个数使异或值最大肯定是线性基的题,比赛时直接上线段树维护区间线性基,时间复杂度都没算,结果T到飞起.......原创 2019-07-23 15:04:41 · 157 阅读 · 0 评论 -
2019牛客暑期多校训练营(第二场)补题
题目链接:https://ac.nowcoder.com/acm/contest/882#questionH题:题意:给你一个01矩阵,要你求全为1的第二大子矩阵分析:用单调栈或悬线法皆可以。法一:单调栈设dp[i][j]表示以(i,j)为底点,底边长为1,dp[i][j]为高的矩阵。用单调栈处理最大子矩阵问题,但要注意每个点都要更新最值,不然找不出所有的值也就不一定找的到第二...原创 2019-07-21 23:29:50 · 111 阅读 · 0 评论 -
2019 Multi-University Training Contest 2 补题
1011:http://acm.hdu.edu.cn/showproblem.php?pid=6601题意:给你n个数,q次询问,每次询问一个区间[l,r]表示只能从[l,r]区间里选最大的能构成三角形的三条边,输出其最大周长。分析:一看肯定说用线段树维护,但。。。。。比赛时想了好久不知道维护什么,甚至还不顾莫队的T飞的复杂度交了几发。维护一个区间的45个最大值,这样一定能找到周长最大...原创 2019-07-24 23:35:07 · 144 阅读 · 0 评论 -
牛客小白月赛16D(前缀和+二分)
题目:https://ac.nowcoder.com/acm/contest/949/D题意:中文题自己看分析:利用前缀和的后缀max的单调性,它是单调递减的,sum[i]表示前缀和,pmax[i]表示从i~n中最大的sum[j],i<=j<=n。然后枚举起点i,在[i,n]上二分终点,只要pmax[mid]>sum[i-1]就表示满足条件,继续增加l=mid+1,否则不...原创 2019-07-13 10:51:47 · 119 阅读 · 0 评论 -
Minieye杯第十五届华中科技大学程序设计邀请赛网络赛
题目:https://ac.nowcoder.com/acm/contest/560/J题意:给你n个数,要你求最少删除多少个数使剩下的数可以划分成两个和相等的集合分析:一个简单的dp,比赛时想不出来唉。。dp[i][j]表示前i个数划分成两个集合,使和相差为j,要删除的数的个数,最终dp[n][0]即为所求初态dp[0][0]=0;状态转移:dp[i][j]=min({dp[i-...原创 2019-05-12 18:25:35 · 166 阅读 · 0 评论 -
第十五届华中科技大学程序设计邀请赛补题
C题:https://ac.nowcoder.com/acm/contest/700/C题意:给你n个数,要你求长度在[L,R]之间的区间中有多少个区间的区间和>=S分析:考虑以点pos作为左端点,其满足条件的区间和为[pos,pos+l-1]到[pos,pos+r-1],转化为前缀和,即为求x∈[pos+l-1,pos+r-1]的区间内,满足pre[x]−pre[pos−1]≥...原创 2019-05-03 22:57:51 · 201 阅读 · 0 评论