自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 G - Surf Gym - 100819S -逆向背包DP

G - SurfGym - 100819S思路 :有点类似 逆向背包DP , 因为这些事件发生后是对后面的时间有影响。所以,我们 进行逆向DP,具体 见代码实现。#include<bits/stdc++.h>using namespace std;#define maxn 1000000#define ll long longstruct node{ ...

2019-01-23 19:31:00 823

原创 C - Thief in a Shop - dp完全背包-FFT生成函数

C - Thief in a Shop思路 :严格的控制好k的这个数量,这就是个裸完全背包问题.(复杂度最极端会到1e9)他们随意原来随意组合的方案,与他们都减去 最小的 一个 a[ i ] 组合的方案数目是不会改变的那么我们就 dp [ i ]表示 i 这个价格需要的最少 个数。 这样求最小个数保证不会漏解然后 如果这个 i 能通过 1 - k 个物品组合出来,那么 一定能通过k...

2019-01-23 19:25:00 64

原创 Sightseeing trip POJ - 1734 -Floyd 最小环

POJ - 1734思路 : Floyd 实质 dp ,优化掉了第三维. dp [ i ] [ j ] [ k ] 指的是前k个点优化后 i -> j 的最短路。所以我们就可以利用这个性质去求 最小环,最小环的构成可以看作是由一条 i -> k k->j 加上 dp [ i ] [ j ]的最短路那么我们可以利用 还没有用 k 优化的 i...

2019-01-23 19:08:00 46

原创 P2733 家的范围 Home on the Range-弱DP

P2733家的范围 Home on the Range思路 :转化为以每个点为右下角的 最大正方形的边长#include<bits/stdc++.h>using namespace std;#define maxn 303int tong[maxn],dp[maxn][maxn],n;char a[maxn][maxn];int main(){ scanf...

2019-01-22 11:20:00 59

原创 Love Live!-01字典树启发式合并

链接:https://ac.nowcoder.com/acm/contest/201/D?&headNav=www思路:题目要求的是每个等级下的最大 简单路径中的最大异或值,那么我们为了保证目前的路径中最大的权值为当前访问的边,先进行排序,然后一条一条的插入边,并查集维护 各个联通块,启发式合并,由当前边连接起来的两个联通块,所谓启发式合并也就是 把小的块 合并到大的上。然后 查...

2019-01-22 10:47:00 56

原创 Kilani and the Game-扩散形式的搜索

