摘要: 状压DP。因为m<=10,所以把每一行部署炮兵部队的状态作为“状态”,二进制的每一位1表示部署,0表示没有。同时把山地表示为1,平原表示为0,第i行的地形为dx[i]。 因为从上到下考虑,考虑第i行时要考虑第i-1,i-2行,而考虑i-1行时又要考虑第i-2,i-3行……所以令f[i][j][k]表 阅读全文
posted @ 2019-06-07 13:56 蒟蒻魔芋汤 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 本题由2008年第十三届“华罗庚金杯”少年数学邀请赛 决赛第5题改编而成。一道简简单单的搜索题,老师却要我们用状压DP再做。毒瘤! 设f[x]表示状态x下最少分成的组数。其中x为10位二进制数,表示方法如下:若x=0000001101,表示第0(1)、第2(3)、第3(4)个数(0、2、3位为1)分 阅读全文
posted @ 2019-05-18 21:26 蒟蒻魔芋汤 阅读(319) 评论(1) 推荐(0) 编辑
摘要: 做题时的问题: 两个单调队列实现会出现一个问题:可用范围因最大最小值队列(存在队头)的更改(出队,导致不可见)而缩小。如果单纯计算队列中覆盖的范围,就会漏掉一些区间。如这组数据: 当运行到数字“2”处时,单调队列(存下标)变成这样: 大:4 5 小:5 实际上,在2~5范围内的所有区间均有效。 (以 阅读全文
posted @ 2019-05-02 19:48 蒟蒻魔芋汤 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 题目数据范围$n\le 10^5$,$O(n^2)$的暴力必定超时。但是,$0<a[i] \le 10000$,可以先求出1~10000每个数的因子(vector)。 接下来,运用一个思想: 前不见古人,后不见来者。 即:对于每个位置i,找到左边最近的“古人”j,记为l[i],满足a[j]是a[i] 阅读全文
posted @ 2019-05-02 18:17 蒟蒻魔芋汤 阅读(249) 评论(0) 推荐(0) 编辑
摘要: (1)图论题双向边一般开两倍(有关边的数组); (2)以图论为例的写法: void add(int x,int y,int len){ nxt[++tot]=fst[x]; fst[x]=tot;//tot是指针,不能写成nxt[tot] w[tot]=len; to[tot]=y; //双向边要多 阅读全文
posted @ 2019-04-26 18:44 蒟蒻魔芋汤 阅读(160) 评论(0) 推荐(0) 编辑
摘要: B KC与龙珠(earings) 因为要用连续的耳环,所以记录前缀和。若sum[n]<0,则不可能满足分组条件。 区间[l,r]中耳环的评价值和=sum[r]-sum[l-1],若该值非负且sum[l-1]非负,则是一个可行的区间。 问题转化为求sum的LIS,f[i]表示以第i个数为结尾的LIS长 阅读全文
posted @ 2019-04-07 11:47 蒟蒻魔芋汤 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 题目描述(简化版) 对一个数列可以如下维护: a k 加入数字k。s 删除最近一次加入的数(保证数列中一定有数)。 t k 回到第k个操作之前的状态。 对每次操作输出数列的最后一个数,假如当前数列没有数字,输出 -1。 思路 依题意模拟。设a[i]表示第i次操作时数列的最后一个数,bef[i]表示第 阅读全文
posted @ 2019-04-07 11:35 蒟蒻魔芋汤 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给你一棵带边权的树,这棵树是某个完全图唯一的最小生成树。问原来的完全图中所有边可能的最小边权和是多少。 完全图是任意两个点之间都有边相连的无向图。 解法 模拟最小生成树,用并查集实现。设当前边的左右端点为a,b,它们所在的点集大小为siz[a],siz[b]。 因为要把两个集合合并,总共需 阅读全文
posted @ 2019-03-10 15:45 蒟蒻魔芋汤 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 思路:线段树维护a的差分数组的gcd, 因为$gcd(a_1,a_2,a_3,...,a_n)=gcd(a_1,a_2-a_1,a_3-a_2,...,a_n-a_{n-1})$。 原区间修改可以转化为差分数组上的两次单点修改。 因为实际计算时还需要原数,所以用树状数组维护b的增减量。 询问时,用这 阅读全文
posted @ 2019-03-05 13:34 蒟蒻魔芋汤 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 线段树区间合并。可以先做CH4301。 附加信息:区间长度len(方便),lazy tag(记录开房、退房)。 需要维护的信息:从左边开始的最长连续空房间lsum,从右边开始的最长连续空房间rsum,区间最长连续空房间dat。 不要按题中的1、2操作写两个主要函数,1操作写一个查询,1、2操作一起改 阅读全文
posted @ 2019-02-28 13:42 蒟蒻魔芋汤 阅读(143) 评论(0) 推荐(0) 编辑