摘要:
矩阵简介矩阵(Matrix)可以看作一个二维数组,就是一个有n行m列的填满数的数字阵。一个矩阵可以写作:A=⎛⎝⎜⎜⎜⎜a11a21⋮an1a12a22⋮an2…………a1ma2m⋮anm⎞⎠⎟⎟⎟⎟关于矩阵论的最基础理论可以参考1,这本书从需要的基础知识讲起,通过线性方程和向量空... 阅读全文
摘要:
2-SAT学习笔记问题由数理逻辑的知识我们知道,任何一个合式公式对应于一个合取范式。判断一般合式公式的可满足性是一个NPC问题,甚至当存在一些项由三个或以上原子命题时,判断其可满足性仍然是NPC。考虑一个每一项都只有至多两个原子命题的合取范式(2-SAT),其中要支持¬,∨,∧,→... 阅读全文
摘要:
题目大意1给定n(n≤2×104)个二元组(xi,yi),要求从每个二元组中选择一个数构成集合S,最大化min{abs(i−j)|i,j∈S}。分析与解考场上最后1h想到正解…无奈以前并没有做过2-SAT,最后暴零滚粗…首先显然二分答案ans,我们现在考虑如何验证。考虑如果我们选择... 阅读全文
摘要:
看到难度普遍7-9就感觉很劲…再加上doc出品,于是果断入坑。由于知识性内容还没有学完,只能慢慢刷了。章节 1. 一些简单的练手题1.1 捕风捉影这sb题居然智障WA了两次….由于是回文串只要枚举前半段,然后瞎几把测试素数就好了。 顺便学习一波miller-rabin的二次探查... 阅读全文
摘要:
BZOJ 4503: 两个串兔子们在玩两个串的游戏。给定两个字符串S和T,兔子们想知道T在S中出现了几次, 分别在哪些位置出现。注意T中可能有“?”字符,这个字符可以匹配任何字符。Input两行两个字符串,分别代表S和TOutput第一行一个正整数k,表示T在S中出现了几次 接下来... 阅读全文
摘要:
题意给出n个正整数,求从中任选3个数(下标不重复),求以这三个数为长度的边能构成三角形的概率。分析与解可以用FFT求出两个数的和(注意去重),然后枚举最长边,利用前缀和寻找比他短的和,总和即为不能形成三角形的数量。用总数减去这个数就是构成三角形的数量。#include using ... 阅读全文
摘要:
强盗听过讲解后1A…在一定时间周期内有若干个强盗,可以在 [ai,bi) 内任一时刻(这个时刻是你钦定的)抢劫,获取ci的收益。每一个时刻最多干一个强盗,问挽回的最大收益。由于可以钦定,那必然是让他们抢劫在尽可能多的不同时间内。于是想到二分图带权匹配。由于边数太多,而且时间总是以区... 阅读全文
摘要:
一、NIM取石子游戏有n堆石子,分别有a1,a2,…,an个,现在有两名选手分别从一堆取走若干个,可以证明对于任何一个确定的状态,(如果双方都采取最优策略)。结论:一个状态是必败态当且仅当 ⊕{ai}=0。用归纳法证明,我们观察ai的二进制位。其中Xor中最高位的1,则必然存在一个... 阅读全文
摘要:
动态树问题维护一个动态森林,支持:Link x, y 将x和y连接Cut x, y 删除x与y之间的边Query x, y 询问x和y是否在一棵树内Link_Cut Trees作为Tarjan神犇研究的玩意,命名和Union-Find Set如出一辙…具体描述见论文《QTree解法... 阅读全文
摘要:
题意给定一个字符串S和一个权值函数a(i),求对于0≤rusing namespace std;const int maxn = 300005;struct S_A { int A[maxn], SA[maxn], C[maxn], rank[maxn], h[maxn], ... 阅读全文