摘要:题解 A 题意: 给定一个原始平面点集和一个询问平面点集,统计平面上有且仅有一个顶点在询问点集中的直角三角形的个数。两个点集大小不超过 $2000$ 。 题解: Day 2原题来着? 连我都会,极角排序,双指针扫一遍统计答案,注意精度。 感受: 口胡的,打题还是要靠基础扎实的公主。 D 题意: 给定 阅读全文
posted @ 2019-10-06 21:16 臼邦庶民 阅读 (17) 评论 (1) 编辑
摘要:题解 A 题意: 给你一个字典树,让你构造一个AC自动机,也就是求每个点的fail指针。(字符集十万级大小) 口胡: 感觉跟普通AC自动机的求法差不多?其实不是很会字符串,听说用主席树和后缀数组都可以过。 有神仙会做的话麻烦指点一下老弟。 感受: 考场上根本没想这题,全被乱搞题耗死了。 B 题意: 阅读全文
posted @ 2019-10-05 22:02 臼邦庶民 阅读 (28) 评论 (0) 编辑
摘要:题解 E 题意: 给你一棵有根树 ,记每个点的权值为 $w[i]$ 。对于每个 $i$ 求 $\sum_{j=1}^{i 1} w[LCA(i,j)]$ 。 题解: Marser&Twii几分钟口头AC——DSU on Tree,用树状数组分两轮统计轻子树对重子树的贡献,log方稳过。 感受: M& 阅读全文
posted @ 2019-10-04 21:40 臼邦庶民 阅读 (19) 评论 (0) 编辑
摘要:题意 给你一个数 $k$ ,$n$ 个桶,有 $m$ 个桶有容量上限 $w_i$ ,其它桶则没有。求把数拆开放到各个桶里,最终得到序列的方案数。 数据范围 : $n,k const long long mod=1e9+7; long long pu[10000005],inv[10000005]; 阅读全文
posted @ 2019-03-15 22:14 臼邦庶民 阅读 (16) 评论 (0) 编辑
摘要:[toc] 点双连通分量 割点 删去该点会使得原图不连通的点叫做割点。 一般地,删去该点集后能使得原图不连通的点集叫做割点集。 在这篇博文,我们主要讨论前者的性质。 点双连通子图和点双连通分量 不存在割点的子图叫做点双连通子图。 极大的点双连通子图叫做点双连通分量(没有特殊说明的情况下,一般简称点双 阅读全文
posted @ 2019-03-08 16:36 臼邦庶民 阅读 (123) 评论 (0) 编辑
摘要:今天是个练习场,貌似没有讲算法呢。 A 题目描述 构造一个恰有 $ k $ 个直径的树。可以证明,在给定的限制下一定有解。 数据范围 $k \leq 5 10^7$,构造的树的大小 $n \leq 5000$ 看起来假但是可以过的做法 考虑建一棵边权全部一样的菊花树,显然,这棵菊花的直径个数为(设有 阅读全文
posted @ 2019-02-13 22:29 臼邦庶民 阅读 (41) 评论 (0) 编辑
摘要:题目概述: 带修改的二维数点。 题目思路: 把一个询问拆成4个,那么我们很容易想到cdq分治,直接做即可。 用一些小技巧可以优化代码。老久没写cdq了,果然挂了,i=j=1是怎么回事。 题目代码: 阅读全文
posted @ 2018-12-27 22:30 臼邦庶民 阅读 (29) 评论 (0) 编辑
摘要:DAY 1。 T1感觉很水 10min AC。 T2想了很久,感觉是道桶题,后来觉得没这么简单,想了想数论做法,最后想不出来。 打暴力的时候,发现它的复杂度竟然是对的,快乐AC。最后才发现它是O(n^2*a*T)的,T掉了。 实际上需要一个排序,按照这个顺序加点,这样就不用删除重来了。 T3很水,打 阅读全文
posted @ 2018-11-12 14:43 臼邦庶民 阅读 (25) 评论 (1) 编辑
摘要:停课第四天,我忘了我那时在想什么了。 A. 题意简述:给两个字符串s,t,求s重复n次和t重复m次后有多少位匹配。保证n|s|=m|t| 我感觉可以根据一些性质乱搞啊……但是我WA了一些。 性质1:显然n,m与复杂度无关,我们要关心的是lcm(|s|,|t|)。 性质2:当lcm(|s|,|t|)很 阅读全文
posted @ 2018-11-05 21:52 臼邦庶民 阅读 (14) 评论 (0) 编辑
摘要:Day 2 开始发慌了……我想得回去干点事,效率好低啊。 A. 题意简述: 有a个A,b个B,c个C,d个D,求没有数相邻的方案数。 路径统计的简单版,a,b,c,d<=30。 考虑直接DP解决,我得改掉看到题思路僵化的习惯了。 B. 题意简述: 有m个东西,要分给n个桶,允许有的桶没有,允许一个桶 阅读全文
posted @ 2018-11-05 16:40 臼邦庶民 阅读 (13) 评论 (0) 编辑
摘要:停课了,压力有点大……但是就这样吧,进入正事。 Day 1 A. 题意简述:判断满足若干限制条件的从两个3的全排列到一个3的全排列的映射,提交答案。 理解题意是难点,然后就变成py练习题。考虑搜索,就A了。 B. 不会,打算和期望dp的学习一起写。 C. 题意简述: 有n个点m条边的有向图,且所有边 阅读全文
posted @ 2018-11-05 16:08 臼邦庶民 阅读 (18) 评论 (0) 编辑
摘要:早上 A. 难,不会,和期望DP一起学吧。 B. 简单搜索题。 C. 简单结论题。 下午 A. 傻瓜二分答案题。 B. 傻瓜BFS题。 C, 写出动态规划转移方程,我们发现它满足最短路的性质,考虑拆点,扔进堆里跑dij就完事了。 D. 结论题,发现可以令末尾不动,前面能连的尽量连,就A了。 E. 字 阅读全文
posted @ 2018-11-04 22:45 臼邦庶民 阅读 (19) 评论 (0) 编辑
摘要:为什么我觉得这年D1非常之丧…… 题目链接 看到题目有点晕……,反正发现v<=500之后先写了floyd,不写白不写。 现在我们有任意两点之间的最短路了,考虑dp(i表示考虑到第i个时间段) f[i][j][0]=min(跑到c[i]的期望距离) f[i][j][1]表示min(跑到c[i]的期望距 阅读全文
posted @ 2018-11-01 23:36 臼邦庶民 阅读 (20) 评论 (0) 编辑
摘要:A. 原题显然可以化为选择若干个数使得它们在“1“位上没有重复(^的本质是不进位加法,只要不进位就没有损失)。 考虑对于每个端点l,找到最远的端点r使得这个[l,r]区间满足题意,那么这里有r-l+1种满足题意的方案。 显然这是单调的,考虑双指针维护解决问题。 B. 我一开始把题意看成i|j==k的 阅读全文
posted @ 2018-10-19 16:31 臼邦庶民 阅读 (19) 评论 (0) 编辑
摘要:最长公共子串我们通常用二分答案解决。 即对于串A、串B、串C……二分最长字串长度,利用height数组性质,单调队列解决。 但是,对于两个串之间,我发现直接寻找满足sa[i]和sa[i+1]在不同串的lcp[i]就行了。为什么呢? 考虑假设有suf[sa[x]]和suf[sa[x+2]]两串满足: 阅读全文
posted @ 2018-07-02 23:02 臼邦庶民 阅读 (28) 评论 (0) 编辑
摘要:今天是暑期训练 第七 第六天(中间放了一天假)。 学习字符串简单算法,kmp,AC自动机,trie树等。 算法模板 KMP:随手打的,不知道能不能过。 AC自动机,trie树: 模拟赛&例题 地址:https://cn.vjudge.net/contest/236074 A.POJ 3461 kmp 阅读全文
posted @ 2018-07-01 23:14 臼邦庶民 阅读 (43) 评论 (0) 编辑
摘要:暑期训练第三天,学习基础算法。 比如:二分和三分,位运算,hash,博弈论等。 算法模板 坑放这,再填…… 例题 坑放这,再填…… 模拟赛 帅气的地址 A.CodeForces - 730C 首先想到二分答案,这没话说…… 原来想的是bfs预处理,再暴力排序,结果是O(nq log^2 n)的,T了 阅读全文
posted @ 2018-06-27 23:15 臼邦庶民 阅读 (23) 评论 (0) 编辑
摘要:暑期训练第二天,学习网络流…… 包括SAP算法,SPFA费用流,zkw费用流等。 算法模板 坑先放这,再填。 例题 学长说一道例题就蕴含一种思想。 例A.试题库问题 经典的网络流匹配问题。 建图:源点向每道题连流量为1的边,每道题向可属类型连流量为1的边,类型向汇点连流量为ki的边。 然后跑最大流, 阅读全文
posted @ 2018-06-26 22:57 臼邦庶民 阅读 (35) 评论 (0) 编辑
摘要:暑期训练的第一天,学习图论。 包括强/双连通分量,割点与桥,二分图,2-Sat等。 算法模板 坑放这,以后再填。 例题 坑放这,以后再填。 模拟赛 地址:https://cn.vjudge.net/contest/235355 A.矿场搭建 (为方便,本题把两个用无向边连接的点和单点也叫做点双连通子 阅读全文
posted @ 2018-06-25 22:38 臼邦庶民 阅读 (51) 评论 (0) 编辑
摘要:题意:给你一个序列,叫你找一个子序列,使得这个子序列的平均数减去中位数最大。 思路:题面直接说是单峰函数,我也没多想(根本没看懂),现在看来就是排序+三分搜索啦。 代码:(特地去学了下三分。。): 阅读全文
posted @ 2017-09-04 20:35 臼邦庶民 阅读 (34) 评论 (0) 编辑
摘要:题意:有三种字母,可以用两个不同的换一个第三种字母,两个相同的换一个同种字母(即消去一个),问最后剩下的字母。 第一题显然是if题,总体来说只有三种情况: 1.有三种不同的>>输出“BGR” 2.有两种不同的:{ (1)两种都有超过一个>>情况1; (2)一种只有一个>>输出这种和未出现的字母 (3 阅读全文
posted @ 2017-09-03 20:06 臼邦庶民 阅读 (42) 评论 (0) 编辑
摘要:好多题没写啊~ 题意:给出一个由V个点和E条边组成的图G,每条边上有一个权值,要求构造出一棵生成树,使得树上的最大权值与最小权值的差尽可能小 做法:说到贪心就是Kruskal啦,从最小的边开始构造最小生成树,记下结果,取最小的那个。 实现并不难。 阅读全文
posted @ 2017-08-30 14:08 臼邦庶民 阅读 (46) 评论 (0) 编辑
摘要:题目: Hzwer的跳跳棋是在一条数轴上进行的。棋子只能摆在整点上。每个点不能摆超过一个棋子。 某一天,黄金大神和cjy用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位置。他们要通过最少的跳动把它们的位置移动成x,y,z。(棋子是没有区别的) 跳动的规则很简单,任意选一颗棋子, 阅读全文
posted @ 2017-07-11 21:31 臼邦庶民 阅读 (106) 评论 (0) 编辑