摘要:
我叼,打的时候CF被ddos了,还有这种操作?害得我只能睡觉 最后一题留坑 A. Prime Subtraction 以为是求GCD,上去wa一发。。。后来发现,y-x=C,如果C不为1,那么肯定可以由素数组成,偶数直接+2,奇数就是3+2*k ,k>=0 #include<bits/stdc++. 阅读全文
摘要:
A..B略 C 对当前的值排序,再二分答案,然后对于(i%x==0 && i%y==0)放入大的,再放其他的贪心解决即可。 D 记录一次出现和最后一次出现的,考虑移动的比较麻烦,我们可以考虑对于两个相邻的大小的值,前面那个值最后次出现的位置是大于这个值第一次出现的,那么他们的相对位置关系是不用移动的 阅读全文
摘要:
这道题其实很简单,求k个到根的链,使得链上的节点的个数尽可能多,如果节点被计算过了,就不能再被计算了,其实我们发现,只要k>=叶子节点,那么肯定是全部,所以我们考虑所有的叶子节点,DFS到根节点后,往上递归,我们能比较容易的求出某个节点,所有儿子节点的最深深度,那么对于上面一个节点,其实只有一个最长 阅读全文
摘要:
这个题其实由于只有4种花色的,那么每种花色排列的顺序,也不过是4!种,然后对于每种花色内部到底是升序还是降序,其实也可以直接暴力,一共也就4!*2^4种情况,然后直接进行排序就可以了,但是我们如何计算需要移动的位置呢???我们这样考虑,我们由于要保证内部有序,那么最后一定是一个升序或者降序,那么插入 阅读全文
摘要:
题意就是给一个字母序列a,以及一个另外一个字母序列b,你需要b中找到字母序列a,并且要求对于在b中的字母序列a,每个单词都需要满足相应的距离 其实很简单,我们利用DP[i][j]代表a已经匹配i个位置,当前是在b串的j位置,这样我们很容易写出转移方程 dp[ i ] [ j ] +=dp[ i-1 阅读全文
摘要:
拿DIV找快乐。。。 当场过了A-B1-B2-C 写D差5分钟写的是正解。。。留坑补FG A. Equalize Prices Again 直接判断sum%n==0?sum/n:sum/n+1 B1,B2. Social Network (hard version) 模拟类似什么cache之类的。。 阅读全文
摘要:
存图还是像矩形一样的存,每个节点存所在区级内部的圆的编号,然后暴力判断,开始我也有这个想法,但是。。。这TM也能过。。。仔细想想,貌似好像是可以过,时间复杂度玄学无法证明。。。。 阅读全文
摘要:
点分治傻逼题。。。直接DP就行了 阅读全文
摘要:
这道题非常好,如果没有真正弄懂费用流算法的人,只会套模版的人是肯定做不出来的。 我们其实这样考虑,费用流真正的思想是吧费用作为长度,然后跑最短路,同时保证路上的流量不为0,也就是增广; 跑到终点后,回溯把路上的流量进行修改。一直这样下去直到无法增广。 这道题也是一样,我们把路径长度看成费用,路径限制 阅读全文
摘要:
1.注意建边add(u,v),有可能函数内部已经加了双向边,记住不要再加add(v,u) 如果认为一定正确的解答,突然运行了很久之后出错,考虑是否有没有注意到的边界条件,如0,1等情况 2. 对于有t,或者多组输入的来说t较大,或者总和t和n都很大,但是他们的乘积比较小尽量不要用memset,因为m 阅读全文