当前位置: 首页 > news >正文

P17140 [NOI 2026] 线段 题解

题目链接:P17140 [NOI 2026] 线段

简单题,为什么没做出来呢?

首先观察可得最终形成的树一定是一条链挂着若干个单点,将链和菊花分别 dp 出来再拼起来显然很没前途(至少会 MLE,为什么我会执着于这个思路 2h 呢?),发现如果我们从左到右加入链上的点,对于链上的每个点挂的单点也是从左到右增加,则最大和次大的 $ r $ 一定单调不减,而且每次转移两个中一定有一个会增加,那么直接 dp 即可,$ k $ 这一维滚动掉,然后做一下前缀和就可以优化成 $ O(nmk) $。

代码:

#include<bits/stdc++.h>
#include"segment.h"
using namespace std;
const int mod=998244353;
struct node{int l,r;
}a[3005];
int dp[1005][1005],sdp[1005][1005];
int add(int x,int y)
{return (x+y>=mod?x+y-mod:x+y);
}
int divd(int x,int y)
{return (x<y?x-y+mod:x-y);
}
void init(int c,int t)
{return ;
}
vector<int> segment(int n,int m,int K,vector<int> l,vector<int> r)
{for(int i=0;i<n;i++){a[i+1].l=l[i];a[i+1].r=r[i];}memset(dp,0,sizeof(dp));vector<int> ans(K+1,0);for(int k=1;k<=K;k++){for(int i=1;i<=m;i++){for(int j=0;j<=m;j++){dp[i][j]=0;}}if(k==1){for(int id=1;id<=n;id++){dp[a[id].r][0]++;}for(int i=1;i<=m;i++){for(int j=0;j<=i;j++){sdp[i][j]=add((j?sdp[i][j-1]:0),dp[i][j]);}}}else if(k==2){for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){if(max(a[i].l,a[j].l)<=min(a[i].r,a[j].r)){dp[max(a[i].r,a[j].r)][min(a[i].r,a[j].r)]++;}}}for(int i=1;i<=m;i++){sdp[i][0]=dp[i][0];for(int j=1;j<=i;j++){sdp[i][j]=add(sdp[i][j-1],dp[i][j]);}}}else{for(int i=1;i<=m;i++){for(int id=1;id<=n;id++){int j=a[id].r,ql=a[id].l;if(ql>i)continue;if(i<j){dp[j][i]=add(dp[j][i],sdp[i][ql-1]);}else{dp[i][j]=add(dp[i][j],sdp[i][ql-1]);}}}for(int i=1;i<=m;i++){sdp[i][0]=dp[i][0];for(int j=1;j<=i;j++){sdp[i][j]=add(sdp[i][j-1],dp[i][j]);}}}for(int i=1;i<=m;i++){for(int j=0;j<=i;j++){ans[k]=add(ans[k],dp[i][j]);}}}return ans;
}
http://www.jsqmd.com/news/1269851/

相关文章:

  • 【Bug已解决】[Bug]: Deepseek v3.2 RuntimeError: Worker failed with error “Assertion error“ 解决方案
  • 从零到一:如何用MaxKB构建企业级智能体平台的完整指南
  • JVM运行时数据区详解:变量、对象和类信息到底存在哪里
  • Docker容器化部署.NET API应用实战指南
  • 零预算实现企业级HTTPS:Cloudflare+Docker+Nginx实战
  • [转] 2011年中国各省政区图及港澳台地区地图
  • REFramework终极指南:用简单脚本和VR支持彻底改变你的RE引擎游戏体验
  • Dragonfly实战指南:企业级P2P文件分发与分布式下载加速高效方案
  • 联想拯救者工具箱终极指南:开源性能管理工具深度解析
  • 淀水藏岁月,打捞守心安——白洋淀迅捷水下打捞队,深耕水乡四十余载的水下守护者 - 国麟测评
  • SimpleRemote高级功能揭秘:如何批量管理多台远程服务器?
  • 如何快速解决Minecraft MASA模组全家桶汉化难题:终极中文界面完整指南
  • 终极暗黑破坏神II角色编辑器:3步打造完美游戏体验
  • LeetCode公司题库数据仓库:537家企业面试题目分类整理终极指南
  • 深入解析CC27xx射频寄存器LRFDRFE32:原理、API配置与调试实践
  • 想给《我的世界》换背景音乐却总报错?2026 免费音频转 OGG 工具,游戏音效直接替换,开源格式全兼容。 - 今日咨询
  • 2026金九银十|Java后端面试题大全(附答案详解),一篇通关后端面试
  • XActivatePowerMode未来展望:8bit BGM与更多功能即将上线
  • 单招语文积累不够拿低分?成都融创单招:真题阅读定位法短期快速提分 - 成都单招培训
  • 2026 潮汕本地导游怎么选?费用、预约、避坑完整攻略 - 纯玩旅游推荐官
  • 3分钟快速上手:用MoocDownloader轻松实现中国大学MOOC课程离线学习
  • 【路径规划】基于改进的智能水滴算法求解送取货且带时间窗的车辆路径与调度优化问题matlab代码
  • 上海闲置大牌包怎么高价变现?静安线下、黄浦门店、浦东上门回收全对比 - 讯息早知道
  • Python毕业设计-基于 Python 机器学习的智能邮件分类系统设计与实现 面向垃圾邮件识别的文本分类系统开发(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 浅谈上海二手腕表市场:热门运动款与复古老款回收逻辑区别 - 讯息早知道
  • 重新定义扑克策略分析:如何用TexasSolver实现GTO求解的工程突破
  • HarmonyOS应用《玄象》开发实战:掷钱动画:animateTo + 缓动曲线的物理感模拟
  • OpenClaw:AI驱动的智能自动化工具解析与应用
  • VMD-BiLSTM在电力负荷预测中的工程实践
  • Unity PSD自动化导入:从设计稿到UI预制体的高效工作流