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

题解:P1020 [NOIP 1999 提高组] 导弹拦截

题目传送门。

显然,一个系统能够防御的导弹个数就是这个导弹高度的最长不升子序列。用 dp 就可以把这部分解决,可以得到 \(80\) 分。

第一问主体代码:

c[len] = 5e4+7;
for(int i = 1;i<=n;i++){if(a[i]<=c[len]){//如果能加,就直接加c[++len] = a[i];}else{int l = 1,r = len;int ans = 0;while(l<=r){//二分查找第一个小于这个a[i]的地方,插入int mid = (l+r)>>1;if(c[mid]<a[i]){ans = mid;r = mid-1;}else{l = mid+1;}}c[ans] = a[i];}
}
cout<<len<<endl;

上面是第一问,现在我们看看第二问。

第二问说,要用多少个系统才能把所有导弹拦截下来。

这里就要引入我们的 Dilworth 定理了:

把整个序列划分成若干个最长不升自序列的个数等于这个序列的最长严格上升子序列。

证明略。

于是,第二问主体代码就出来了:

for(int i = 1;i<=n;i++){if(a[i]>c[len]){c[++len] = a[i];}else{int id = lower_bound(c+1,c+1+len,a[i])-c;c[id] = a[i];}
}
cout<<len;

把这两份代码拼起来,我们就能拿到 \(200pts\) 了!

AC 代码:

#include <iostream>
#include <algorithm>
#define int long long
using namespace std;int n;
int a[100005];
int c[100005];
int len;
bool flag[100005];
signed main()
{ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);int x;while(cin>>x){a[++n] = x;}c[len] = 5e4+7;for(int i = 1;i<=n;i++){if(a[i]<=c[len]){c[++len] = a[i];}else{int l = 1,r = len;int ans = 0;while(l<=r){int mid = (l+r)>>1;if(c[mid]<a[i]){ans = mid;r = mid-1;}else{l = mid+1;}}c[ans] = a[i];}}cout<<len<<endl;len = 0;//清空c[len] = 0;//最长严格上升子序列c[0]应该为0,否则第一个点加不进去for(int i = 1;i<=n;i++){if(a[i]>c[len]){c[++len] = a[i];}else{int id = lower_bound(c+1,c+1+len,a[i])-c;c[id] = a[i];}}cout<<len;return 0;
}
http://www.hskmm.com/?act=detail&tid=22307

相关文章:

  • 哈希表专题
  • Meta基础设施演进与AI技术革命
  • 完整教程:Spring AI整合聊天模型DeepSeek
  • 2025 年焚烧炉厂家 TOP 企业品牌推荐排行榜!权威甄选实力与口碑俱佳的江苏焚烧炉 / 无锡焚烧炉推荐这十家公司!
  • 2025 年防腐涂料厂家 TOP 企业品牌推荐排行榜,乙烯基、环氧煤沥青、环氧防腐涂料、防腐涂料地坪 、防腐涂料水池推荐这十家公司!
  • 2025双氧水厂家权威推荐榜:优质供应与专业定制实力之选
  • Win环境下包管理工具
  • MX Round 11 解题报告
  • 用 C# 打造企业资产管理系统雏形——从控制台到完整模块设计 - 详解
  • java开发之微信机器人的二次开发
  • 10.1刷题计划一
  • 笔记本电脑重装系统后找不到5G WIFI无线网或蓝牙模块消失的解决方案
  • 菜鸟坚持记录-开头篇
  • AI+传统工作流:Photoshop/Excel的智能插件开发指南 - 实践
  • Typora 笔记迁移 Obsidian 图片附件库批量移动方法,适用于笔记整理。
  • 2025年确有专长培训权威推荐榜:专业资质与特色诊疗口碑之选
  • 开源 C# 快速构建(五)自定义控件--仪表盘
  • 2025中医师承培训、考试、认证机构权威推荐榜:名师传承与临床实践口碑之选
  • 电子文件分类整理与双向同步 2025年10月1日
  • C++版搜索与图论算法 - 详解
  • 62. 不同路径
  • 达成设计卓越:全面解析 IC 设计中的验证之道
  • Typora 笔记迁移 Obsidian 图片链接转换
  • Java 运行 Word 文档标签并赋值:从基础到实战
  • 词云组件
  • 2025 年超声波清洗机品牌最新权威推荐排行榜:龙门式 / 悬挂式 / 全自动等多类型设备厂家 TOP3 精选,助力企业精准选购
  • 树的统一迭代法
  • 2025 年冷却塔品牌最新推荐排行榜:玻璃钢冷却塔、闭式冷却塔、方型逆流式冷却塔优质厂家 TOP3 精选,赋能企业选购
  • DailyPaper-2025-9-30
  • Powershell 管理 后台/计划 作业(六)