09 2019 档案
摘要:https://www.cnblogs.com/bztMinamoto/p/9375444.html 这题还可以dp做(我肯定想不出来 设$f[i]$为强制放在$i$的最大方案数,根据限制所有包含$i$的区间都不能再有点,最大只能从这些区间最靠左的左端点-1转移,最小不能跨过某个整区间转移,这样这个
阅读全文
摘要:差分约束不用判负环 设$s[i]$为0~i中选了几个数 根据题意$s[bi]-s[ai-1]>=ci$, 根据实际意义每个点最多选一个数$s[i+1]-s[i]>=0,s[i+1]-s[i]<=1$ 从最小值跑到最大值
阅读全文
摘要:这题竟然和5004 m=1时几乎一样..... 先不考虑至少放两个,方案数和那题一样,再减掉不放和放一个的,共n+1种(把棋子放在格子中n为格子数 矩乘斐波那契 不开longlong见祖宗
阅读全文
摘要:一开始算出来了每个点的贡献,最后还要O(n)求和,而且递推式还带求和号(而且竟然还是倒着推的,不可矩乘优化 如果正着写:$g[i]= \sum_{j=1}^{i-m-1}g[j]$,i每后移一个只增加一个数,去掉求和号:$g[i]=g[i-1]+g[i-m-1]$ 答案为g[i]的和+1(全空的情况
阅读全文
摘要:虽然是道普及的题,一眼看出二分单调队列,但是我不会写单调队列 不能再套板子了,必须要理解灵活 用一个指针j维护窗口的右端点,每次移动时把多出来那部分的扫一下塞进去,取队头前把左端点左边的弹掉 各种算法都没有完全固定的写法!
阅读全文
摘要:一眼权值线段树因为不会写平衡树线段树还好写啊 然后死咗 才发现后来的人不会被前面操作影响 于是维护一个历史记录,每次插入的时候减去delta因为查询出来要加上delta,常用操作 然而调了一万年
阅读全文
摘要:抄题解 把点按深度排序,用near数组记录到每个点最近的关键点的距离,每次取出一个点更新一下near数组,如果不能被覆盖就在它的k级祖先建立关键点,并更新所有k级祖先的k级祖先的near数组
阅读全文
摘要:https://www.cnblogs.com/scx2015noip-as-php/p/loj6029.html 一开始以为裸的区间除,维护这一段是否全为0,后来发现还有加法,这样就会被卡了 这题除数达到了1e9,题解说在数很小除数很大的时候区间除会变成区间减,如一段序列由$x,x-1$组成,除一
阅读全文
摘要:https://www.cnblogs.com/LukeStepByStep/p/7420829.html 首先要发现一个区间如果是连续区间,因为是一个排列没有重复数字,那么一定有$r-l+1==max(a[i])-min(a[i]) (l<=i<=r)$ 然后考虑分治,每次计算$l,r$在$mid
阅读全文
摘要:由于木棒不可嵌套,所以能组成新木棒的只有可能是最中间的两个括号,即左区间最靠右的和右区间最靠左的括号,所以线段树可以维护这些信息,合并时多多判断(不要弄混,还多记了一个tg表示区间是否全部由x构成帮助更新
阅读全文
摘要:虽然是二进制但是和普通的数位dp没什么差别,统计1出现次数的乘积不如统计每个出现次数的数量,然后对应快速幂一下,转化成了平时熟悉的方案数, 状态设计:dfs里传什么参就开哪些状态,可以包括是否达到上限(lmt)之类的
阅读全文
摘要:题意为给定一张图和s,t两个点,问s到t的路径中最大边权/最小边权的最小值 其实就是让最大边权尽量小,最小边权尽量大 把边按边权排序,枚举最大边,依次从大到小加入比他小的边,直到s和t联通,此时最小边权最大,更新答案 未过bzoj(shabi)
阅读全文
摘要:写挂了好多次,也不太理解 带修改的情况如果还用(权值线段树)主席树,每个点(root[i])维护前缀的某值出现次数, 每次修改需要对此点后面所有主席树修改,共$nlogn$个 这里用树状数组维护前缀和,平时的树状数组实际上每个点维护的是原序列$[i,i-lowbit(i)+1]$这些值,这里也让每个
阅读全文
摘要:https://blog.csdn.net/qq_34731703/article/details/54603652 1.转化:yes表示双方同类,否则不同类(真的蔡 题目变为有一些集合,内部分两个集合,现在要从每个大集合里选出一个小集合使得选出的这些集合大小之和恰好为p1,且只能有一种方案(这样才
阅读全文
摘要:前言:无主之地3优化堪忧,且价格偏高。想看新上映的柯南的电影 https://www.cnblogs.com/geloutingyu/p/6145706.html 题意为给定$n$个人玩剪刀石头布,给出$m$个输赢关系,其中除了一个裁判其他人都只会出一样的手势,问是否存在这样的裁判,若存在且能确定输
阅读全文
摘要:矩形大小固定->确定矩形右上角 每个星星->能圈住每个星星的范围(常用转化 边界上不计->每个星星的范围-1 问题->若干区域,每个区域有一权值,问最大重叠的权值和 扫描线加入每个区域边界,线段树区间修改权值,维护最大值,
阅读全文
摘要:好题,题解来自书 1.设$sum$为前缀异或,$l~r$的奇偶性可以用$sum[r]^sum[l-1]$来表示,1为奇,0为偶 题目转化为给定一些$sum$之间的关系(形如sumi ^ sumj == 1/0),问什么时候出现矛盾 与程序自动分析一题有些相似,但是关系不是简单的相等或不等,而是异或
阅读全文
摘要:设$lt[i][j]$为向左最远到达的点,$rt$同理,$ht[i][j]$为向上最远扩展多高 一开始先设初值为自己位置,高度为1 预处理每个点左右扩展的范围,扩展条件根据题目决定 然后可以dp: lt[i][j]=max(lt[i][j],lt[i-1][j]); rt[i][j]=min(rt[
阅读全文
摘要:需要设计一个不用记录哪个人死了的状态,其实人的编号在死人以后就和位置无关了,所以不如记录每个位置的概率 设$f[i][j]$为共$i$个人,从第一个人做庄向后第$j$个人的概率,转移的话无非是看子问题,庄选某张牌杀掉人以后其实就只剩下$i-1$个人了,此时每个点的胜率加上对应位置的胜率即可,
阅读全文
摘要:前言:不说废话,野狼disco牛逼就完事了(网易云和b站绝对共享cookie 这题喵啊.....好多解法慢慢写吧... 1.一种优秀且优雅的组合数解法 首先发现一个性质,先下降和先上升序列一样多,只要把每个点取反就可以,所以我们可以只计算一种 例如我们计算先下降的序列,考虑往后加入$i$,那么一定是
阅读全文
摘要:此题似乎有两种写法,一种是一维表示步数,一维表示边,一种是两维都表示边,类似floyd,这里是第二种 这题和裸矩阵floyd唯一的区别就是不能从上一次来的边走回去, 如果还像原来一样用点表示状态就信息不足,暂且不考虑矩快优化dp的问题,要想知道上回走的那条边不如干脆记录上回走的哪条边,这样不仅知道从
阅读全文
摘要:#include<bits/stdc++.h> #define ll long long using namespace std; ll a,b; int num[15],len;//num表示每位数字上限 ll f[15][15]; ll dfs(int pos,int now,int number,bool lmt,bool led){ //当前位置,当前答案,当前正统计的数字,是否达到数字上
阅读全文
摘要:简单数位dp 数位dp最重要的还是要理解模板的原理,理解数位dp的原理,理解题目的做法,套模板不一定能解决所有问题,反而大概率会有一些细节出错而无法想到
阅读全文
摘要:补原来的题解 重要性质:发现两个黑块一开始不在一行/列不管怎么交换都不能到一行/列, 格子图考虑二分图的话,每个黑点做边连接行和列,想要对角线都有黑点意思就是每个行和列都有黑点连接,最大匹配等于n即可
阅读全文
摘要:原来就做过的题,顺便再看一下写个题解,理解不够深刻 核心:对于重复出现的数字我们只计算最后出现的那个,其实和计数的一个技巧非常像就是对于可能重复计算的只计算有某特点的那个,防止算重,比较抽象以后再说吧 所以这题用树状数组记录每个位置的数字是否第一次出现,每次区间查询 原来的代码
阅读全文
摘要:前言:(好久没写了)9102年苹果竟然发布了18W快充 终于赶上了国产千元机水平!业界良心啊!购买充电器只要区区243元!购买长达2m的超长充电线只要在加272元就可以了!大家觉得这个价格怎么样呢 新款iPhone pro所使用的令人惊叹的全新设计竟是三个煤气灶比2080ti竟然还多一个孔1200w
阅读全文
摘要:看的shadowice1984的题解,写的确实很棒,大概挑一点摘出来吧 这里想讲一个关于概率题的小技巧,就是关于如何求某个事件发生的概率PP,事实上大家也清楚,除了一些特殊的近似算法之外,我们在程序中计算概率的方法无非就是加减乘除四则运算而已……而减法和除法又是加法和乘法的逆。 而在概率角度上,应该
阅读全文
摘要:在DAG图的部分分下很显然是个dp,拓扑排序dp即可搞定,在存在环的情况下,不知道为什么就要用spfa来dp 主要考察对spfa理解是否深刻,其实spfa的过程就是个dp的过程,尤其$if(d[y]>d[x]+w)d[y]=d[x]+w$非常像一个dp的式子, 我们每次都拿有可能更新其他点的点去尝试
阅读全文
摘要:模板来自:https://www.cnblogs.com/Winniechen/p/9862745.html 题意:将数列a划分成k段,使得每段内部逆序对最少$(n<=40000,k<=10,a[i]<=n)$ dp式子比较显然,设$f[i][j]$为前$i$个数划分成$j$段的答案,$f[i][j
阅读全文
摘要:已知一个长度为n的序列a1,a2,...,an。 对于每个1<=i<=n,找到最小的非负整数p满足 对于任意的j, aj < = ai + p - sqrt(abs(i-j)) 每个点的$p=max(a[j]-a[i]+\sqrt{|i-j|}$,可以想到dp,$f[i]=max(a[j]-a[i]
阅读全文
摘要:这题和最短路计数有很大关系,再加上k只有50,容易让人想到dp, 先设计状态$f[i][j]$表示到$i$点比最短路多走了$j$长度的方案数,接下来思考转移 考虑一条边$u->v$边权为$w$,从$f[u][j]$能转移到$f[v]$的哪个状态? 既然是走到$v$比$dis[v]$多走多少,就比较显
阅读全文
摘要:luogu_P1856矩形周长 POJ_1151_Atlantis
阅读全文
摘要:我调炸了(Fword 面向数据编程*1 另外一道双倍经验题相同代码可过 简单的树形dp,和dp $f[i][0/1][0/1]$为到$i$选/不选当前,选/不选1号的答案 也可以两次树形dp,一次强制断环上一条边,一次强制连接
阅读全文
摘要:调了一万年......先是==写成=,然后快读出锅,手写队列以为出锅改成stl结果发现stl才是真正出锅....改回手写队列才a 抄题解都抄了好久好久...(写法不唯一... 然后BZOJ RE.........WDNMD 思路,找环,子树求直径,单调队列dp,比较好理解,但是写起来有点麻烦 这里用
阅读全文
摘要:如果考虑没有逆行操作的时候,我们想到缩点,然后在DAG图上随便就能搞出来,加入逆行操作后:(在DAG图上) 1.逆行操作相当于把DAG图的一条边变成无向边走两次,所以可以考虑分层图 先复制一层图,编号n+1~n+n,对于每个原图中的点向所有指向它的边建一条反边指向另外一层,表示我可以从这个点逆行到下
阅读全文
摘要:钥匙只有10种可以状压,最短路或者bfs都行,但是写挂了(现在还是
阅读全文
摘要:我们可能遇到这样的图论模型:在一个正常的图上可以进行 k 次决策,对于每次决策,不影响图的结构,只影响目前的状态或代价。同时这个图论模型和经典的最短路有关,这样我们可以考虑运用分层图最短路。
阅读全文
摘要:第一想法是对于我方从大到小二分一个小于它的,但是无法处理平局的情况,因为有可能我方某大数和对面搞个平局之类的,无从下手 题解的做法是不能无脑送我方小数,因为有可能对位单杀(雾,所以就考虑先看我方最小数能否对位单杀,不能的话再看最大能否单杀,如果都不能再送小数,送的时候还要注意平局的情况
阅读全文

浙公网安备 33010602011771号