08 2018 档案
摘要:高级数据结构?模拟吧? 题目自己理解,又一个考语文的题。 我们每次需要判断在xi上的大于yi的数有几个,以此更新答案,然后把他们都扔掉。如果yi不在上面要放上去。一眼看上去超级奇怪不知道上什么数据结构。 n^2的复杂度是不可以的,然而我见过的n*log2n的那些数据结构都用不上。 于是想到了开一个链
阅读全文
摘要:我承认是看了这题后想起来和p1864有点重合而且那个坑还没填就去先写了p1864。 那么我可以在较短的时间内处理出每个点到最近的危险点的距离,剩下的就是找路径了。 刚开始我还是想用dfs,但是手残的我调试的并不是很成功。如果每个点只经过一次是不一定优的,因为从这个方向来的和从另一个方向来的最短距离还
阅读全文
摘要:这道题是不是看起来超级像动态规划什么骚东西啊? 然后机智的我写了一个dfs。 先把所有点的答案弄成一个比1000大的数。然后从每一个绿点出发向向周围dfs,如果四周某个方向比自己加一大就带着自己的加一进去更新它并且继续dfs。直到所有的点再这个绿点存在的情况下能更新都都更新了就去dfs下一个点。 输
阅读全文
摘要:其实也不算难,搜索一下后模拟就好。第一眼看到的时候看错成密码长度<=10^16,马上就关了。然后一想不可能啊连输入都超时还怎么做,又拐回来看了一眼,就发现还好。 题目要求对密码长度分解成一群平方和的和,数量最少,数量一样时最大的矩阵最大,最大的矩阵一样时第二大的矩阵最大,以此类推。 这个分解操作有点
阅读全文
摘要:文件夹里都堆了20多道没改完的题了,我却又来开了一个新题。 好在一节课时间做出来了。 求刚好放满m的方案数。这个到是我没做过的,捣腾了半天弄出来转移方程 对于n个物品容积为m的背包跑一遍需要m*n的时间,这样子n*m*n就不行了。 不管怎样,先写出来模板好了 ans[m]即为所求。 我们来深究一下这
阅读全文
摘要:. 一开始确实想到了dfs,但是感觉挺难搞。 然后想象自己已经知道了答案,那么需要的人数就可以用复杂度为m算出。那么二分答案可不可以呢? 先找到栏杆长度最大的那个值,二分它。判断的时候可以贪心的算,如果当前是x,就让所有人能做这么大就做这么大。如果不够了再少做一些。也就是sum+=o[i]/x,如果
阅读全文
摘要:这题看上去是难度为2的省选题,类型里写的是搜索,但是真的不是一个模拟水题么? 考虑最最小的解应该是输入个位数,然后是个位数加减2,然后是输入-两位数,然后是个位数加加加加加或者减减减减减,然后是-两位数加加加加加或者减减减减减。那么就挨个考虑每种情况呗。 具体实现看代码
阅读全文
摘要:本题是一个有趣的有后效性的题目,如果是考察n个数能否等于x大家肯定都会,背包嘛。 但是能否被x整除改怎么写呢?原来的状态不满足后无效性啊。考虑到x较小,最直接的方法就是增加一个维度。 维护一个flag[i][f]表示第i个数时能否组成%x==f,他的转移方程是 但是f如果小于o[i]呢?如果f+o[
阅读全文
摘要:哇这题坑是真的多,虽然很警惕还是交了三次。 以前没好好看题还以为超级超级难,就一直没做。今天写了一下觉得就还好,思路好想,不被坑难。 一句话题意:找到大于等于n的约数和的约数和等于自己的第一个数,输出它和它的约数和。 看到s<=18000就可以上一个暴力,枚举每个因数i,i的倍数的那些数的sum[k
阅读全文
摘要:一道少见的二维dp。 由于后效性就很难搞。 题解中说的是 然后代码能力差的我写了很长时间也没弄出来。 但是我难道不能写一个四重循环嘛?50^4也不超时啊,虽然确实没有三重循环优秀吧。 那么可以推出状态转移方程: (maxx是自己写的一个四数取最大值的函数) 那么AK代码
阅读全文
摘要:差分是一种很神奇的方法、思路。它将一个数组a[]改写成为a[i]=o[i]-o[i-1],然后可以达到区间修改等许多神奇操作。 考虑长为n的数组a[i]给出m次修改,每次修改区间[l,r],最后问你一个位置a[k]的大小.怎么写? 呵水题,先把修改存起来然后记录下k.再回去看每个修改有没有对a[k]
阅读全文
摘要:最小生成树十分简单,想求最大边权最小的一个数。我们利用树的性质和单调性,维护所有节点的父节点(刚开始的时候弄成自己)和一个当前用于建树的边数sum。先sort把所有边按边权从小到大排序,然后向后遍历,如果这条边的两端点最大的父亲不一样就令他们合并,并且sum++。当sum==n-1时停下来,答案就是
阅读全文