Kilani and the Game思路:这种扩散走法的并且有速度。我们需要一层一层的入队, 而且 根据题目要求 按编号处理例如q1队列中有 1 1 1 2 2 2 2 3 3 3 3 3 3 3 那么我们需要 把 id = 1 的一起处理把 1 1 1 push 到 q2 然后只要不超过 s [ id = 1 ] 的速度 ,就一直进行bfs ,当到达了 s [ id = 1...

2019-01-21 19:23:00 50

原创 Little Sub and Isomorphism Sequences ZOJ - 4089

ZOJ - 4089思路:可以反正 最长重构序列必然符合 此模式 x + { } 与 { } + x那么 题意转化为了 找两个距离最长的相同的数。eeee 先离散化然后 开 2e5 个set 可插入可删除的维护 每个数的 出现的位置。然后 。 如果有set .size > = 2 则可以更新。最值 。最值可用线段树or mulitset 维护#in...

2019-01-20 17:03:00 36

原创 Wish-递推DP记数

链接:https://nanti.jisuanke.com/t/35618题意:如果一个数大于等于1010且任意连续两位都是质数,那么就称之为 Wish 数。当然,第一个 Wish 数是1111。比如9797,111111,131131,119119都是 Wish 数,而1212,136136则不是。问第NN个 Wish 数是多少。思路:预处理一下 1 - 9 每个...

2019-01-20 14:26:00 34

原创 Little Sub and Mr.Potato's Math Problem-构造

链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5864思路 : 判断小于它的合法的,再看大于它的合法的,特判10000、10、1000.... 这种情况.#include<bits/stdc++.h>using namespace std;#define ll long longll t,n...

2019-01-20 10:17:00 38

原创 C - 树的统计Count - 树链剖分

思路 :树剖模板,线段树维护即可。#include<bits/stdc++.h>using namespace std;#define MID int m = (l+r)/2#define maxn 56789#define inf 0x3f3f3f3fint data[maxn],n,m,id[maxn],fa[maxn],u,ans,head[maxn];int...

2019-01-18 12:01:00 35

原创 B - Housewife Wind-树链剖分-树状数组

思路:边权转化到点权上,统一把每一条边的边权集中到深度较深的点上去。#include<stdio.h>#include<iostream>#include<cstring>using namespace std;#define maxn 134567struct edg{ int v,to,w,u;} edge[maxn*2],in[...

2019-01-17 19:14:00 36

原创 Aragorn's Story HDU - 3966 -树剖模板

HDU - 3966思路 :树链剖分就是可以把一个路径上的点映射成几段连续的区间上。这样对于连续的区间可以用线段树维护,对于每一段连续的区间都可以通过top [ ]数组很快的找到这段连续区间的头。跳的过程类似于 lca ,但这里 要注意的是每一个点只属于一条链。 (重载运算符时要注意 node 一个 新的结点,不要 乱用*this 指针)#include<bits/stdc...

2019-01-17 14:29:00 52

原创 BZOJ-10-1176: [Balkan2007]Mokia-CDQ第二类应用

思路 :按照操作的时间进行分治,这样转化成了 时间t ,x坐标,y坐标 经典的三维偏序。最初时间就是递增顺序,无需排序直接进行第二维的分治,类似归并排序处理x坐标,在保证x有序的情况下进行更新y坐标的树状数组。求一个 (x1,y1) - (x2,y2)矩形内点的个数,简单容斥一下求[ (1,1) ——(x1-1,y1-1) ]+[ (1,1) ——(x2,y2) ]-[ (1,1) ...

2019-01-17 08:43:00 34

原创 String painter HDU - 2476 -区间DP

HDU - 2476思路:分解问题,先考虑从一个空串染色成 B串的最小花费 ,区间DP可以解决这个问题具体的就是,当 str [ l ] = = str [ r ]时dp [ L ] [ R ] = min (dp [ L + 1] [ R ],dp [ L ] [ R-1 ] )其他情况可以选择任意一个断点tmp = min ( tmp , dfs ( l ,k ) + dfs ...

2019-01-15 19:51:00 42

原创 GCD Counting-树形DP

GCD Counting思路: 预处理 每个权值的素因子。问题转化为 以同一个素数作为因子 最长的链,树形DP求解,ans 由 此点的 最长子链 + 次长子链 相加得到, 然后再更新最长子链#include<bits/stdc++.h>using namespace std;#define maxn 234567int pri[maxn+10],n,a[maxn+1...

2019-01-15 11:30:00 54

原创 XOR UVALive - 8512 -区间线性基合并

UVALive - 8512题意 :给出一个包含n个元素的数组A以及一个k,接下来进行q次询问,每次询问给出 l 和 r ,要你求出从A[l] , A[l+1] , A[l + 2],...,A[r]中任选出若干个数异或起来的值val,使得 k | val 最大,输出这个最大值。思路 :既然是要使得k | val得到的值最大,那么val必然是k这个数上二进制位为0的位置为1的数,同时1的...

2019-01-15 09:45:00 35

原创 BZOJ-9-3295: [Cqoi2011]动态逆序对

题意:N个数的排列,M次操作,每次求当前的逆序对数量并删掉一个数思路 :动态说的很到位。hiahia ... 最初一直没想明白为什么 大佬的cdq 中统计了两次。先定义 给出的删除的点的 t 值依次是N,N-1,N-2...(越先删除的视为越后插入的)注意不在询问范围内的点的t值可以任意设置,为了方便按照x从左到右。给没有删除的点 t 值递增赋值 。我们求的就是按顺序插入每一个数时,这个...

2019-01-14 16:29:00 33

原创 E - Andrew and Taxi-二分答案-topo判环

E - Andrew and Taxi思路 :min max 明显二分答案,二分需要破坏的那些边的中机器人数量最多的那个。check 过程建边时直接忽略掉小于 mid 的边,这样去检验有无环存在即可。 当时有一点担心会出现有一个环 有一条边 反过来之后 这个环破坏了 却成就了 另一个环,但是画图发现 这样的图 ,它们两边会形成一个大环。那个大环一定会通过别的边破坏掉,所以不需要担心这...

2019-01-14 10:52:00 33

原创 Stars HDU - 1541

HDU - 1541思路:二维偏序,一维排序,一维树状数组查询即可。#include<bits/stdc++.h>using namespace std;#define maxn 33333int ans[maxn],n,sum[maxn];int lowbit(int x){ return x&(-x);}struct node{ ...

2019-01-13 20:53:00 32

原创 常犯小错误-不断更新

1 . " %f " " %lf "注意切换。2. 结构体排序问题,记得 记录 id 操作完后根据题目要求看是否需要按照 id 恢复。3. dp [ ] [ ] 转移时,有时候一个 dp [ i ] [ j ]可能由多个状态转移而来,不要直接赋值,而是累加。4. 二进制运算符优先级 较低 使用时 ( 加括号 )5.分解素因子时 注意特判最后一个 来加速6 .递归函数里的变量不要...

2019-01-13 19:38:00 38

原创 Area POJ - 1265 -皮克定理-叉积

AreaPOJ - 1265皮克定理是指一个计算点阵中顶点在格点上的多边形面积公式,该公式可以表示为2S=2a+b-2,其中a表示多边形内部的点数,b表示多边形边界上的点数,S表示多边形的面积。适用范围:必须是格点多边形。S = A / 2 + B - 1#include<stdio.h>#include<cmath>#include<cstri...

2019-01-13 19:34:00 32

原创 牛客练习赛37-筱玛的字符串-DP递推

筱玛的字符串思路 :dp [ i ] [ j ] [ 3 ] 分别代表到第 i 位时 左括号比右括号多 j ,后面有三个状态 分别表示当前位置 S3的字符是正在反转的,还是 反转完成的,还是没有反转的, 根据提议要求 反转的只能是一段连续区间,然后转移即可。注意 反转完成之后 不能再开始一段新的反转过程 。#include<bits/stdc++.h>using name...

2019-01-13 17:22:00 31

原创 BZOJ-8-2115: [Wc2011] Xor

https://www.lydsy.com/JudgeOnline/problem.php?id=2115题意 :给出一个连通无向图,求从1到n异或和最小的路径.思路 :随意找一条简单路径 1-n 的,然后在这个过程中统计出 图中的环然后 ,对这些环的异或值求一下 线性基,最后 贪心去异或取最值即可。#include<bits/stdc++.h>using namesp...

2019-01-13 11:53:00 57

原创 (Zero XOR Subset)-less-线性基

(Zero XOR Subset)-less题意 :把n个数分成多个集合,要求 不能有集合为空,最终不能有非空子集合异或值为0,尽可能划分的多一些。思路 :非法情况就只有 n个数异或 为0,其他的情况集合个数就是线性基的内元素的个数。(因为有 基 就可以保证不为0,并且不可以再增加元素)基 类似 极大线性无关组 。已经是最大的了,不可以再多。#include<bits/stdc+...

2019-01-13 10:47:00 54

原创 P4781 【模板】拉格朗日插值

P4781【模板】拉格朗日插值证明 :https://wenku.baidu.com/view/0f88088a172ded630b1cb6b4.htmlhttp://www.ebola.pro/article/notes/Lagrange#include<bits/stdc++.h>using namespace std;#define mod 998244353#...

2019-01-13 00:13:00 33

原创 BZOJ-7-2655: calc-DP-拉格朗日插值

https://www.lydsy.com/JudgeOnline/problem.php?id=2655以上是对 dp 一小部分打的表。dp[ i ] [ j ]含义为 前 i 个 数 中 选 j 个 的 价 值 总 和 ,则转移 方程为dp [ i] [ j ] = dp [ i -1 ] [ j ]+ dp [ i - 1] [ j - 1] * j * i ....

2019-01-13 00:12:00 39

原创 BZOJ-6-2460: [BeiJing2011]元素-线性基

链接 :https://www.lydsy.com/JudgeOnline/problem.php?id=2460思路 :线性基不唯一,所以排序 进行贪心选择,价值最大的线性基,#include<bits/stdc++.h>using namespace std;#define ll long long#define maxn 123ll n,ans,p[maxn];...

2019-01-12 22:17:00 45

原创 P3812 【模板】线性基

P3812【模板】线性基理解 :线性基 类似于 向量的极大无关组,就是保持原来所有数的异或值的最小集合,求解过程也类似,可以 O( 60 * n )的复杂度求出线性基,线性基有许多性质,例如 线性基里面的数进行异或 的值域与原来所有数异或的值域相同。#include<bits/stdc++.h>using namespace std;#define ll long l...

2019-01-12 21:22:00 49

原创 Misunderstood-Missing-逆向DP

Misunderstood … Missing记忆深刻......打铁没做出来的题题意 :打怪,有A的攻击力,有D的成长,初始均为0,有n轮。同时有三个数组a[1:n],b[1:n],c[1:n]对于每一轮:首先,攻击力永久性成长A=A+D;然后,在下面三个选择中选择一种行为:①、发起进攻,产生A+ai的伤害。②、增加成长D=D+bi。③、永久性增加攻击力...

2019-01-12 17:23:00 973

原创 P3389 【模板】高斯消元法

P3389【模板】高斯消元法注意每次选择当前列绝对值最大元素去消除其他的行是误差尽可能的小,本题特有的性质是,bi全都大于0,所以如果出现对角线上为0的情况是不合理的 0x = bi#include<bits/stdc++.h>using namespace std;#define eps 1e-8#define maxn 123double A[maxn][ma...

2019-01-12 15:29:00 51

原创 牛客练习赛37

rank :153 虽然打的很惨,但是也没有抽中奖,啊哈哈哈题数 :1补题 :筱玛的迷阵探险可惜可惜啊,空间复杂度分析不到位,数组开小了 一直没过。思路 :根据 n的大小,发现 dfs 直接从 (1,1)到 (n,n)是肯定超时的,而且每一步也没有最优解,无法进行记忆化,只能全部结果保存,想到了折半搜索就是 从 (1,1)搜到 对角线 ,然后记录下所有结果 ,再从 (n,n)...

2019-01-12 10:28:00 30

原创 Farewell Party-构造

Farewell Party思路 : 转换思路 ,有 a [ i ] 个不相等的 ,那么至少得有 n - a [ i ]个与它相等的。 但是有可能与它拥有相同数目的有很多。但是为了能够最终 分配成成功 总的 个数 % N - a [ i ] 必须 == 0。所以 这样判断完否定之后 进行分配时需要操作的就是,把 每 N - a [ i ] 个 a [ i ]设置为同一颜色即可 。...

2019-01-11 17:15:00 56

原创 Rabbit的机器人-二分答案

Rabbit的机器人思路 : 可以 推知 挡板的位置与最后 一步的方向有关 。如果是 R 根据题目要求那么最终结果一定是在>0的位置,因为按照题意要求的最终不能回到重复走过的位置。所以如果有解的话挡板只能放在 < 0 的位置,分析一下就是 放在 >0的位置有两种情况 1 .在最终结果前面 ,这显然不可以 会直接导致走不过去,2.放在最终结果后面, 这似乎是个无用操作,,...

2019-01-11 16:27:00 56

原创 BZOJ-5-4300: 绝世好题-位-DP

思路 :题意描述我也很绝望 。先说一下题意 :给定长度为n数组a [ ],求a[ ] 的一个最大子序列(可以不连续),使得b [ i ]& b [ i - 1 ] ! = 0.求最大的 b数组的长度题解:显然是DP,状态转移方程显然是dp[ i ] = m a x { dp [ k ] + 1 } , a [ i ] & a [ k ] ! = 0但是不能跑 n*n 考虑位...

2019-01-09 17:41:00 59

原创 BZOJ-4-2038: [2009国家集训队]小Z的袜子(hose)-莫队

思路 :分块 思想 处理离线查询操作 对查询进行排序 在同一块内的按照 r 进行排序 不同块 的按照 L进行排序。#include<bits/stdc++.h>using namespace std;#define maxn 56789int n,m,col[maxn],cnt[maxn],l,r,zi,mu,len,B;struct node{ int ...

2019-01-09 16:35:00 50

原创 BZOJ-3-1010: [HNOI2008]玩具装箱toy-斜率优化DP

dp[i]=min(dp[j]+(sum[i]-sum[j]+i-j-1-L)^2) (j<i)令f[i]=sum[i]+i,c=1+l则dp[i]=min(dp[j]+(f[i]-f[j]-c)^2)1.证明决策单调性假设在状态i处的k决策优与j决策,即dp[k]+(f[i]-f[k]-c)^2<=dp[j]+(f[i]-f[j]-c)^2则对于i后的所有...

2019-01-09 15:16:00 43

原创 Print Article HDU - 3507 -斜率优化DP

思路 :1,用一个单调队列来维护解集。2,假设队列中从头到尾已经有元素a b c。那么当d要入队的时候,我们维护队列的下凸性质,即如果g[d,c]<g[c,b],那么就将c点删除。直到找到g[d,x]>=g[x,y]为止,并将d点加入在该位置中。3,求解时候,从队头开始,如果已有元素a b c,当i点要求解时,如果g[b,a]<sum[i],那么说明b点比a点更优,a...

2019-01-09 11:40:00 47

原创 BZOJ-2-4870: [Shoi2017]组合数问题 矩阵优化 DP

就 是 要 我 们 从 n k 件 物 品 里 面 选 出 若 干 件,使 得 其 数 量 模 k 等 于 r 的 方 案 数 。 dp方程 f [ i , j ] 表示前 i 件物品拿了若干件使得其数量模 k 等 于 j 的 方 案 数。非常明显的 i 与 i - 1递推的DP, 可以转化推矩阵,进行矩阵乘法。那么显然有f [ i , j ] = f [ i − 1 ,j ] +...

2019-01-08 20:42:00 81

原创 BZOJ-1- 4868: [Shoi2017]期末考试-三分

三分出成绩时间,假设当前出成绩最优,那么提前就会调增老师,增加不愉快度多于少等待的;如果延迟时间。那么等待更久,增加的不愉快度也将多余少调增剩省下的。于是:对于当前点,两边都是有单调性的。就是说不愉快度随出成绩时间呈单峰函数(这里开口向上),#include<bits/stdc++.h>using namespace std;#define ll long long#...

2019-01-08 18:24:00 48

原创 #6164. 「美团 CodeM 初赛 Round A」数列互质-莫队

#6164.「美团 CodeM 初赛 Round A」数列互质思路 : 对这个题来言,莫队可以 n*根号n 离线处理出各个数出现个的次数 ,同时可以得到每个次数出现的次数 ,但是还要处理有多少 次数 与ki互质 。根据数列的性质,无论这个区间多长,最长也就是 1 - n这个区间 ,所能产生的不同的次数 也就是 根号 n 种 例如 长度为28的 数列 1 2 2 3 3 3 4 4...

2019-01-08 17:00:00 65

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除