专栏文章
泉州一中普及组日赛 0708
题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mioyf45a
- 此快照首次捕获于
- 2025/12/03 03:11 3 个月前
- 此快照最后确认于
- 2025/12/03 03:11 3 个月前
A(很简单)
题目
主赛有 道题目和 个晋级选手
淘汰赛有 道题目和 个晋级选手
求 个选手至少要多少道题目
sol
简单的完全背包,两个物品,一个主赛,一个淘汰赛。
注意从程序上要特判 的情况。(不过实际上没有这样的测试数据)
易错点:写反重量和价值
B(简单)
题目
给出一个 位的二进制数 ,每一个二进制位有一个权重 , 求 使得
sol
数位贪心,考虑直接枚举所有的
不难注意到, 有 所以我们只需要统计 最多的那些 就可以,而这些 一共只有至多 个
例如:样例二,
我们只需要考虑
易错点:进制位混乱
C(简单)
题目
在二维平面上给出 个点(坐标均为整数),从 开始每次往第一象限方向移动到另一个点,求最多移动几次。
sol
原题:NOIP1999导弹拦截
暴力DP: 可以通过本题。时间复杂度
此外,一起来欣赏一份经典错误代码
CPPfor(int i=1; i<=n; ++i)
for(int j=1; j<=m; ++j)
if( w[i]>w[j] && h[i]>h[j] )
dp[i] = max ( dp[i], dp[j]+1 );
此外,该转移可以通过线段树优化,达到
易错点:严格大于做成不严格,初始没有从 开始
D(送分)
题目
给出两个长度为 的序列 ,求所有满足 的三元组 中 的最小值
sol
枚举 ,然后分别枚举
根据加法原理和乘法原理得时间复杂度为
当然,可以用类似 C 题的线段树优化达到
E(送分)
黑白染色即可。
F(送分)
略
易错点: 弄反
G(很简单)
题目
在网格图中给出一个联通块,要求去掉 个联通块中的格子后依旧保持联通,标记去掉的格子后输出网格。(保证有解)
sol
dfs 之后,联通块可以标记成一个树
每次去掉任意一个叶子即可。
H(简单)
题目
给出一个长度为 序列,求一种划分,使得划分后每个组内的极差和最大
sol
注意到:
- 对于一个不单调的序列,不会划分很长的一段
- 对于单调的序列,中间不会划分
所以将单调的部分中间直接砍掉只留首尾两个,并且每次划分长度不超过 即可
直接 暴力DP
I(比较简单)
题目
给出一个树,有若干个顶点被染黑,求有多少种分割树的方案使得每个子树恰好有一个黑色顶点,答案对 取模
sol
考虑DP,设计状态 表示[ 所在联通块及其子树交集]有 个黑色顶点
在转移过程中,要保证:每个联通块恰好一个黑色节点,于是由划分与不划分有转移方程:
CPPint f[2]={dp[u][0],dp[u][1]};
dp[u][0]=f[0]*(dp[v][0]+dp[v][1])%mod;
dp[u][1]=f[0]*(dp[v][1])%mod+f[1]*(dp[v][0]+dp[v][1])%mod;
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...