随笔
South-twilight
一个在OI留下遗憾,ACM弥补遗憾的退役选手
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2021国庆牛客第6场--2018牛客多校第6场 I-Team Rocket
题目传送门:click here题意:给定 nnn 个区间 [li,ri][l_i, r_i][li,ri] ,每次给定一个点 xxx ,所有覆盖它的区间全部删除掉。求问,每次加入该点删掉多少个区间,每个区间在第几个点被删掉。(强制在线)...原创 2021-10-08 20:38:59 · 174 阅读 · 0 评论 -
21.7.20
随便记点想法:关于区间的有关时间的问题,例如每次修改都是基于上一次修改的修改,然后查询两个时间点之间的差异(标准的可持久化)这样的问题在21杭电多校的1010上体现就是,已知每个点坐标(i,f(i))(i,f(i))(i,f(i)),查询一个矩阵内有多少个不同的yyy值。这个问题当时的第一反应就是二维线段树,但是对于不涉及修改的,似乎主席树也可以统计。但是对这道题来说是有问题的,因为不好统计不同的值的个数,更方便的是统计个数,而不是不同的个数。而这道题给出了另一个对于这种无修改的做法,分块+莫队。用原创 2021-07-20 20:35:43 · 109 阅读 · 0 评论 -
个人日常使用的vimrc
Ubuntu版:set nocompatibleset mouse=aset backspace=2set numberset tabstop=4set shiftwidth=4set cindentset autoreadsyntax oncolor tortemap<F5> <Esc>:w<cr>:! g++ % -o %< <cr>imap<F5> <Esc>:w<cr>:! g++ %原创 2021-05-26 15:23:36 · 127 阅读 · 0 评论 -
ICPC2020 南京 M Monster Hunter
题意:牛客ICPC2020南京的M题这道题考场上写了两个小时,奈何最近dp练习太少,写了半天把自己绕晕了,现在来重新捋一下思路。首先很明确的一点,使用的药水要从小往大进行dp(尝试过从大到小,没办法列方程)。先观察一下要些什么状态:当前节点,以他为根的子树用了多少瓶药,他自己是否用药被杀。最后一个状态我在考场上设立的是是否被杀,其实本质上是一样的。下面来解释dp的含义:dp[i][j][0/1]dp[i][j][0/1]dp[i][j][0/1]以iii为根的子树中,用jjj瓶药,iii是否被用药杀原创 2021-03-25 10:12:21 · 578 阅读 · 0 评论 -
20-12-17随笔---深入理解线段树lazy_tag操作
第二十一次CSP认证第五题深入理解线段树lazy_tag操作原创 2020-12-17 23:53:49 · 260 阅读 · 0 评论 -
2020.11.11随笔
icpc网络赛某题,ccpc绵阳站J题,ccpc威海站某题原创 2020-11-11 15:46:07 · 246 阅读 · 1 评论 -
20.07.27总结
今天用脑子把树链剖分补完了,没有写代码,简单来说说吧。碰到了一道题,要求从aaa走到bbb,找出两个点x,yx,yx,y满足dis(a,x)<dis(a,y)dis(a,x)<dis(a,y)dis(a,x)<dis(a,y)使w[y]−w[x]w[y]-w[x]w[y]−w[x]最大。这里用树链剖分把树上问题划归到序列上。对于序列上的话,可以考虑用线段树维护。从[L,R][L,R][L,R]可以分为[L,mid][L,mid][L,mid]和[mid+1,R][mid+1,R][mid原创 2020-07-28 10:02:54 · 118 阅读 · 0 评论 -
20.07.24总结
1.发现取模和开根这两个操作对一个确定数的有效操作次数都是小于log的,这样也就导致了可以暴力操作,只需要最大值判断一下就可以了。2.对于一连串数的gcd的操作,可以用更相减损法的性质来操作:gcd(x1,x2,x3…,xn)=gcd(x1,x2-x1,x3-x2,x4-x3…,xn-xn-1),这样也就可以转到差分上去,也把区间修改变成了单点修改。...原创 2020-07-25 14:18:21 · 100 阅读 · 0 评论 -
20.07.22总结
hdu比赛原创 2020-07-22 21:26:17 · 143 阅读 · 0 评论 -
20.07.21总结
线段树优化建图原创 2020-07-21 22:50:59 · 130 阅读 · 0 评论 -
20.7.20总结
7.20总结原创 2020-07-20 19:51:03 · 213 阅读 · 0 评论 -
1-15总结
1.今天看了看昨天晚上没写完的一道题,一道线段树的题,结果理解错题意了。原题:CodeForces 1000F 我的题面:求数列a[]a[]a[]的[L,R][L,R][L,R]区间内有多个数字只出现了一次。原题意:写出任意一个在数列a[]a[]a[]的[L,R][L,R][L,R]区间内只出现过一次的数,没有则输出0。不过做法可能差不多,这里简单谈一谈我所学到的做法:若记pre[x]...原创 2020-01-15 20:25:05 · 147 阅读 · 0 评论 -
树状数组的一些理解
树状数组中的lowbitlowbitlowbit的一些具体意思,有一点感悟。原理:这个百度上都有,就不说了。y=x+lowbit(x)y=x+lowbit(x)y=x+lowbit(x):此时的yyy,在树状数组的图形中,就是xxx的父亲节点,也就是yyy包括xxx的覆盖范围。y=x−lowbit(x)y=x-lowbit(x)y=x−lowbit(x):此时的yyy,在树状数组的图形中就...原创 2020-01-14 10:06:23 · 168 阅读 · 0 评论 -
1月12号总结
今天做了几道题,来谈一谈感想。首先是CF11080F:求最小生成树的个数。这道题我的作法是:构造一颗最小生成树,枚举其他不在里面的边,若加入这条边,一定可以构成一个环。在这个环中(除开这条边)的最大边权与这条边相等,则可以多出一颗最小生成树。维护最大值和环,用树上倍增就可以了。不过倍增一个地方容易写错,这里提出来一下:void init(){ for(int j=1;(1<&...原创 2020-01-12 21:00:00 · 163 阅读 · 0 评论 -
凸包问题的回溯操作
昨天考试的第三题,已经看出来是维护上凸包,但是对于dfsdfs回溯时凸包怎么去维护只会暴力拿栈维护(但是好像对于随机数据时间复杂度为O(nlog2nO(n log_2 n)),然而正解做法就是用了一个可持久化栈.原创 2017-10-07 10:07:55 · 368 阅读 · 0 评论 -
国庆集训总结
感谢mtm和dyy的指导原创 2017-10-10 22:12:02 · 472 阅读 · 1 评论 -
最小生成生成树计数
对于生成树计数问题,解决的方法一般有矩阵树定理+kruscal,或者只用kruscal。我们可以发现,解决问题的关键在于一个定理: 最小生成树中边权相同的联通块,在任意一个生成树中连通性并不改变。 有了这个定理,我们对图进行相同权值边的统计,然后用2^n或矩阵树定理来求解这个联通块内的生成树个数。 最后用乘法原理解决问题。原创 2017-08-04 21:17:32 · 388 阅读 · 0 评论 -
AC自动机fail指针不基于势能分析构造方法
AC自动机的fail指针构造是均摊O(n),但是某些不良心出题人可能会去卡它(如给你个trie,构造fail指针)。 所以考虑一种不基于势能分析的做法。 对于每个节点,用一个quick[]来记录,对应节点的fail指针所在的位置,然后直接更新即可。 现在考虑怎样从根将quick指针传递到儿子。 如果当前节点不存再这个儿子,那么从父亲那里获得指针,将这个儿子设为那个指针原创 2017-08-04 21:33:51 · 697 阅读 · 0 评论 -
狄利克雷卷积与积性函数
μ∗1=e μ * 1 = e φ∗1=id⇒φ=μ∗id φ * 1 = id \Rightarrow φ = μ * id d=1∗1⇒1=μ∗d d = 1* 1 \Rightarrow 1 = μ * d 其中: ∑d|nμ(d)=[n==1]\sum_{d|n} μ(d) = {[n==1]} ∑d|nφ(d)=n\sum_{d|n} φ(d) = {n}原创 2017-08-05 20:14:23 · 947 阅读 · 0 评论 -
DAG的一些性质
1、在二分图中满足 最大独立集=最小路径覆盖=顶点数-匹配数 2. 在DAG中满足 最小路径覆盖=最长反链。原创 2017-08-05 20:28:28 · 1150 阅读 · 0 评论 -
一些笔记
1.n个点连线两两不相交期望连的最多边为 3E(n)-E(n0)-3 条。 其中E(n0)为凸包上的点出现的期望。2.期望的求解方法: 1.dp 2.高斯消元 3.定义3.dp的方法一般为逆向求解,从终点开始来考虑问题。4.对于会出现环(有无限下去的可能)一般可以考虑用高斯消元。原创 2017-08-05 19:56:42 · 199 阅读 · 0 评论 -
概率与期望
1.有时候,概率不好求解,可以转为期望去求解,然后除以总期望。(对于特殊的题目,如只会访问一次某个点,那么期望=概率) 2.对于比较大的范围内,有时候最终答案变化的十分小,可以将范围适当的缩小(如spoj4060) 3.对于概率,设计状态时多个状态互相引用(也就是概率方程),最后将它解出来,DP进行处理即可。原创 2017-08-06 21:28:07 · 1878 阅读 · 0 评论 -
9-7考试总结
今天考试因为一些原因,爆0了。 我感觉我一些错误反复的犯。原创 2017-09-07 20:20:40 · 345 阅读 · 0 评论 -
各种错误总结
最近考试经常放的错。 1.没有开long long 2.递推或DP没有取模 3.数据范围没有看清 4.初始化定义过小 5.数据有负数,没有写负数读入优化, 初始化没有相应的定义为很小的负数原创 2017-09-02 08:11:34 · 320 阅读 · 0 评论 -
处理阶乘及阶乘逆元的小技巧
对于阶乘逆元,没有必要每次再用费马小定理计算。 fact[1]=1; For(i,1,n) fact[i]=fact[i-1]*i%mod; invfact[n]=qpow(n,mod-2); Forr(i,n,1) invfact[i-1]=invfact[i]*i%mod;原创 2017-08-13 20:26:42 · 2050 阅读 · 0 评论 -
关于某个问题的探讨
一个问题: 对于给定aa,bb求aaaa..a(modp)a^{a^{a^{a^{.^{.^a}}}}} \pmod p(其中有b个a)。原创 2017-09-03 16:54:34 · 373 阅读 · 0 评论 -
关于期望线性性的探讨
期望线性性的探讨原创 2017-10-07 19:55:02 · 2666 阅读 · 1 评论 -
bzoj2324拯救皮卡丘
说实话,我是没有想到用费用流来求解的。原创 2017-10-18 20:20:38 · 278 阅读 · 0 评论 -
动态规划--树形依赖背包
树形依赖背包是子树依赖父亲才能产生贡献的一类问题。 有两种解决的办法: 1.强制选择当前节点,用当前的状态去更新子树信息,然后再用子树信息更新父亲。 2.对于这一类问题,只有选择了父亲节点,才能选择子树。所以我们用dfs序来进行dp,对于子树,再dfs序上是连续的一段,可以考虑前i个dfs序带来的最大收益,正常的背包即可,稍微注意整个子树都不选的更新即可。原创 2017-08-04 21:26:52 · 875 阅读 · 0 评论
分享