![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
======算法======
35point5
这个作者很懒,什么都没留下…
展开
-
迂回(tour)
算点iii在第kkk个时刻到达恰好到达点jjj的方案数就是Ai,jkA^k_{i,j}Ai,jk,AAA为邻接矩阵所以我们需要算A1A^1A1到AkA^kAk一个办法是每个点再连出一个虚点,虚点连一个自环,引出路径让它在虚点里绕圈,但是这样nnn要多开一倍,复杂度无法接受另一个办法是:∑i=1kAi=∑i=1⌊k2⌋Ai+A⌊k2⌋∑i=1⌊k2⌋Ai+[k&1]Ak\...原创 2019-02-28 19:35:19 · 274 阅读 · 0 评论 -
CPOJ104 整除
题面 考虑分开每个质数处理,最后合并答案. 设这ccc个质数为p1,p2,…,pcp1,p2,…,pcp_1,p_2,\ldots,p_c n|(xm−x)⇔p1|(xm−x)∧p2|(xm−x)∧⋯∧pc|(xm−x)n|(xm−x)⇔p1|(xm−x)∧p2|(xm−x)∧⋯∧pc|(xm−x)n|(x^m-x)\Leftrightarrow p_1|(x^m-x)\wedge ...原创 2018-09-14 11:44:36 · 163 阅读 · 0 评论 -
CPOJ111 跳房子
题面原创 2018-09-16 20:48:42 · 374 阅读 · 0 评论 -
CPOJ 矩阵交换
题面 考虑用链表维护,矩阵里每个点维护一个向下和向右的指针,每次O(n)O(n)O(n)维护即可Code原创 2018-09-02 19:16:32 · 325 阅读 · 0 评论 -
CPOJ 排列变换
题面 每次肯定是选一个不在自己位置上的数连续换换换直到所有经过的位置都满足要求为止 一次换换换可能是这样的: 显然可以把红圈里开倒车的所有数都先换掉,这样显然可以让答案变小,然后剩下来的数都是单调的,再计入答案即可.Code...原创 2018-09-02 19:09:44 · 251 阅读 · 0 评论 -
CPOJ “或”游戏
题面 显然只让最高位最高的一个数乘最优,然后算出前后缀算一下就可以每一个数O(1)O(1)O(1)算答案了.Code原创 2018-09-02 18:52:19 · 132 阅读 · 0 评论 -
洛谷P3441 [POI2006]MET-Subway
P3441 [POI2006]MET-Subway 此题路径可以相交 不难想到选取的III条路径都是从叶子到叶子存在最优解,那么发现貌似叶子节点中最多只有2I2I2I个会被覆盖(每条路径从叶子到叶子,覆盖222个),类似的,发现从叶子节点往内推一层也是最多只有2I2I2I个会被覆盖,那么大胆猜测,如果从叶子节点向内拓扑分层后每一层最多只有2I2I2I个会被覆盖,考虑到每一层的节点并不一定有2I...原创 2018-08-24 09:57:02 · 206 阅读 · 0 评论 -
牛客网NOIP赛前集训营-提高组(第三场) A-管道维修
题面考虑计算每个格子至少kkk步被修复的概率fi,j,kf_{i,j,k}fi,j,k(gi,j,kg_{i,j,k}gi,j,k为恰好kkk步被修复的概率)fi,j,k=∑k′≥kgi,j,k′ansi,j=∑kk⋅gi,j,k=∑kfi,j,kf_{i,j,k}=\sum_{k'\geq k} g_{i,j,k'}\\ans_{i,j}=\sum...原创 2018-09-26 20:53:49 · 139 阅读 · 0 评论 -
牛客网NOIP赛前集训营-提高组(第二场)_B_分糖果
题面考虑容斥(这也能容斥??..)(把和前一位相同的位看作1,不同的看作2,全为2的方案即为所求,这应该就是一个普通的容斥问题了)先考虑链的情况,显然有fi=∑jfj∗min(aj+1…ai)∗(−1)i−j+1f_i=\sum_j f_j*min(a_{j+1}\ldots a_i)*(-1)^{i-j+1}fi=j∑fj∗min(aj+1…ai)∗(−1)i−j+1这显...原创 2018-09-21 21:09:59 · 305 阅读 · 0 评论 -
洛谷 P3727 曼哈顿计划E
题面先求出每个节点的SG函数(打表)根据SGSGSG函数的定义SG(now)SG(now)SG(now)等于最小的SG(to)+1SG(to)+1SG(to)+1而且没有另一个SG(to′)=SG(to)+1SG(to')=SG(to)+1SG(to′)=SG(to)+1即000到SG(now)−1SG(now)-1SG(now)−1都有SG(to)SG(to)SG(to...原创 2018-11-19 21:56:21 · 165 阅读 · 0 评论 -
CPOJ 平均数-NOIP十连测
题面二分答案,每个点减去答案,若一段区间平均数小于答案,那么它们的和小于零前缀和来一下,逆序对数就是小于平均数的数对数量归并排序搞一下Code...原创 2018-10-27 20:05:40 · 214 阅读 · 0 评论 -
CPOJ Dash Speed-NOIP十连测-2-3(分治)
题面考虑对时间分治,假设当前进行到[l,r][l,r][l,r],则将完全包含[l,r][l,r][l,r]的区间加入,其余区间分类,等到进入左右子区间时处理显然有一个结论,两棵树合并,新的直径的两个端点一定是原来两棵树的四个直径端点的其中两个并查集存一下直径端点即可退出当前区间时记得还原Code...原创 2018-10-27 20:00:46 · 198 阅读 · 0 评论 -
CPOJ 太阳神-NOIP十连测-4-3
题面lcm(a,b)>nlcm(a,b)>nlcm(a,b)>n的难求,考虑求lcm≤nlcm\leq nlcm≤n的∑a∑b[abgcd(a,b)≤n]=∑g∑a∑b[ab≤ng]=∑gfng\begin{array}{l}\sum_a \sum_b[\frac{ab}{gcd(a,b)}\leq n]\\=\sum_g \sum_a \sum_b[a...原创 2018-10-30 11:12:28 · 272 阅读 · 0 评论 -
CPOJ 2018.10.29提高测试 Sequence
考虑两个数p1k1p_1^{k_1}p1k1,p2k2p_2^{k_2}p2k2设由他们各自的因子构成的数列为a1ia_{1i}a1i与a2ia_{2i}a2i,将bbb质因数分解后pip_ipi的幂次为did_idi显然gcd(a11,a12,…,a1n)=min(g1,p1d1)gcd(a21,a22,…,a2n)=min(g2,p2d2)gcd(a11,a12,…,a1...原创 2018-10-30 10:52:09 · 181 阅读 · 0 评论 -
CPOJ 九校联考第六场day2 中间值(median)
可以扩展到求kkk大的情况:比较a[l1+k/2−1]a[l1+k/2-1]a[l1+k/2−1]与b[l2+k/2−1]b[l2+k/2-1]b[l2+k/2−1]的大小若a[l1+l/2−1]a[l1+l/2-1]a[l1+l/2−1]较小,则取a[l1]a[l1]a[l1]到a[l1+k/2−1]a[l1+k/2-1]a[l1+k/2−1]作为序列的前k/2k/2k/2位递归处理(l...原创 2018-10-21 21:30:28 · 168 阅读 · 0 评论 -
CPOJ 2018.10.19提高测试 机器人退场 (exit)
只有一边有出口的可以忽略,求出每个点到左右两边的距离li,ril_i,r_ili,ri若一个点从左边出,那么lj&lt;lil_j&lt;l_ilj<li且rj&gt;rir_j&gt;r_irj>ri的点也必须从左边出,这个就是喜闻乐见的平面上dp的问题了,树状数组维护一下即可Code...原创 2018-10-21 20:26:59 · 136 阅读 · 0 评论 -
CPOJ 2018.10.19提高测试 垃圾机器人 (litter)
考虑对每一条路径差分,以此计算每个点iii在每轮中第kkk个捡的贡献:costi,k=(1+4)ai&ThickSpace;&ThickSpace;&ThickSpace;&ThickSpace;&ThickSpace;(k=1)costi,k=((k+1)2−k2)ai=(2k+1)ai&ThickSpace;&ThickSpace;&...原创 2018-10-21 20:16:55 · 150 阅读 · 0 评论 -
LOJ 2587 「APIO2018」铁人两项
题面第一次写圆方树的题,感觉好难理解啊…所谓圆方树就是为图中的点双联通分量建一个方点,忽略点双联通分量中原来的边,改为点双联通分量中所有的点向该方点连边.本题中可以为所有联通块建出圆方树.考虑以下树形DP:以当前遍历到的点为ccc点计算经过它的路径.此题中一个点的贡献为经过它的路径乘以其权值每个原点相邻的都是方点,每个方点的权值为其代表的点双联通分量的点数,这样一来每个圆点作为sss...原创 2018-10-25 21:13:05 · 220 阅读 · 0 评论 -
CPOJ 2018.10.14提高测试 图片拼图板
题面使用广搜,每次只保留估价函数前kkk小的状态(估价函数可以选每个数到最终位置的曼哈顿距离之和,kkk任选)Code原创 2018-10-15 14:16:00 · 197 阅读 · 0 评论 -
CF600E Lomsat gelral(DSU on tree)
题面先考虑O(n2)O(n^2)O(n2)暴力,DFSDFSDFS到每个点之后再暴力统计它的子树答案即可仔细观察,我们发现一个点没有好好利用它儿子的贡献.可以发现,每个点最后遍历到的一棵子树贡献可以被保留,这样计算该节点答案的时候就可以少遍历最后一棵子树,直接利用最后一棵子树的贡献.显然把最大的子树留到最后遍历最优,可以证明这样做是O(nlogn)O(nlogn)O(nlogn)的(然而我并不...原创 2018-10-15 10:59:46 · 137 阅读 · 0 评论 -
牛客网NOIP赛前集训营-提高组(第四场) C灭虫
题面考虑DP先把所有点离散化,设viv_ivi为离散化后第iii大的点的位置.按ppp排序,设fi,jf_{i,j}fi,j表示当前DP到第iii个点,最右端覆盖到jjj的最大区间总长度考虑第iii个区间往左和往右两种转移:往左:从大到小枚举kkk,假设k+1k+1k+1到i−1i-1i−1的点全部往右喷,mamama表示k+1k+1k+1到iii的点的rrr的最大值,l,p,rl,...原创 2018-10-08 09:22:34 · 211 阅读 · 0 评论 -
CPOJ九校联考第四场day1 排列permutation
题面试图构造二分图的模型,若第iii个位置上的数为aia_iai,那么左侧的iii向aia_iai连边.考虑用容斥计算答案,显然ans=∑i=0nfi(n−i)!(−1)ians=\sum_{i=0}^{n}f_i(n-i)!(-1)^ians=i=0∑nfi(n−i)!(−1)ifif_ifi为有iii个数不满足条件的合法排列数,即在二分图中选了iii条边的方案数二分...原创 2018-10-07 16:31:10 · 154 阅读 · 0 评论 -
(扩展)BSGS学习笔记
现有同余方程 ax≡b(mod&nbsp;p)ax≡b(mod&nbsp;p)a^x\equiv b(mod\space p) 其中(a,p)=1(a,p)=1(a,p)=1 如果暴力枚举xxx的话,根据欧拉定理 aφ(p)≡1(mod&nbsp;p)aφ(p)≡1(mod&nbsp;p)a^{\varphi(p)}\equiv 1(mod\space p) 效率是O(p)O(p)O(p...原创 2018-08-23 23:19:55 · 156 阅读 · 0 评论 -
BZOJ4566: [Haoi2016]找相同字符
4566: [Haoi2016]找相同字符 对第一个串建出后缀自动机,统计出每个节点对答案的贡献,再用第二个串跑一边统计答案。//# pragma GCC optimize ("O2")//# pragma comment(linker, "/STACK:1024000000,1024000000")#include<bits/stdc++.h>#define lb(x...原创 2018-08-20 17:52:49 · 162 阅读 · 0 评论 -
洛谷4337 [ZJOI2018]线图
题面 官方题解:原创 2018-03-24 10:10:01 · 994 阅读 · 0 评论 -
WZOJ 1304 01背包加强版(完全背包单调队列优化)
题意: 同普通的01背包,要求输出背包容量为1…m时的最大价值 物品数≤106≤106\leq10^6 背包最大容量≤105≤105\leq10^5 每个物品体积≤300≤300\leq300 每个物品价值≤109≤109\leq10^9 题解: 先考虑普通的完全背包的优化方法: 设物品大小v[i]物品大小v[i]物品大小v[i] 枚举每种物品iii,并枚举当前容量jjj,搞个单...原创 2018-03-05 16:11:19 · 1002 阅读 · 0 评论 -
BZOJ 5110 [CodePlus2017]Yazid 的新生舞会 O(n)
题面 题解: 枚举每个数作为众数,枚举到的数赋为+1,其它数赋为-1. 走一次统计一次肯定不现实,考虑动态更新走到当前点的答案res. 设sum为当前前缀和,f[i]表示前缀和为i的点有f[i]个,res即为所有小于sum的f[i]的和. 若接下去有一连串-1使得sum小于最小值,则一步跳到这串-1的末尾(因为不用统计答案) 这时就需要一个差分数组cf,在起点打-1标记,在终点打+1标...原创 2018-03-04 20:25:31 · 603 阅读 · 0 评论 -
Codeforces 3D Least Cost Bracket Sequence
题面 题意: 给你一个括号序列,其中某些位置不确定,给你每个不确定位置上填0和填1的代价ai,biai,bia_i,b_i,求使得括号序列匹配的最小代价和. 题解: 考虑将(用1代替,)用-1代替. 先不考虑括号序列匹配的限制,先考虑序列总和为0. 显然我们可以先把不确定的位置赋为-1,再挑选ai−biai−bia_i-b_i最小的若干个-1将其改为1. 再考虑加入括号序列匹配的限制...原创 2018-03-04 13:56:07 · 165 阅读 · 0 评论 -
BZOJ 5108 [CodePlus2017]可做题
题面 题解: 显然每个数的二进制位是互不影响的,所以可以每位拆开做. 考虑每一段连续1前面的第一个0,根据该串前缀异或和中0和1的个数考虑是否取反该0. 而每段连续1后面的连续零长度若大于1,则该位取该串1的前缀异或和的值,可以使得除最后一位外均为0,若连续零长度等于1则可以不管,根据下一串连续1来确定该位取值. Code...原创 2018-03-04 19:41:26 · 177 阅读 · 0 评论 -
BZOJ 5107 [CodePlus2017]找爸爸
题面 题解: 设f[i][j][0/1/2]表示a串处理到第i位,b串处理到第j位,结尾均不为空/a串为空/b串为空的最大匹配值. 转移:fo(i,0,n) fo(j,0,m) fo(k,0,2) { if (!k && i && j) ...原创 2018-03-04 19:32:51 · 203 阅读 · 0 评论 -
Codeforces 8E Beads
题面 题意: 定义Beads字符串为一个它的逆序串,按位取反串,逆序按位取反串的字典序均不小于它本身的01串. 求长度为n的第k大Beads串. 题解: 暴力做法: 枚举前一半,确定其前半部分,再枚举后半部分判断是否符合要求 判断两个串逆序后大小的方法:LL dayu(LL x,LL y){ LL temp=x^y; return ((lb(temp)&am...原创 2018-03-04 19:26:40 · 249 阅读 · 0 评论 -
Codeforces 7E Defining Macros
题面 题意: 给你一堆宏和一条表达式,问用宏去替换表达式再计算与先计算宏的值再代入表达式运算顺序是否有改变. 题解: 把所有常量和变量看成一种东西,那么每个宏和表达式可以看作: anxn+an−1xn−1+⋯+am+1xm+1+amxmanxn+an−1xn−1+⋯+am+1xm+1+amxma_nx^n+a_{n-1}x^{n-1}+\dots+a_{m+1}x^{m+1}+a_mx^...原创 2018-03-04 19:07:49 · 318 阅读 · 0 评论 -
Codeforces 7D Palindrome Degree(求两圆交点)
题面 题意: 有两个人A,BA,BA,B有三个地点a,b,ca,b,ca,b,c,AAA要从a走到b再走到ca走到b再走到ca走到b再走到c,B要从a走到cB要从a走到cB要从a走到c,两个人分别可以走比各自的最短路长t1,t2t1,t2t1,t2距离的路程,求两个人从aaa出发最长可以连续共同走多长的路程. 题解: 首先可以二分答案ans,在a画一个r1=ans为的圆.在b画一个r2=d...原创 2018-03-04 18:28:30 · 152 阅读 · 0 评论 -
Codeforces 5E Bindian Signalizing
题面 题意:给你一个环,求两个数之间没有比它们大的数的对数.题解: 可以先把最大的提到前面,这样即可破环为链. 考虑一对符合要求的不同的数,可以当作较小的数一直向左(或者右)找,找到的第一个比它大的数,所以每个数记一个l,rl,rl,r表示向左和向右第一个数的坐标,若它比所有它右边的数和除第一个以外左边的数都大,就不计入答案. 快速求l,rl,rl,r的方法(其中v为数值):r[i...原创 2018-03-04 16:04:05 · 154 阅读 · 0 评论 -
Codeforces 5C Longest Regular Bracket Sequence
题面 题意: 给你一个括号序列,求最长匹配的括号序列长度及数量. 题解: 考虑(赋为1,)赋为-1,画出前缀和的图像l1l1l1. 再把(赋为-1,)赋为1,画出后缀和的图像l2l2l2. 随意画一条直线k,画出l1,l2l1,l2l1,l2均在k上方的部分,如图中阴影部分. 而阴影部分的下底[a,b][a,b][a,b]就是匹配的括号序列. 那答案就是所有可能的阴影部分中...原创 2018-03-04 15:50:04 · 130 阅读 · 0 评论 -
Codeforces 2C Commentator problem
题面 题意: 给出三个圆的坐标以及半径,让你找到一个点,使得这个点到三个圆的视角相等(视角:从一点引圆的切线,两条切线的夹角),求这个点的坐标. 题解: 考虑所求的点P与某个圆O1(或另外两个圆O2,O3)所形成的切线,其切圆于A1(或A2,A3),B1(或B2,B3)两点 ∠A1PB1=∠A2PB2=∠A3PB3<->∠A1O1B1=∠A2O2B2=∠A3O3B3<...原创 2018-03-02 22:14:00 · 429 阅读 · 0 评论 -
Codeforces 1C Ancient Berland Circus
题面 题意:给出一个正多边形上的三个点,求原多边形最小面积,原多边形边数不超过100题解:暴力做法: 枚举多边形边数以及第一二个点和二三个点之间隔了几条边,判断枚举出的三角形和给定三角形是否相似,若相似则计入答案。优秀做法: 计算出三个角在小数意义下的最大公约数(把取余改成fmod)2*pi/gcd即为边数(由于边数最大100,误差限制可以放宽)Code...原创 2018-03-02 21:07:07 · 134 阅读 · 0 评论 -
洛谷4338 [ZJOI2018]历史
题面 官方题解:原创 2018-03-24 10:17:22 · 621 阅读 · 0 评论 -
洛谷4339 [ZJOI2018]迷宫
题面 官方题解:原创 2018-03-24 10:20:58 · 805 阅读 · 0 评论 -
Codeforces 713C Sonya and Problem Wihtout a Legend
题面 题意:给你一个序列,每次可以花费一个代价使一个数+1或者-1,求使其严格上升的最小代价. 题解: 首先考虑使其不下降的情况. 逐位考虑答案,假设前iii个已经不下降,而ai+1<aiai+1<aia_{i+1}ai−ai+1ai−ai+1a_i-a_{i+1}的代价使其不下降,那么新的ai和ai+1也就是a′i和a′i+1ai和ai+1也就是ai′和ai+1′a_i和a_...原创 2018-03-20 14:50:37 · 138 阅读 · 0 评论