随笔分类 - POJ
摘要:【原题题面】传送门 【题解大意】 当两个决策k1<k2且 f[i-1,k1] - p*k1 <= f[i-1,k2]-p*k2,那么此时k1就是无用决策。 可以用单调队列优化。 需要支持的操作: 1.当j变大时,b把小于j-L的决策出队; 2.有新的决策入队时,在队尾检查f[i-1,k]的单调性,把
阅读全文
摘要:【原题题面】传送门 【题目大意】 边连接的相邻两个节点中必有一个安排士兵,问最少需要的士兵数目。 【题解大意】 设f[x][0]表示当前节点未安排士兵的子树内的士兵的数目,f[x][1]表示当前节点安排了士兵... f[x][0] += f[y][1]; f[x][1] += min(f[y][1]
阅读全文
摘要:【原题题面】传送门 【题解大意】 乍一看感觉以为网络流表示一点都不会不会不会。 然后发现可以树形dp搞一下。 再然后知道了换根dp。 设d[x]表示以x为根的子树中把x做为源点,从x出发流向子树的流量最大是多少。 d[x] += min(d[y],z);(deg[y]!=1) d[x] = z; (
阅读全文
摘要:【原题题面】传送门 【题面大意】 给出每颗星星的坐标和亮度,在h,w的矩形范围内,内圈住的星星的最大亮度和。(边界上的星星不算) 【题解大意】 如何转化成扫描线问题?将每个星星能够产生贡献的范围设为矩形星星位于产生贡献的矩形的某个固定位置这样产生贡献的计算才不重不漏。 具体操作: 同样将每颗星星的用
阅读全文
摘要:【原题题面】传送门 【题面大意】 给出N个矩形,求矩形的面积并。 【题解思路】 线段树扫描线入门题。 实现的一些细节: 存边的信息用结构体,根据x的大小排序 从每段的y值的开始操作 线段树维护的是段的信息 该段被覆盖了几次 左端点贡献为1(左端点以后的线段都是正贡献),右端点贡献为-1(右端点以后的
阅读全文
摘要:【原题链接】传送门 【题面大意】 一个字符串,可以将它改写成循环节带括号的形式进行压缩,输出压缩长度最小的字符串。 【题解思路】 1.没思路没思路,不知道怎么乱搞,大概就可以想到动态规划。 2.套路区间dp,f[l][r]表示[l,r]区间内的最小表示(字符串)和长度。 3.考虑需要进行的两个操作:
阅读全文
摘要:【原题链接】传送门 【题解思路】 1.第一感觉没有其他做法,想到动态规划,去环,区间dp 2.f[l,r]表示[l,r]内的最大值,考虑转移 3.最大值分加法和乘法,其中乘法不一定由两个要求合并的区间的最大值转移,考虑记录最小值 4.去环,在原序列后复制序列的套路操作 5.注意初值和边界 【code
阅读全文
摘要:【POJ1509】Glass Beads 【题目描述】给定字符串S,并规定首尾相连成环,求出最小字典序。 【输入】输入有多个数据,第一行只包括正整数N,表示有N组数据。每个数据包括一行,输入该字符串。 【输出】对于每个数据,输出一行数据表示从哪一个字母开始为最小字典序排列。 【题解思路】暴力是个好东
阅读全文
摘要:[POJ1961]period 题目描述 输入 输出 题解思路 与自己的前缀进行匹配,与KMP中的next数组的定义相同。next数组的定义是:字符串中以i结尾的子串与该字符串的前缀能匹配的最长长度。 将字符串S与自身进行匹配 ,对于每个前缀,能匹配的条件即是:S[i-next[i]+1~i]与S[
阅读全文
摘要:主席树 【前言】 Q:主席树是啥啊? A:可持久化线段树。 Q:线段树又是啥呢? A:二叉树的一种,每个节点都是一个区间。优秀的数据结构,代码实现戳这里。 Q:那可持久化是啥呀? A:就是保存了这个数据结构的所有历史版本,且并不是每更新一个数据都要建树,而是能利用每次修改的不同版本之间的共同数据以减
阅读全文

浙公网安备 33010602011771号