07 2019 档案

摘要:"题目链接" 如果没有特殊边的话显然答案就是权值最小的点向其他所有点连边。 所以把特殊边和权值最小的点向其他点连的边丢一起跑最小生成树就行了。 cpp include include using namespace std; const int MAXN = 200010; typedef long 阅读全文
posted @ 2019-07-30 19:40 Qihoo360 阅读(231) 评论(0) 推荐(0)
摘要:"题目链接" 之前用线段树写了一遍,现在用$ddp$再写一遍。 cpp include define lc (now b ? a : b; } const int INF = 2147483647 2; const int MAXN = 50010; inline int read(){ int s 阅读全文
posted @ 2019-07-23 22:00 Qihoo360 阅读(212) 评论(1) 推荐(0)
摘要:"题目链接" 可以看成在坐标系中从$(0,0)$用$n+m$步走到$(n+m,n m)$的方案数,只能向右上$(1)$或者右下$(0)$走,而且不能走到$y= 1$这条直线上。 不考虑最后那个限制条件的话就是$n+m$次中选$m$次往右下走,即$C(n+m,m)$。 然后根据对称原理,从$(0,0) 阅读全文
posted @ 2019-07-22 20:43 Qihoo360 阅读(160) 评论(0) 推荐(0)
摘要:"题目链接" 二维$Hash$类似二维前缀和,每一行看成一个$h$进制数,每一个以(1,1)为左上角的矩阵看成一个由每一行的$Hash$值组成的$l$进制数。 然后自己推推柿子就行。 cpp include include include using namespace std; define Op 阅读全文
posted @ 2019-07-22 10:11 Qihoo360 阅读(179) 评论(0) 推荐(0)
摘要:"题目链接" 摘自https://www.cnblogs.com/wyboooo/p/9829517.html xjc大佬还提出了一个hash+二分的做法,也能AC。 就是用二分长度+hash check求出每个位置的答案,然后直接用桶记录秒出答案。 时间复杂度$O(n\log n)$ cpp in 阅读全文
posted @ 2019-07-22 10:01 Qihoo360 阅读(186) 评论(0) 推荐(0)
摘要:"题目链接" 思维难度0 实现难度7 建出主席树后用两点的状态减去lca和lca父亲的状态,然后在新树上跑第$k$小 cpp include include include using namespace std; const int MAXN = 100010; const int MAXM = 阅读全文
posted @ 2019-07-16 09:02 Qihoo360 阅读(233) 评论(1) 推荐(0)

You're powerful!