摘要: 每一件物品有两个属性。朴素思想是把这两种属性都设计到状态里,但空间爆炸。又因为这两个属性相互间存在制约关系(差的绝对值最小),不妨把答案设计入状态中,设$f[i][j]$选$i$个人,两者之差$j$。这样dp。于是$O(NM^3)$暴力背包即可,记录转移,也就是$g[i][j][k]$来表示当前到这 阅读全文
posted @ 2019-09-17 18:00 Ametsuji_akiya 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 数 位 D P 开 long long 首先第一问是转化。 于是就可以二进制下DP了。 第二问是递推,假设最后$n-1$个01位的填法设为$f[i-1]$(方案包括0),于是有fib数列递推关系(很好推),然后矩阵快速幂即可。 一开始思路有点乱,导致边界初始化屡次出错。 WA1:见标题赤字。 WA2 阅读全文
posted @ 2019-09-17 18:00 Ametsuji_akiya 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 这题面什么垃圾玩意儿 首先看到问题格式想到数位DP,但是求的是平方和。尝试用数位DP推出。 先尝试拼出和。设$f[len][sum][mod]$表示填到$len$位,已填位置数位和$sum$,数字取余为$mod$时候的方案数,$g[len][sum][mod]$表示在这种情况下的所有满足要求的数的和 阅读全文
posted @ 2019-09-17 18:00 Ametsuji_akiya 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 状压暴力显然可做。但是数据出的再大一点就要稳T了。理论$O(n4^m)$,只不过实际跑不满。 考虑用轮廓线DP,设$f(i,j,S)$为处理到$(i,j)$时候(这格还不确定)的轮廓线为$S$的情况(相当于把$(i,1\sim j-1)$和$(i-1,j\sim m)$的$m$个数用$S$压起来)下 阅读全文
posted @ 2019-09-17 18:00 Ametsuji_akiya 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 题解网上一搜一大坨的,不用复述了吧。 只是觉得网上dp方程没多大问题,但是状态的表示含义模糊。不同于正常哈密顿路径求解,状态表示应当改一下。 首先定义一次移动为从一个点经过若干个点到达另一个点,则$f[S][i]$个人认为应当表示经过若干次移动,每次移动的终点状态记为$1$,由此构成的集合$S$,也 阅读全文
posted @ 2019-09-17 18:00 Ametsuji_akiya 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 统计$[L,R]$内LIS长度为$k$的数的个数,$Q \le 10000,L,R < 2^{63}-1,k \le 10$。 首先肯定是数位DP。然后考虑怎么做这个dp。如果把$k$记录到状态里没有用。需要找到有效方法统一的表示前面填好的数的特点方便之后的填数。 回顾LIS过程,当前数结尾的LIS 阅读全文
posted @ 2019-09-17 18:00 Ametsuji_akiya 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 给定 n 个节点的树,边有权值。1 号点是根,除了 1 号点外的度数为 1 的节点是叶子。要求切断所有叶子和 1 号点之间的联系,切断一条边要花费这条边上权值对应的代价,要求总的代价不超过 m。在满足这个前提下要求切断的边权的最大值最小,求出这个最小值。$n ≤ 10^5$ 首先这个最大值肯定二分答 阅读全文
posted @ 2019-09-12 11:40 Ametsuji_akiya 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 有一些题目不想另放题解了,这些题包括但不限于:过于水于是不想写code的题,不太水但是一眼看出来所以不想写code的题,有一些难度的非常小的题,以及一些写了code但是题太简单不好意思写题解的题。偶尔也会有小题但是有一些思维的题也会放在这里。 阅读全文
posted @ 2019-09-12 09:58 Ametsuji_akiya 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 这道题写的时候迷迷糊糊很困。。所以我也不知道我为什么过了QWQ 一开始思路不太好,设$f[i]$表示还剩$i$个挂钩,发现边界很难处理,但是发现物品不能一样一样按顺序枚举,需要先把挂钩$> 0$价值$\ge 0$的全挂上去,然后挂钩$=0$价值$\le 0$的扔掉。 只剩下两种:价值$>0$挂钩$= 阅读全文
posted @ 2019-09-12 08:28 Ametsuji_akiya 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 吐槽 迷惑行为大赏。。。 想好的$O(n^2)$暴力没敢写,结果正解就是15000卡常过$O(n^2)$。。 还耗了我一节课想SA的$O(n\text{log}n)$做法没想出来。。。 这题其实和动物园差不多,所谓$A+B+A$形式其实就是对于$i,j$,$\exists x \in [i,j]$使 阅读全文
posted @ 2019-09-11 15:50 Ametsuji_akiya 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 这是noi题吗。。为什么我这种菜鸡都会做。。表示质疑。 求一个串$S$的每一个前缀$i$的不重叠的既为前缀又为后缀(下简称:border)的子串数量$num$。 模仿KMP,假设当前在求$i$的$next$数组,同时希望求出$num$,那也就是看前缀$i-1$中是border且不重叠的所有子串和第$ 阅读全文
posted @ 2019-09-11 10:35 Ametsuji_akiya 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 菜到自闭,一道省选小水题都能给我做繁。 要求有一位不同,则对每个串每一位暴力枚举把这一位删掉,放一个分隔符,算一下hash,插表,相似的都应该会被插入同一个桶。最后把hash统计一下即可。复杂度$O(nL)$。 但是除了我以外的所有人全是把hash算好丢数组里排序,然后相似的串hash必连在一起。复 阅读全文
posted @ 2019-09-11 08:14 Ametsuji_akiya 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 这道题以前好像模拟的时候做过,当时不会做,于是用hash水过去了。。 正解是KMP,还是用当前字符与上一次相同字符位置的距离表示数组,于是数值相等时就代表相似。第一次出现用INF代替。 然后要匹配有多少个。暴力匹配的话是:匹配到$s_i,t_{j+1}$时,若$s_i=t_{j+1}$或者是$s_i 阅读全文
posted @ 2019-09-10 16:40 Ametsuji_akiya 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 一个物品可以被其他物品表出,说明另外的每个物品看成矩阵的一个行向量可以表出该物品代表的行向量。 于是构造矩阵,求最多选多少个物品,就是尽可能用已有的物品去表示,相当于去消去一些没必要物品, 类似于xor的线性基,这里是实数的线性基。 通过高斯消元不断消除,看消出几行全是零的即可。也就是看这个线性空间 阅读全文
posted @ 2019-09-09 23:57 Ametsuji_akiya 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 点灯问题。和上一篇差不多,只不过这次是一个方阵,一个灯被操作了一次之后四方取反。目标是求最少点多少次。 上篇忘说了,一个灯只有操作一次或零次是有意义的,两次相当于取了两次xor。这不废话吗。 把上一篇的影响内容改一改,然后求解的话,对于每个系数不为零的方程,第一个有系数的地方是主元,主元后面的有系数 阅读全文
posted @ 2019-09-09 19:02 Ametsuji_akiya 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 其实第一反应是双向BFS或者meet in middle,$2^{14}$的搜索量,多测,应该是可以过的,但是无奈双向BFS我只写过一题,已经不会写了。 发现灯的操作情况顺序不影响结果,因为操作相当于在固定位进行xor运算,xor是可以随便交换的,所以顺序无所谓。 那么情况取决于每盏灯是否被操作过。 阅读全文
posted @ 2019-09-09 17:54 Ametsuji_akiya 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 数论进度开的好慢啊。我整天做的都是什么鬼题啊。 简单的高消题,用一个式子把另外$n$个有二次项和距离的式子全消掉就行了。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #incl 阅读全文
posted @ 2019-09-09 16:37 Ametsuji_akiya 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 注意到$L|\frac{8(10^x-1)}{9}$等价于$9L|8(10^x-1)$,这个等价转化一定要记住!(是可以证两者互为充要条件的) 于是整理后有$\frac{9L}{gcd(L,8)}|(10^x-1)$。 转化为同余方程来解决。 $10^x \equiv 1 \pmod{\frac{9 阅读全文
posted @ 2019-09-07 07:53 Ametsuji_akiya 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 对于质因数分解理解还不到位。 此题可知$lcm$是$x$的倍数,$x$是$lcm$的约数,只要在$lcm$的分解质因数里对每一个质因子讨论种数即可。 具体来说,对于$lcm$的一个质因子$p$,讨论$a,b,c,d(也就是lcm)$关于$p$的幂次,然后比较大小,分类讨论得出种数。 实现上来看,只要 阅读全文
posted @ 2019-09-06 10:33 Ametsuji_akiya 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 被zcr和yy轮流嘲讽了一番,感觉自己智商日渐下降。。。\TヘTツ 先拆mod变成整数除法,然后就是$nk- \Sigma_{i=1}^{n} i * \lfloor \frac{k}{i} \rfloor$。求后面那个。 然后发现$\lfloor \frac{k}{i} \rfloor$是连续且单 阅读全文
posted @ 2019-09-05 20:33 Ametsuji_akiya 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 题解已经烂大街了,lyd书上给的证明也很详细。 个人觉得lyd书上讲的引理2,3顺序应当反过来讲更符合正常思维。 讲一讲思维方式,反思一下为什么我没想到,以及是怎么才能往这方面想的。 首先数论题重要的还是要推性质。 根据定义,最先映在脑海里的应当是答案的转化,这个都可以想到。 然后是必要性推导: 反 阅读全文
posted @ 2019-09-05 17:38 Ametsuji_akiya 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 明显容斥。总答案减掉共线答案。共横线和共竖线简单。难点在于共斜线计数。 考虑暴力。枚举每个点对连线间整点数量,这些点可以作为共线的第三点,种数$gcd(x_1-x_2,y_1-y_2)-1$。 可以证明这是不重不漏的(枚举且仅枚举到了每个点对作为共线两端的情况)。 复杂度过高。考虑优化。 发现可以固 阅读全文
posted @ 2019-09-05 11:28 Ametsuji_akiya 阅读(112) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-09-04 19:48 Ametsuji_akiya 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 题目。 首先暴力很好搞,但是优化的话就不会了。放弃QWQ。 做法1:二分答案 然后发现平均值是$ave=\frac{sum}{len}$,这种形式似乎可以二分答案?把$len$移到左边。 于是二分$ave$,去找数列有没有区间和大于等于其$len$乘以$ave$的,然后卡住了。。 有一个很巧的转化, 阅读全文
posted @ 2019-09-04 11:58 Ametsuji_akiya 阅读(626) 评论(0) 推荐(0) 编辑
摘要: 这个递推式子可以发现$i$是偶数下标可以缩一半,是奇数下标就可以拆成两个下标,$\lfloor \frac{i}{2} \rfloor$以及$\lfloor \frac{i}{2}+1 \rfloor$。 然后发现每次奇数下标可以拆成一奇一偶,而拆出来的奇再拆和偶的减半得到的下标只有两种。比如: $ 阅读全文
posted @ 2019-09-03 22:19 Ametsuji_akiya 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 吐槽:扣了几个小时,大致思路是有了,但是贪心的证明就是不会, 死磕了很长时间,不想想了,结果码代码又不会码。。 深深体会到自己码力很差,写很多行还没写对,最后别人代码全一二十行,要哭了 以下可能是个人口胡瞎扯:首先n个点,每个点一个出边,所以这个图可能是有很多连通块,具体有以下几种形态: 环 内向基 阅读全文
posted @ 2019-09-03 19:19 Ametsuji_akiya 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 构造一个n个点的大根堆让全部弹出时交换位置次数最多。 真心佩服我自己智商,这种题都做不出来 交换是在每次弹出堆顶,然后把堆尾元素置于堆顶,然后向下调整时产生的。玩样例可以发现似乎数字1每次都出现在堆最底层最右边(堆尾)?于是为了总交换数最多,肯定是要1号自顶向下交换到底次数最多,除此之外还希望它每次 阅读全文
posted @ 2019-09-02 23:46 Ametsuji_akiya 阅读(185) 评论(2) 推荐(0) 编辑
摘要: 有若干堆石子,每一次需要从一堆石子中拿走一些,然后如果愿意的话,再从这堆石子中拿一些(揣度题意应该是不能拿出全部)分给其它任意不为空的堆。不能操作的人为负。 一直不会博弈啊。。感觉完全就是个智商题,虽然本质还是差不多的寻找策略,根据性质从简单的模型入手,尝试拓展结论,在尝试寻找一种稳定的策略转化为该 阅读全文
posted @ 2019-09-02 20:34 Ametsuji_akiya 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 博弈初心者。。。 学习地址luogu上可以找到。关于比较好的证明地址放在了地址页里了。这里不再赘述。 大概感觉还是所谓先手必胜就是面对当前局面一定可以采取一种策略,然后后手无论再怎么做,先手都可以“控制”住局面的稳态,使得后手打乱的状态恢复回来,随着集合可操作物品(石子)减少从而使自己获胜。而这种采 阅读全文
posted @ 2019-09-02 20:14 Ametsuji_akiya 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 这个有环的情况非常的讨厌,一开始想通过数学推等比数列的和,但是发现比较繁就不做了。 然后挖掘这题性质。 数据比较小,但是体力可以很接近1(恼怒),也就是说可能可以跳很多很多步。算了一下,大概跳了2e7次左右这个体力才缩到1e-14左右,这时已经几乎不会影响答案惹。也就是说,点比较少,有没有暴力做法? 阅读全文
posted @ 2019-09-02 15:30 Ametsuji_akiya 阅读(220) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-09-02 10:52 Ametsuji_akiya 阅读(3) 评论(0) 推荐(0) 编辑
摘要: location。 求到树上三点距离和最短的点及此距离。 这个不还是分类讨论题么,分两类大情况,如下图。 于是乎发现三个点对的lca中较深的那个lca是答案点。距离就是两两点对距离加起来除以2即可。这个通过画图真的很好理解。毫无技术含量。 阅读全文
posted @ 2019-08-31 19:39 Ametsuji_akiya 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 给一棵点带权树,$q$次询问,问树上$x$到$y$路径上,两点权之差(后面的减去前面的)的最大值。 这个是在树链上找点,如果沿路径的最小值在最大值之前出现那肯定答案就是$maxx-minx$,但是反之就不好办了。。 方法一:在线倍增合并答案 先来看一个退化成链的情况:区间$ql,qr$内找$i<j$ 阅读全文
posted @ 2019-08-31 12:56 Ametsuji_akiya 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 求一个环待修改最大连续子段和且不能全部选上。 先断环,在$1 \sim n$的链上,考虑没有限制全选的最大连续子段和。显然最大解只有两种情况,一种是这个,一种是另一个。 第一个可以直接套路维护,第二个无非就是整体的和减去最小连续子段和。两者取一个最大的就行了。 然后考虑到如果全选的情况。这种情况下只 阅读全文
posted @ 2019-08-25 21:37 Ametsuji_akiya 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 平面内若干带权点,有一个固定矩形,求框住的点最大权值和。 连这种题都不会了我真的没救了。 每个点会对框住他的矩形产生一个贡献,为了方便表示可以用一个点表示以这个点为右上角的矩形。于是每个店都有一个对应区域,在这个区域内的矩形顶点都有贡献。然后就是在若干矩形中找权值最大点了。看到很多重叠矩形就可以想到 阅读全文
posted @ 2019-08-25 21:17 Ametsuji_akiya 阅读(121) 评论(0) 推荐(0) 编辑
摘要: blog题解鸽了许久了。。本来说好的切一题写一个题解的说 一个$1 \sim n$数列,已知每个数前面比他小的数个数,试确定该序列。 相当的一道水题。可以发现数列最后一个数是首先可以确定下来的。然后把这个数扔掉,看数列倒数第二个数前面有多少更小的其实就是目前剩下的数中的排名。相当于有一颗$n$个点的 阅读全文
posted @ 2019-08-25 21:02 Ametsuji_akiya 阅读(146) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-07-10 18:52 Ametsuji_akiya 阅读(2) 评论(0) 推荐(0) 编辑
摘要: UVA12096The SetStack Computer 需要对每个集合用一个ID来代替,方便在栈中模拟,毕竟操作最多10000个,意味着ID最多只有10000个。 然后要做set和ID(int型)之间的双映射,也就是操作时从栈中取出ID,开一个vector<set<int> >,下标对应集合ID 阅读全文
posted @ 2019-05-19 10:55 Ametsuji_akiya 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 好久没写题解了惹,主要去省选玩了一趟之后就补文化课了,oi忘得差不多了。。 所以众所周知,这个人又来切水题了。 地址 发现题中划分是无序的,不利于dp。是否可以从左到右依次划分?然后发现不管我过程中怎么划分,顺序是什么,只要最终划分的块都一样,那价值肯定一样,因为对于最终每一块,他在过程中每次被划开 阅读全文
posted @ 2019-05-18 16:01 Ametsuji_akiya 阅读(123) 评论(0) 推荐(0) 编辑
摘要: https://vjudge.net/problem/HDU-4261 对于一个长2000的数列划分最多25个块,每块代价为块内每个数与块内中位数差的绝对值之和,求最小总代价。 套路化地,设$f[i][j]$表示第$i$位,划了$j$块最小代价。然后dp。$O(n^3k)$不必说。($logn$和$ 阅读全文
posted @ 2019-04-25 22:23 Ametsuji_akiya 阅读(174) 评论(0) 推荐(0) 编辑