05 2020 档案

摘要:题目大意: 输出[l,r]之间所有数的因子个数和 l<=r<=2e12 题目解法: 不要问我为什么要给这种简单题写题解因为我之前还真不会这玩意儿 r-l<=1e6 这种情况下可以从l循环到r因式分解求解。 注意到我们只需要筛出sqrt(r)的素数表即可。对于一个数n,如果除掉所有1~sqrt(n)的 阅读全文
posted @ 2020-05-25 17:49 Myrcella 阅读(307) 评论(0) 推荐(0)
摘要:题目大意: 将n个数分为m段,每段权值为数值相同的数对数量。求最小权值和。 题目解法: 还是一道分治优化dp。分治优化的具体内容详见划分数组1的题解。这里直接考虑怎么算w(a,b)。 用数组cnt记录一个区间内各个数字出现的次数。显然如果我们知道了一个区间[a,b]的cnt和权值,我们就可以O(1) 阅读全文
posted @ 2020-05-22 23:59 Myrcella 阅读(137) 评论(0) 推荐(0)
摘要:题目大意: n个小黄人!每个小黄人有初始战斗值a和另一个值b。每次召唤一个小黄人i可以使前面召唤的所有小黄人战斗值加bi。每个小黄人可以被雇佣和解雇任意一次。需要保证任意情况下队伍内小黄人的数量不超过m。输出任意一个最优的操作序列。 m<=n<=75 多测,T<=75 题目解法: (好喜欢这道题ww 阅读全文
posted @ 2020-05-21 23:23 Myrcella 阅读(153) 评论(0) 推荐(0)
摘要:题目大意: 给定一个大小为n的数组,求将它分为k段,每段和与长度的积的和的最小值。 n<=8000,k<=800 题目解法: 首先可以想到dp状态f(j,i)表示前i个分为j段的最小值。 f(j,i)=min{f(j-1,k)+w(k,i)},其中w(k,j)显然可以通过前缀和的处理O(1)得到。 阅读全文
posted @ 2020-05-20 16:31 Myrcella 阅读(158) 评论(0) 推荐(0)
摘要:题目大意: 给定一个n个点m条边的图,要求给每个点赋1,2,3中的任意一个值,使得一共有n1个1,n2个2,n3个3,且每条边两端点的差值为1。如不可能输出NO,如可能输出YES即任意方案 n<=5000,m<=1e5 题目解法: 首先这道题最重要的观察是2->{1,3}->2->{1,3}->.. 阅读全文
posted @ 2020-05-20 11:42 Myrcella 阅读(215) 评论(0) 推荐(0)
摘要:题目大意: n个沙雕鱼(沙丁鱼),每个鱼有一个A,B,若两值鱼i,j满足Ai*Aj+Bi*Bj=0,则他们不能放在一起。问可以有几种选鱼的方法(不可以不选)。对1e9+7取模 n<=2e5, −1e18≤Ai,Bi≤1e18 题目解法: 虽然这道题不难但个人认为解法挺有趣的哈哈哈而且我WA了4次才过 阅读全文
posted @ 2020-05-18 23:16 Myrcella 阅读(354) 评论(0) 推荐(0)
摘要:题目大意: 两个硬币,给定初始位置a和b,q次操作,每次操作可将其中的任意一个移到位置x,代价为距离。所有位置在1-n之间。求最小代价。 n,q<=2e5 题目解法: 最朴素的状态f[i][j][k]表示i次操作后两个硬币分别在j,k的最小代价。观察发现j,k中必有一个是这次操作中规定的移动到的位置 阅读全文
posted @ 2020-05-17 11:47 Myrcella 阅读(131) 评论(0) 推荐(0)
摘要:题目大意: 正反两面牛排需要各煎恰好n秒。给定m个没有重叠的时间区间[L,R]且只能在这几个区间内翻面。问是否能煎数,若是求最少翻面次数。 //这里的翻面是在每个时间点的末尾发生的。也就是说如果在第k秒从A面翻到B面,第k秒煎的还是A面 n<=1e5, m<=100 Rmax<=2n 题目解法: 最 阅读全文
posted @ 2020-05-16 23:13 Myrcella 阅读(97) 评论(0) 推荐(0)
摘要:题目大意: x和y玩游戏。x赢的概率是A%,输的概率是B%,平局概率是C%(A+B+C=100)。当有任意一个人赢n局是游戏结束。求游戏进行的期望局数。 n<=100000 题目解法: 首先我们考虑到平局处理起来比较麻烦先忽略掉这种情况。那么我们的局数一定在[n,2n)这个范围内。 因此我们可以用f 阅读全文
posted @ 2020-05-15 17:41 Myrcella 阅读(116) 评论(0) 推荐(0)
摘要:题目大意: 一个01串 给定每位为1的概率p 一个字符串的权值是所有连续的1的数量的平方和(e.g.110011101有3段连续的1,长度分别为2,3,1,权值2^2+3^2+1^2=14) n<=2e5 题目解法: 很容易发现在某一位放1的贡献是 前面连续1的个数*2+1。 自己在做的时候想的是很 阅读全文
posted @ 2020-05-14 23:52 Myrcella 阅读(173) 评论(0) 推荐(0)
摘要:题目大意: 题目为了减少输入量采用了不太直接的输入方法,但这道题的本质还是给定n个字符串,查询x在y中出现的次数。 题目解法: 看到字符串匹配想到AC自动机。做法上显然是在遍历一遍树的时候处理出所有答案。 然后其实就是和洛谷上的板子题AC自动机二次加强版差不多了。我们将遍历时的字符串作为动态的文本串 阅读全文
posted @ 2020-05-13 12:04 Myrcella 阅读(108) 评论(0) 推荐(0)
摘要:题目大意: 给定n个1-m的数,q次询问,每次询问一个区间内出现次数大于1的数的个数。 题目解法: 莫队! 既然我们已经想到了莫队就可以考虑离线做法了。将所有区间按l排序。 对于给定的左端点,我们可以建一个0 1数组,当且仅当该位置的数第二次出现时放1,其他放0。那么显然我们的答案可以通过该数组的前 阅读全文
posted @ 2020-05-12 17:05 Myrcella 阅读(123) 评论(0) 推荐(0)
摘要:题目大意: 给定n个只包括( )的序列,判断是否可以将这n个序列合成一个合法括号序列。 n<=1e6 题目解法: 首先我们很容易观察到对于每一个序列我们只需要维护两个值:总和和最小前缀和('('=1,')'=-1),分别即为val[i]和mn[i] 首先如果所有字符串的总和加起来不为0显然无解 我们 阅读全文
posted @ 2020-05-11 17:35 Myrcella 阅读(291) 评论(0) 推荐(0)
摘要:题目大意: 给定每个工厂的位置x,物品数p,以及搭建仓库的费用c。每个工厂要么花c建仓库,要么将所有物品运到右方有仓库的地方,代价为物品数*距离。最小费用。 n<=1e6 题目解法: 第一次写斜率优化的题解哈哈哈 斜率优化学的好差但每次写都有新收获! (如果没学过斜率优化就不要看这个题解辣 因为本题 阅读全文
posted @ 2020-05-10 18:21 Myrcella 阅读(174) 评论(0) 推荐(0)
摘要://想强迫自己每天写一篇题解哈哈哈 //解法中不加粗的部分是一些自己思维approach的过程 题目大意: 给定n,m,求有多少个长度为2*(n+m)的由A B构成的序列,可以拆成n个"AB"子序列和m个"BA"序列。eg. 序列ABAABB,可以将它拆成3个子序列AB(第1个和第6个字符),BA( 阅读全文
posted @ 2020-05-09 15:50 Myrcella 阅读(157) 评论(0) 推荐(0)