发布时间:2026/8/9 1:57:18
洛谷P8816 [CSP-J 2022] 上升点列一题的题解 20分采用暴力搜索方法。使用深度优先搜索DFS进行遍历。对于每个点有两种选择将其加入序列或不加入序列。当遍历到第n个点时对生成的序列进行合法性判断。判断序列是否合法需满足两个条件序列单调不减且相邻两点之间的欧几里得距离为1即一个点要么在另一个点的正上方要么在正下方。如果两点之间出现单调递减则序列不合法如果两点之间需要补充的点数超过k同样不合法。#includebits/stdc.husingnamespacestd;intn,k;vectorpairint,intp;intmaxn0;voidcheck(constvectorintc){if(c.empty())return;vectorpairint,intcur;for(intidx:c){cur.push_back(p[idx]);}sort(cur.begin(),cur.end());//单调性的检查booloktrue;for(inti1;icur.size();i){if(cur[i].firstcur[i-1].first||cur[i].secondcur[i-1].second){okfalse;break;}}if(!ok)return;//计算需要添加的点数 d(x2-x1)(y2-y1)intcost0;for(inti1;icur.size();i){intdxcur[i].first-cur[i-1].first;intdycur[i].second-cur[i-1].second;cost(dxdy-1);//需要补的点数}if(costk){maxnmax(maxn,(int)c.size());}}voiddfs(intidx,vectorintc){if(idxn){check(c);return;}dfs(idx1,c);c.push_back(idx);dfs(idx1,c);c.pop_back();}intmain(){cinnk;for(inti0;in;i){intx,y;cinxy;p.push_back({x,y});}vectorintc;dfs(0,c);coutmaxnk;return0;}100分法一采用暴力搜索结合记忆化优化。由于DFS本身没有明显的记忆化点因此将记忆化策略应用在check函数中。我们知道从一个点出发可以走很多条路有一些路是有重叠的。所以可以记录每条路的子路的长度到时候重叠部分直接用即可。#includebits/stdc.husingnamespacestd;intn,k;vectorpairint,intp;intmemo[505][505];intmaxn0;intdfs(inti,intused)//used是之前补的点数{if(memo[i][used]!-1)returnmemo[i][used];intbest1;for(intji1;jn;j){if(p[j].secondp[i].second)continue;//递减直接跳过intdxp[j].first-p[i].first;intdyp[j].second-p[i].second;intneeddxdy-1;if(usedneedk){bestmax(best,dfs(j,usedneed1);//找最长序列}}returnmemo[i][used]best;//记忆化}intmain(){cinnk;for(inti0;in;i){intx,y;cinxy;p.push_back({x,y});}sort(p.begin(),p.end());memset(memo,-1,sizeof(memo));for(inti0;in;i){maxnmax(maxn,dfs(i,0));}coutmaxnk;return0;}100分法二暴力有一定风险我们可以想想用dp。实际上就是把记忆化数组变成dp数组就行了只不过dp[i][0]要赋初值为1。策略改在某个点往后探索为以该点结尾中间某点开始到这里。但是used需要我们自己枚举也充当dp[x][y]中的y。就是从某点此前花费used个点下一个点接该点不算补的点的长度装进dp数组。#includebits/stdc.husingnamespacestd;intn,k;vectorpairint,intp;intdp[505][505];intmaxn0;intmain(){cinnk;for(inti0;in;i){intx,y;cinxy;p.push_back({x,y});}sort(p.begin(),p.end());for(inti0;in;i){dp[i][0]1;for(intj0;ji;j){if(p[i].secondp[j].second)continue;intdxp[i].first-p[j].first;intdyp[i].second-p[j].second;intneeddxdy-1;for(intused0;usedneedk;used){dp[i][usedneed]max(dp[i][usedneed],dp[j][used]1);}}}for(inti0;in;i){for(intused0;usedk;used){maxnmax(dp[i][used],maxn);}}coutmaxnk;return0;}

