08 2019 档案

摘要:持续更新中。。。 1.QQ服务独立密码的验证死活通过不了 症状描述 你会发现QQ服务独立密码的验证死活通过不了,改了密码也没用,总是显示这个玩意儿: 触发条件 已验证独立密码,且中途突然更换密码 发生异常,需要重新验证 其它未知状况 解决方案 先换一种同步方式(比如我需要先换成7天)。 它会弹出一个 阅读全文
posted @ 2019-08-24 09:02 happyZYM 阅读(1542) 评论(0) 推荐(0)
摘要:题目链接:Link Problem Solution 一个很直观的想法是设 $ f(x) $ 表示覆盖[L,x]需要花费的最小代价。 为避免后效性,可将奶牛右端点排序。设当前奶牛为 $ [L,R],c $ ,则状态转移方程为: \[f(R) = \min\limits_{L-1 \le x \le 阅读全文
posted @ 2019-08-22 09:41 happyZYM 阅读(201) 评论(0) 推荐(0)
摘要:某天我突然心血来潮,打算打一场CF( "Codeforces Round 581 (Div. 2) " ),和lbn约好后register了。~~顺带恶补了一大堆CF攻略~~ 8H 主站卡的yapi,有点慌。。。 7H 弄好一堆东西后搞文化课去了。。。 20min lbn突然说他熬不动了。。。 突然 阅读全文
posted @ 2019-08-20 14:54 happyZYM 阅读(215) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 第一次过计算几何黑题,写篇题解纪念一下。 问题一:详见代码 问题二:详见代码 问题三:很简单的问题,不会去看蓝书 问题四:由于半径为r,圆心到直线的距离一定为r,满足该条件的点的轨迹是两条直线。而想要过定点,圆心到该点的距离也一定为r,满足该条件的点的轨迹是一个 阅读全文
posted @ 2019-08-19 22:31 happyZYM 阅读(184) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 作为蒟蒻的我在CSDN上找了篇题解借鉴了一下 原文,我这篇题解算是对原题解的补充说明。 #include<cstdio> #include<cmath> const double pi=acos(-1.0); double area(double a,doubl 阅读全文
posted @ 2019-08-19 22:30 happyZYM 阅读(141) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 记忆化动态规划 什么鬼 这题是一道典型的插头DP(轮廓线动态规划),由于如果不记录轮廓线无法转移且m和n中至少有一个不超过10,所以可以用二进制编码将轮廓线计入状态,详细推导过程见《算法竞赛入门经典训练指南》P384。 这是裸的插头DP: #include<cs 阅读全文
posted @ 2019-08-19 22:27 happyZYM 阅读(301) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 这题是典型的AC自动机,一个小优化是把所有不存在的边补上,使得所有的转移一视同仁,减少while语句来常数优化。 贴代码: #include<cstdio> #include<cstring> #include<queue> #include<map> usin 阅读全文
posted @ 2019-08-19 22:26 happyZYM 阅读(139) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 这题的主要思想就是数形结合。设比赛总长度为1,其中游泳长度为x,自行车长度为y,赛跑长度为 1-x-y,则选手i打败选手j(非并列)的条件是 \(\dfrac{x}{v_i}+\dfrac{y}{u_i}+\dfrac{1-x-y}{w_i}<\dfrac{x} 阅读全文
posted @ 2019-08-19 22:24 happyZYM 阅读(187) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 每次询问都能得到一个半平面,它们的并就是可能的区域(别忘了考虑房间的边界),特判一下“Same”就行了。 贴代码: #include<cstdio> #include<cstring> #include<cmath> #include<vector> #incl 阅读全文
posted @ 2019-08-19 22:17 happyZYM 阅读(115) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 第一次写Trie,写篇题解纪念一下...... 令d(i)表示从字符i开始的字符串(即后缀 S[i...L-1])的分解方案数,则d(i)=sum{d(i+len(x)) | 单词x是 S[i...L-1]的前缀}。 显然,关键点就在判断前缀上。可以把所有的单词 阅读全文
posted @ 2019-08-19 22:16 happyZYM 阅读(153) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 由于素数都是正数,因此可以把素数预处理成一个队列,每次都尽量往上加。这样就可以用O(n)的时间算出方案数。 #include<cstdio> inline bool isp(int a) { for(int i=2;i*i<=a;i++) if(a%i==0) 阅读全文
posted @ 2019-08-19 22:15 happyZYM 阅读(92) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 这题坑了我很长时间。。。血篇题解纪念一下。。。 如果枚举每一条线段并计算它露出的部分会非常麻烦,可以考虑把这个地图分割成一些薯条竖条,使得每个区域内露出的部分无交点,显然按照线段交点的x坐标分割比较好。 于是,我们得出了如下代码: #include<cstdio 阅读全文
posted @ 2019-08-19 22:14 happyZYM 阅读(206) 评论(0) 推荐(0)
摘要:题目链接:Link Problem Solution 首先,我们可以发现:交换相邻的两头奶牛,对其它奶牛的危险值没有影响。设这两头奶牛分别为\((s_1,w_1),(s_2,w_2)\),之前所有奶牛的体重和为\(sw\),则1放在2前面更优意味着: \[max(sw-s_1,sw+w_1-s_2) 阅读全文
posted @ 2019-08-19 22:11 happyZYM 阅读(185) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 做这题时一开始我想用IDA*,后来发现需要判断是否有解,便改用状态压缩bfs。事实上,移动时石头和机器人是一样的,所以可以很容易的压缩到一个变量里,判重时可以将树的状态(压缩过)和机器人的位置分两个维度。 代码如下: #include<cstdio> #incl 阅读全文
posted @ 2019-08-19 22:03 happyZYM 阅读(162) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 小心溢出! 小心溢出! 小心溢出! 这道题是一个很典型的状压DP,唯一要注意的是要小心溢出。 刷表法: #include<cstdio> #include<cstring> using namespace std; const int maxn=16; int 阅读全文
posted @ 2019-08-19 21:59 happyZYM 阅读(105) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 这题的状态转移方程很容易想出(分同时去掉、去头、去尾三种情况),但字典序最小不好处理。我是在状态转移的同时计算答案,没想到string居然没有炸掉.... 贴代码: #include<cstdio> #include<cstring> #include<stri 阅读全文
posted @ 2019-08-19 21:58 happyZYM 阅读(117) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 紫书上的思路很容易理解,但时间复杂度太高。在网上搜了半天终于在维基百科上搜到了O(1)算法。 以下证明过程摘自维基百科: 即答案为 (n*n*n*n-6*n*n*n+23*n*n-18*n+24)/24 由于 0≤n≤2^31,需要高精度。 c++代码如下: # 阅读全文
posted @ 2019-08-19 21:57 happyZYM 阅读(252) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 废话不说,先贴代码..... #include<cstdio> #include<cstring> int n,m,maxd,cnt,sum; int FullSize[625],Size[625]; bool sti[65],in[625][65]; inli 阅读全文
posted @ 2019-08-19 21:56 happyZYM 阅读(199) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 令 \(x_i\) 表示从 \(a_1\) 到 \(a_{i-1}\) 中比 \(a_i\) 小的数的个数, \(y_i\) 表示从 \(a_{i+1}\) 到 \(a_n\) 中比 \(a_i\) 小的数的个数,则答案等于 $\sum_{k=1}^N x[i] 阅读全文
posted @ 2019-08-19 21:54 happyZYM 阅读(126) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 第一次写DLX,写篇题解纪念一下……o(* ̄▽ ̄*)o 这题是一个典型的精确覆盖问题,每一行、每一列、每一个小方格都要有对应的数字,因此可以直接套模型,详细解释见代码: #include<cstdio> #include<cstring> #include<ve 阅读全文
posted @ 2019-08-19 21:53 happyZYM 阅读(167) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 首先,先按列处理出所有合法的字母,按字典序排列。 注意!有可能会有相同的字母! 接下来,从左到右计算应该选那个字母(无解的情况预处理一下就行了) #include<iostream> #include<vector> #include<cstring> #inc 阅读全文
posted @ 2019-08-19 21:52 happyZYM 阅读(114) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 首先,用一个表来解决输入问题(也可以动态生成)。 通过观察我们可以发现:每一个字符中的“白洞洞”的个数都不一样,因此可以用dfs数出每一个黑的联通块(字符)中的白洞洞的个数,加以区分。 细节得特别注意,代码如下: #include<cstdio> #includ 阅读全文
posted @ 2019-08-19 21:51 happyZYM 阅读(178) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 做这题时我借鉴了某一大佬的博客:传送门。 在这里我就把原文解释一下(详见代码): #include<cstdio> #include<cstring> const int N=70; int n,cnt,tot,maxn,minn,tm[N]; bool ok; 阅读全文
posted @ 2019-08-19 21:50 happyZYM 阅读(116) 评论(0) 推荐(0)
摘要:题目链接:Link Problem Solution 显然,最终的划分方法在每一行中都必须满足。 求最小循环节是KMP的基本应用之一,我们可以O(nm)求出每一行、每一列的最小循环节长度,分行和列求出它们的lcm,最终再乘起来即可。 注意:如果取lcm的时候发现值已经大于等于原来的长度了,就不用考虑 阅读全文
posted @ 2019-08-19 21:46 happyZYM 阅读(176) 评论(0) 推荐(0)
摘要:矩阵不一定满足欧拉定理,但满足指数循环节定理(即拓展欧拉定理) 如果DFS中的可持久化只需要回退操作,那么可以直接利用系统栈来维护可回退化来降低时间、编程复杂度 基于长链剖分的子树合并是O(n)的 图论题千万要区分“边id”和“点id”,别敲错变量名 “求[1,n]的一个排列P,使其在满足限制函数f 阅读全文
posted @ 2019-08-19 21:39 happyZYM 阅读(265) 评论(2) 推荐(1)
摘要:四边形不等式 定义函数 \(f(l,r)\) 满足四边形不等式为:对于所有 \(l \le l' \le r' \le r\) ,满足 $f(l,r) \ge f(l',r') , f(l,r)+f(l',r') \ge f(l,r')+f(l',r) $ 对于状态转移方程 $f(i,j)=min 阅读全文
posted @ 2019-08-19 21:36 happyZYM 阅读(485) 评论(0) 推荐(0)
摘要:线性筛素数 ___ 指数判定与质因数分解(Pollard Rho与Miller Rabin) 例子: "P4718 【模板】Pollard Rho算法" 代码: ___ 严格O(log n)的质因数分解 ___ 欧几里得算法与拓展欧几里得(拓欧) 得出的$x_0$和$y_0$满足$ax_0+by_0 阅读全文
posted @ 2019-08-19 21:35 happyZYM 阅读(195) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2019-08-19 21:32 happyZYM 阅读(143) 评论(0) 推荐(0)
摘要:例题引入 题目:Luogu P2365 任务安排 题解:题解 P2365 【任务安排】 模板总结 对于此类方程:\(F[i]={min_{L(i) \leq j \leq R(i)}} \begin{Bmatrix} F[j]+val(i,j) \end{Bmatrix}\) 暂时忽略min和范围得 阅读全文
posted @ 2019-08-19 21:30 happyZYM 阅读(156) 评论(0) 推荐(0)
摘要:总结 1.运算符优先级 2.性质 x|y=~((~x)&(~y)) x&y=~((~x)|(~y)) x^y=(x|y) (x&y)=x+y ((x&y) 阅读全文
posted @ 2019-08-19 21:29 happyZYM 阅读(125) 评论(0) 推荐(0)
摘要:例题:[ZJOI2007]棋盘制作 本题代码: 以下内容部分参考 "@Clove_unique" 悬线法 用途:解决给定矩阵中满足条件的最大子矩阵 做法:用一条线(横竖貌似都行)左右移动直到不满足约束条件或者到达边界 定义几个东西(用竖线扫描): $ left\[i]\[j] $ 表示 $ (i,j 阅读全文
posted @ 2019-08-19 21:17 happyZYM 阅读(269) 评论(0) 推荐(0)
摘要:前置知识 三角函数 如图: $tan(θ)=AB/BO$ $sin(θ)=AB/AO$ $cos(θ)=BO/AO$ 值的正负性: 向量 严格的解释见 "这里" 形象的解释就是一个表示位移的没有固定位置的箭头 一些约定 如没有特别说明单位,角度默认为 "弧度" 如没有特别说明,多边形点的存储方式为逆 阅读全文
posted @ 2019-08-19 21:03 happyZYM 阅读(408) 评论(0) 推荐(0)
摘要:通俗描述 当在B中匹配A时,若在某一位失配,我们需要知道至少要将A往后移多少位才能确保之前匹配的内容仍然匹配(不然匹配肯定无效),而这个偏移量可以由“当前位置A的前缀中,A的非前缀后缀与A的前缀的最大匹配长度”计算出,考虑到在B中的计算过程实际上在计算“B的后缀与A的前缀的最大匹配长度”,两者可以用 阅读全文
posted @ 2019-08-19 21:02 happyZYM 阅读(129) 评论(0) 推荐(0)
摘要:先放张图(除了那个“北疆线”之外都和教材上相同) ~~“京通线”之类应该不会考到的就不提了~~ 北京相关 1. 京哈线 2. 京沪线: 北京 天津 济南 徐州 南京 上海 (“天济徐南”) 3. 京九线: 北京 南昌 九龙 4. 京广线: 北京 石家庄 郑州 武汉 长沙 株洲 广州 (“石郑武长株” 阅读全文
posted @ 2019-08-19 21:01 happyZYM 阅读(3785) 评论(0) 推荐(0)
摘要:emmmmm Day -1 第一次参加TG组,敲敲模板,感觉自己要飞起来了。。。初生牛犊不怕虎啊。。。 Day 0 中午离开学校,被一群同学赶出来了。。。忘了膜拜zxw和cyf两位数学大佬沾沾仙气。。。哇呜。。。 酒店屋顶很低。。。感觉好方。。。 Day 1 有点儿紧张,第一次进提高组考场,哇。。。 阅读全文
posted @ 2019-08-19 20:57 happyZYM 阅读(135) 评论(0) 推荐(0)
摘要:十二省联考命题组温馨提醒您:数据千万条,清空第一条。多测不清空,爆零两行泪。 第一次参加省选差点十二响了。。。 Day n m 突然接到通知说我可以报名省选了。。。想了想报名了。。。 Day n 报名通过了??? Day 1 清明节前一天,教室一体机闹鬼O_O 突然意识到NOIP扣了一半的分已经进不 阅读全文
posted @ 2019-08-19 20:56 happyZYM 阅读(350) 评论(0) 推荐(1)
摘要:题目链接:Link Problem Solution 首先我们可以发现:当安排好一个对应的移动方案后,每个士兵的移动的最短距离必然是一个曼哈顿距离。 设从左到右依次对应的士兵分别位于 $ (x_1,y_1),(x_2,y_2),...,(x_n,y_n) $ ,则答案为 $ \sum_{i=1}^n 阅读全文
posted @ 2019-08-19 20:54 happyZYM 阅读(293) 评论(0) 推荐(0)
摘要:题目链接:Link Problem Solution 这道题是一道比较裸的树哈希的题目,注意为了避免被卡,不同深度的节点的权值不同且是随机的。 Hash千万别用自然溢出!!! Code #include<cstdio> #include<iostream> #include<cstring> #in 阅读全文
posted @ 2019-08-19 20:53 happyZYM 阅读(188) 评论(0) 推荐(0)
摘要:题目链接:Link Problem Solution 首先,我们不难发现,即使是先中转成10进制的,时间复杂度也还是\(O(n^2)\)的,但编程复杂度显然不同。 设高精度数长度为\(lena\),为\(n\)进制,从低位到高位分别为\(a_0,a_1,...,a_n\)。然后我们会发现:转换后的\ 阅读全文
posted @ 2019-08-19 20:52 happyZYM 阅读(270) 评论(0) 推荐(0)
摘要:题目链接:Link Problem 题目背景 使用过Android 手机的同学一定对手势解锁屏幕不陌生。Android 的解锁屏幕由3X3 个点组成,手指在屏幕上画一条线,将其中一些点连接起来,即可构成一个解锁图案。如下面三个例子所示: 题目描述 画线时还需要遵循一些规则: 连接的点数不能少于4 个 阅读全文
posted @ 2019-08-19 20:51 happyZYM 阅读(189) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 将每一个点\(x_i\)拆成\(2i\)和\(2i+1\)(\(2i\)表示\(x_i\)的假状态,\(2i+1\)表示\(x_i\)的真状态),问题就化为了从2n个状态中选出原来的每一个\(x_i\)的一个状态。 这有什么用呢?别急,先举个栗子,“1 1 3 阅读全文
posted @ 2019-08-19 20:51 happyZYM 阅读(125) 评论(0) 推荐(0)
摘要:题目链接:Link Problem 题目背景 Diffie-Hellman密钥交换协议是一种简单有效的密钥交换方法。它可以让通讯双方在没有事先约定密钥(密码) 的情况下,通过不安全的信道(可能被窃听) 建立一个安全的密钥K,用于加密之后的通讯内容。 题目描述 假定通讯双方名为Alice和Bob,协议 阅读全文
posted @ 2019-08-19 20:50 happyZYM 阅读(185) 评论(0) 推荐(1)
摘要:题目链接:Link Problem Solution 这道题目是一道很明显的2-SAT问题,但要注意变量是每个材料,值是蒙式或汉式,而不是“蒙式xx为1或汉式xx为1”。 目测没有必要用Tarjan,毕竟理论时间复杂度一样,常数需要时卡一卡就行了。。。 Code #include<cstdio> # 阅读全文
posted @ 2019-08-19 20:49 happyZYM 阅读(148) 评论(0) 推荐(0)
摘要:题目链接:Link Problem Solution 考虑到每个点都是先横向移动,然后再纵向移动,所以我们可以考虑每行维护一个splay,最后一列再维护一个splay。 但是考虑到n和m的规模都是\(3*10^5\)级别的,普通的splay肯定会爆空间,所以我们使用动态开点的splay,对于每个节点 阅读全文
posted @ 2019-08-19 20:48 happyZYM 阅读(124) 评论(0) 推荐(0)
摘要:题目链接:Link Problem Solution dfs 2-SAT被卡得好开心啊 这道题目乍一看是一道“3-SAT”的题目,变量是每个地图,选择是车的类型。 但要注意一个事实:除了那d个地图之外,其它的地图事实上只有2种选择。而对于那d个X型地图,我们可以穷举假设它是A型或B型,因为A型、B型 阅读全文
posted @ 2019-08-19 20:47 happyZYM 阅读(141) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 这题有毒!!!!! spfa判负环常用的有两种,一种是判断松弛次数,但它会绕环好多次,另一种是判断最短路径的长度,只要绕环一次,前一种本题过不了。 判断最短路径的长度的意思就是用一个len数组记录从源点到当前节点的最短路径经过的边数,并在松弛时令len[v]=l 阅读全文
posted @ 2019-08-19 20:46 happyZYM 阅读(145) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 我这篇题解主要是对SPFA采用SLF和LLL贪心优化,具体解释详见代码:原文 #include<cstdio> using namespace std; typedef long long ll; const int maxn=10005; const int 阅读全文
posted @ 2019-08-19 20:45 happyZYM 阅读(108) 评论(0) 推荐(0)
摘要:题目链接:Link Problem Solution 这道题目本质上和P3387【模板】缩点很像,但这道题主要的麻烦之处在于建图。如果暴力建图的话,时间复杂度是\(O(n^2)\)的,肯定会挂,所以我们可以把1类和2类分开处理,每一类按对应的行或列串成若干环,环上选一点引向同行或列的其它点,至于3类 阅读全文
posted @ 2019-08-19 20:44 happyZYM 阅读(326) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 这题一看图就会发现这是个半平main交。。。然后就可以开心地敲啦! code: #include<cstdio> #include<cmath> #include<vector> #include<algorithm> using namespace std; 阅读全文
posted @ 2019-08-19 20:43 happyZYM 阅读(146) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 来一篇通俗点的DLX的题解。 有关DLX的讲解: 跳跃的舞者,舞蹈链(Dancing Links)算法——求解精确覆盖问题 算法实践——舞蹈链(Dancing Links)算法求解数独 针对本题的一些细节详见注释。 code: #include<cstdio> 阅读全文
posted @ 2019-08-19 20:38 happyZYM 阅读(160) 评论(0) 推荐(0)
摘要:题目链接:Link Solution 最通俗易懂的树形依赖背包(主附件背包)的题解 前置姿势:树的后序遍历 参考信息:树形依赖背包的优化方法 树形依赖背包问题 每个点有个权值和体积,如果选了某个点那么它的父亲也必须选,问体积和<=m的最大权值和。 肿么办? 枚举每颗子树的选取方式,暴力搞不好都能写错 阅读全文
posted @ 2019-08-19 20:27 happyZYM 阅读(155) 评论(0) 推荐(0)
摘要:题目链接:Link Problem Solution 算法提示中说好的栈呢????? 先考虑单栈排序:显然任意时刻从栈顶到栈底都单调递增,然后我们会发现,对于 $ i < j < k $ ,如果 $ a[k] < a[i] < a[j] $ 肯定不可以单栈排序。考虑到这三个数和他们之间的数字是独立的 阅读全文
posted @ 2019-08-19 19:34 happyZYM 阅读(199) 评论(0) 推荐(0)
摘要:题目链接:Link Problem Solution 首先不难想到字符串Hash的做法,枚举A中的每个位置,二分匹配长度即可,时间复杂度\(O(n)\)。 很明显正解应该要用KMP,但对于匹配出的一个f[i]我们只能知道“有一次长度至少为f[i]的匹配”,同时还可能会漏掉一些匹配位,怎么办? 基于值 阅读全文
posted @ 2019-08-19 19:33 happyZYM 阅读(186) 评论(0) 推荐(0)
摘要:题目链接:Link Problem Solution 由于题目中提到了奇数位置要么没有,要么有1个,所以若区间[L,R]中有奇数位置,等价于这个区间里的防具数量为奇数个。 考虑到n只有200000,可以考虑二分奇数点的位置p,然后判断区间[0,p]中的防具的个数。 显然对于一组防具\((s_i,e_ 阅读全文
posted @ 2019-08-19 19:10 happyZYM 阅读(171) 评论(0) 推荐(0)