- 2024-10-19P2487 [SDOI2011] 拦截导弹
Sol两个限制的导弹拦截。设\(f_i\)表示以\(i\)结尾的最长LIS显然可以得到暴力转移方程\(f_i=\displaystyle\max_{j=1,a_j\gea_i,b_j\geb_i}^{i-1}f_j+1\),考虑到是三维偏序,所以用CDQ分治优化即可。离散化不要忘记排序!Code#include<iostream>#include<iomanip>
- 2024-10-13[SDOI2011] 工作安排——费用流
[SDOI2011]工作安排题目描述你的公司接到了一批订单。订单要求你的公司提供\(n\)类产品,产品被编号为\(1\simn\),其中第\(i\)类产品共需要\(C_i\)件。公司共有\(m\)名员工,员工被编号为\(1\simm\)员工能够制造的产品种类有所区别。一件产品必须完整地由一名员工制
- 2024-10-03[题解] [SDOI2011] 消防
[题解][SDOI2011]消防tag:图论、树、树的直径题目链接(洛谷):https://www.luogu.com.cn/problem/P2491题目描述给定一棵\(n\)个节点的树,第\(i\)条边有边权\(z_i\)。要求找到树上一条长度不大于\(s\)的简单路径,使得不在路径上的点到该路径的最大距离最小。数据范围:\(1
- 2024-09-16D49 树的直径 P2491 [SDOI2011] 消防
视频链接: P2491[SDOI2011]消防-洛谷|计算机科学教育新生态(luogu.com.cn)//两次DFS+双指针O(n)#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;constintN=300010;intidx,head[N];structedge{intto,w,ne;}e[N<<1]
- 2024-07-20[SDOI2011] 拦截导弹
这是CDQ分治优化1D/1D动态规划的模板题(1D/1D动态规划的概念见OI-wiki)一般来说,优化的1D/1D/动态规划,在转移的时候是由不等式作为条件的,所以可以像这样转化为三维偏序用线段树进行如下维护:1.维护区间最大值2.查询区间最大值的某一数组的和代码见下(一定要学会将数组翻转的操作)#
- 2024-04-06P2495 [SDOI2011] 消耗战
P2495[SDOI2011]消耗战虚树优化dp模板题考虑\(m=1\)。只需要简单的树形dp,设\(f_i\)表示\(i\)子树中的关键点都到不了\(i\)点的最小代价。转移枚举子节点\(v\),有:若\(v\)点为关键点,\(f_u=f_u+w(u,v)\)。否则,\(f_u=f_u+\min(f_v,w(u,v))\)。如果每次询问都跑一遍
- 2024-02-28P2487 [SDOI2011] 拦截导弹 题解
题目链接:拦截导弹约定:本题中提到的\(LDS\)和\(LIS\)不是严格单调,而是非严格单调,即为\(\le或者\ge\)。比较神奇的题,问的东西比较多,我们逐渐拆分:对于第一个问题而言,这个dp方程是很好写的:\[dp[i]=\max{dp[j]}+1(i<j,h[i]\leh[j],v[i]\lev[j])\]其中\(dp[i]\)即
- 2023-11-30P2495 [SDOI2011] 消耗战
题意给定一棵有边权的无根树。\(q\)次询问,每次询问\(k\)个点。求断边使得根节点\(1\)与\(k\)个点不连通的最小边权。Sol虚树。\(n^2\)dp是trivial的。考虑优化。注意到其中很多点都是无用的。考虑保留有效点。不难发现,有效点集为询问点两两\(lca\)的集合
- 2023-11-11P2486 [SDOI2011] 染色
题目描述给定一棵\(n\)个节点的无根树,共有\(m\)个操作,操作分为两种:将节点\(a\)到节点\(b\)的路径上的所有点(包括\(a\)和\(b\))都染成颜色\(c\)。询问节点\(a\)到节点\(b\)的路径上的颜色段数量。颜色段的定义是极长的连续相同颜色被认为是一段。例如112221
- 2023-10-08解题报告P2486 [SDOI2011] 染色
P2486[SDOI2011]染色题目链接分两段,最后靠同一条重链合树剖加线段树,典中典。这题的线段树维护比较新颖。线段树中维护这个区间左右端点的颜色和颜色段数量。建树和查询和修改时要判断左区间的右端点和右区间的左端点是否颜色相同。如果不相同,直接将段数相加,否则减一。然
- 2023-09-27「SDOI2011」 黑白棋
绷不住了,洛谷上的dp没一个表述清楚了,一怒之下写一篇题解。注意本题解只讲dp部分。首先转化不合法的充要条件就是:设相邻两个棋子中间间隔数量为\(b\),那么对于任意非负整数\(i\)都有\((d+1)|\sum(b\&2^i)\)。其中\(\&\)是按位与运算。所以我们要计数一个有序的并且包含
- 2023-08-27P2486 [SDOI2011] 染色 题解
P2486[SDOI2011]染色神仙树剖题。题意给你一棵树,每个点都有颜色,支持下面两种操作:路径染色。路径颜色段数量查询。树剖部分我们看到树上问题,不好处理,所以想办法给他树剖搞一搞,给他转化成序列的操作。我们树剖就是正常的树剖,然后我们考虑如何维护这个颜色序列。我
- 2023-08-21「SDOI2011」计算器tj
你被要求设计一个计算器完成以下三项任务:1.给定y、z、P,计算yzmodP的值2.给定y、z、P,计算满足xy≡z(modP)的最小非负整数x;3.给定y、z、P,计算满足yx≡z(modP)的最小非负整数x。输入第一行包含两个正整数T,K分别表示数据组数和询问类型-对于一个测试点内的所有数据,询问类
- 2023-08-18P2484 [SDOI2011] 打地鼠
题目描述2020.4.29数据更新。打地鼠是这样的一个游戏:地面上有一些地鼠洞,地鼠们会不时从洞里探出头来很短时间后又缩回洞中。玩家的目标是在地鼠伸出头时,用锤子砸其头部,砸到的地鼠越多分数也就越高。游戏中的锤子每次只能打一只地鼠,如果多只地鼠同时探出头,玩家只能通过多次挥舞
- 2023-07-07BZOJ 2243: [SDOI2011]染色 树链剖分+线段树
2243:[SDOI2011]染色TimeLimit: 20Sec MemoryLimit: 512MBSubmit: 7623 Solved: 2855[Submit][Status][Discuss]Description给定一棵有n个节点的无根树和m个操作,操作有2类:1、将节点a到节点b路径上所有点都染成颜色c;2、询问节点a到节点b路径上的颜色段数量(连续
- 2023-06-23NC20573 [SDOI2011]染色
题目链接题目题目描述给定一棵有n个节点的无根树和m个操作,操作有2类:1、将节点a到节点b路径上所有点都染成颜色c;2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。请你写一个程序依次完成这m
- 2023-05-17P2495 [SDOI2011] 消耗战 线段树合并做法
看到题解里面有一个线段树合并做法!感觉很厉害,但是题解和代码都不是很详细所以补充一下不妨假设\(dp_u\)表示\(u\)及其子树内把所有关键点都切断的最小代价,那么不难有\[\begin{equation}dp_u=\begin{cases}+\infty&u是关键点\\\sum_{v\in\operatorname{son}(u)}\m
- 2023-04-13BZOJ 2243 [SDOI2011] 染色 (树链剖分)
题目地址:BZOJ2243普通的树链剖分,用线段树维护区间段数与最左边和最右边的颜色。然后当合并区间的时候判断一下左儿子的右端与右儿子的左端是否相同,若相同,则将和减去1.同样,在迭代求值的过程中,也要记录下上条链的最顶端的颜色。代码如下:#include<iostream>#include<strin
- 2023-04-13P2490 [SDOI2011]黑白棋
题意:一个1*n的棋盘上有k个棋子,一半是黑一半是白,并且是白黑白黑白黑...白黑的形式,A每次最多可以将d个白棋子向右移动,B每次最多可以将d个黑棋子向左移动,不能不移动棋子,谁最后无法移动棋子谁就输了,A先手,问有多少种布局可以使得A获胜SolutionNim-K博弈+动态规划可以把棋子之间的间
- 2023-03-17P2495 [SDOI2011] 消耗战
f[x]=SUM{min(f[y],z)} (y是不重要的点) 建立虚树,然后dp #include<bits/stdc++.h>usingnamespacestd;constintN=3e6,M=N,inf=1e9;#d
- 2023-02-24P2489 [SDOI2011]迷宫探险 题解
题意简述:一个\(n\timesm\)的带墙体单入口多出口迷宫中有\(k\)个陷阱,陷阱分为有害或无害,有害会使人掉血,给出所有垃圾的有害与无害的所有排列组成的概率,给定人的血量,求
- 2022-12-26【SDOI2011】【BZOJ2242】计算器
Description你被要求设计一个计算器完成以下三项任务:1、给定y、z、p,计算y^zmodp的值;2、给定y、z、p,计算满足xy≡z(modp)的最小非负整数;3、给定y、z
- 2022-11-04P2484 [SDOI2011]打地鼠 题解
P2484[SDOI2011]打地鼠题解目录P2484[SDOI2011]打地鼠题解题目分析思路代码题目P2484[SDOI2011]打地鼠题解分析锤子每次只能将每个洞里打掉一只地鼠,所以对于每
- 2022-10-30【XSY1976】【BZOJ2286】【SDOI2011】消耗战(虚树,dp)
这题的dp思想还是比较容易想的,关键是如何保证时间复杂度,这时就用到了虚树的技巧。1.虚树是什么?(虚树的性质)不妨设现在询问给出了\(k\)个点,我们命名这些节点为关键节点。
- 2022-10-28P2486 [SDOI2011]染色
#include<iostream>#include<vector>usingnamespacestd;#defineintlonglongconstintN=1e5+1;intn,m;vector<int>to[N];intdep[N],fa