相关新闻

2026/8/9 1:57:18

建设一个购物网站要多少钱?2024年老板必看:从几千元到上百万元的真实账单拆解

咱们今天不整那些虚头巴脑的互联网黑话,也不搞什么高科技名词轰炸。就坐在咱们这杯刚泡好的茶旁边,像老朋友聊天一样,好好掰扯一下这个让无数初创老板和传统企业主深夜辗转反侧的问题:建设一个购物网站要多少钱?说实话,这个问题问得越笼统,答案就越像玄学。你去问外包公…

2026/8/9 1:57:18

AI Agent安全攻防:为什么你的智能体可能泄露企业数据?

前言:AI Agent最大的风险,是它拥有了“行动能力”过去的软件漏洞:通常来自:SQL注入;权限错误;代码漏洞。但是AI Agent出现后:新的问题来了。因为Agent不仅能:回答问题。它还能&#…

2026/8/9 1:57:18

《数字信号处理:使用Python分析与实现》全套PPT课件2026

《数字信号处理:使用Python分析与实现》全套PPT课件2026 课件参考:数字信号处理:使用Python分析与实现 李蓉艳 教材 课件内容: 第1章离散时间信号与系统-pptx 第2章时域离散系统的频域分析.ppx 第3章离散傅里叶变换(DFT&#xff0…

2026/8/9 3:52:47

LangChain 项目跑通 Demo 容易,为什么团队协作就崩了?

《我把LangChain接进项目后,先推翻了几个想当然》看起来是个大话题,但真落到项目里,常常就是几个具体选择。下面我尽量按实际开发时会遇到的问题来讲。 摘要 之前我带团队做了一个内部知识库助手,用 LangChain 搭起来&#xff0…

2026/8/9 3:52:47

Python数据分析与爬虫实战:从零到项目上手的核心路径

如果你在2026年还在搜索“Python零基础全套教程”,并且被“7天从入门到精通”这样的标题吸引,那么这篇文章就是为你写的。但请先放下对“速成”的幻想,我们得先解决一个核心问题:为什么学了那么多教程,看了那么多视频&…

2026/8/9 3:52:47

UnityExplorer深度解析:实时调试Unity游戏的终极工具箱

UnityExplorer深度解析:实时调试Unity游戏的终极工具箱 【免费下载链接】UnityExplorer An in-game UI for exploring, debugging and modifying IL2CPP and Mono Unity games. 项目地址: https://gitcode.com/gh_mirrors/un/UnityExplorer 你是否曾梦想过像…

2026/8/9 3:47:47

HarmonyOS 6应用开发实战:从环境配置到性能优化

1. 鸿蒙之光:HarmonyOS 6应用开发全景解读2026年开年之际,鸿蒙生态迎来里程碑式升级。作为HarmonyOS 6的首批实践者,我完整经历了从DevEco Studio环境搭建到首个分布式应用上架的全流程。与早期版本相比,6.0在跨设备协同、原子化服…

2026/8/9 0:01:56

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:56

当 LLM 遇见大文档:主流开源项目如何处理上下文超限

从 Agentic Loop 到 Repo Map,七种策略与六类陷阱引言:128K vs 10MB 的硬冲突 2026 年的 LLM 上下文窗口已达到 128K ~ 1M token(≈ 0.5MB ~ 4MB 文本),但 LLM 想要处理的真实数据规模远远超过这个量级:真实…

2026/8/9 0:01:56

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:56

当 LLM 遇见大文档:主流开源项目如何处理上下文超限

从 Agentic Loop 到 Repo Map,七种策略与六类陷阱引言:128K vs 10MB 的硬冲突 2026 年的 LLM 上下文窗口已达到 128K ~ 1M token(≈ 0.5MB ~ 4MB 文本),但 LLM 想要处理的真实数据规模远远超过这个量级:真实…

2026/8/7 9:44:18

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/7 19:03:32

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/8 2:17:42

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…