【SDOI】【DP】【滚动数组】【bzoj1925】地精部落

手把手教你用AirSim生成无人机训练数据集:RGB/深度图/分割图全攻略 本文详细介绍了如何使用AirSim仿真插件在UE4环境中生成无人机训练数据集,涵盖RGB、深度图和分割图等多种模态数据的采集与处理。通过实战指南,读者可以掌握环境配置、多模态数据采集、自动化流程设计及数据后处理等关键技术,为无人机视觉算法开发提供高质量训练数据。 阅读详情

1925: [Sdoi2010]地精部落

Time Limit: 10 Sec   Memory Limit: 64 MB
Submit: 814   Solved: 494
[ Submit][ Status][ Discuss]

Description

传说很久以前,大地上居住着一种神秘的生物:地精。 地精喜欢住在连绵不绝的山脉中。具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi,其中Hi是1到N 之间的正 整数。 如果一段山脉比所有与它相邻的山脉都高,则这段山脉是一个山峰。位于边 缘的山脉只有一段相邻的山脉,其他都有两段(即左边和右边)。 类似地,如果一段山脉比所有它相邻的山脉都低,则这段山脉是一个山谷。 地精们有一个共同的爱好——饮酒,酒馆可以设立在山谷之中。地精的酒馆 不论白天黑夜总是人声鼎沸,地精美酒的香味可以飘到方圆数里的地方。 地精还是一种非常警觉的生物,他们在每座山峰上都可以设立瞭望台,并轮 流担当瞭望工作,以确保在第一时间得知外敌的入侵。 地精们希望这N 段山脉每段都可以修建瞭望台或酒馆的其中之一,只有满足 这个条件的整座山脉才可能有地精居住。 现在你希望知道,长度为N 的可能有地精居住的山脉有多少种。两座山脉A 和B不同当且仅当存在一个 i,使得 Ai≠Bi。由于这个数目可能很大,你只对它 除以P的余数感兴趣。

Input

仅含一行,两个正整数 N, P。

Output

仅含一行,一个非负整数,表示你所求的答案对P取余 之后的结果。

Sample Input

4 7

Sample Output

3

HINT


 
对于 20%的数据,满足 N≤10; 
对于 40%的数据,满足 N≤18; 
对于 70%的数据,满足 N≤550; 
对于 100%的数据,满足 3≤N≤4200,P≤109

Source


这个题真是神了。。。代码量和思维量是完全成反比的。。。

思路:比较复杂。首先抽象出模型,是求一个长度为n的抖动序列的方案数。令f[i][j]表示以j开头长度为i的,且开始是下降的方案数,答案就是乘2(考虑开始是上升的方案数),然后进行更深一步的思考:

<1>考虑开始的数是j-1,它的方案数就是f[i][j-1]。

<2>考虑开始的数是j,因为我们求的是开始下降,所以它的第二位一定要小于它,即j-1,但这样以j-1开始的序列就变成了上升的,所以要把它翻转过来,这样j-1就变成了(i-1)-(j-1)+1=i-j+1。

所以dp方程就是f[i][j]=f[i][j-1]+f[i][i-j+1] (1<=j<=i),初始化时f[2][2]=1。需要用到滚动数组(重复利用的原则),不然就MLE了。

Code:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int n,p,x,f[2][5001];
int main(){
	scanf("%d%d",&n,&p);
	f[0][2]=1;
	for (int i=3; i<=n+1; i++){
		x=i&1;
		for (int j=1; j<=i; j++)
			f[x][j]=(f[x][j-1]+f[!x][i-j+1])%p;
	}
	printf("%d\n",(f[x][n]*2)%p);
	return 0;
}



Linux ELF文件解析:从file到readelf的完整工具链指南 ELF(可执行与可链接格式)是Linux系统中二进制文件的标准格式,定义了程序加载、内存布局和元数据组织方式。其核心原理在于通过程序头表描述执行视图、节区头表描述链接视图,实现代码与数据的结构化存储。这一格式的技术价值在于为程序调试、安全审计和性能优化提供了底层支持,尤其在动态链接、符号解析和内存保护机制中发挥关键作用。在应用场景上,系统管理员依赖ELF分析工具解决库依赖问题,安全研究员通过检查安全属性评估漏洞风险,开发者则利用反汇编进行代码调试。本文聚焦于file、readelf、objdump等工具链的 阅读详情

相关推荐

RK3576开发板ROS2部署实战:从Buildroot配置到Hello World Demo

本文详细介绍了在RK3576开发板上部署ROS2的完整实战流程。从Buildroot工程配置、集成ROS2依赖,到搭建Docker交叉编译环境、处理编译难题,最终完成系统镜像打包并在板端成功运行Talker-Listener Demo。该指南旨在帮助开发者深入理解嵌入式机器人系统的构建链,实现从底层到应用的完全掌控。

mac99的博客 1154

BZOJ4518: [Sdoi2016]征途

BZOJ4518式子化简后,就是求∑mi=1xi2−2∗sum[n]2\sum_{i=1}^m{xi^2}-2*{sum[n]}^2的最小值。 容易有f[i][j]=min(f[i−1][k]+(sum[j]−sum[k])2)f[i][j]=min(f[i-1][k]+(sum[j]-sum[k])^2) 然后很容易得出具有决策单调性,可以斜率优化。 。。为什么我连队列和l,rl,r都要开二

Heret1c 570

CentOS 9 Stream 上安装 MySQL 8.0+

根据提示进行设置,包括设置新的 root 密码、禁用远程 root 登录等。MySQL 在首次安装时会生成一个临时密码。这样就完成了 MySQL 8.0.37 的安装。这将安装最新的 MySQL 8.0 版本。

小强不是坑 1679

BZOJ[1925]Sdoi[Sdoi2010]洛谷[P2467]地精部落 DP,滚动数组

BZOJ地址http://www.lydsy.com/JudgeOnline/problem.php?id=1925 洛谷地址http://www.luogu.org/problem/show?pid=2467 题目描述 传说很久以前,大地上居住着一种神秘的生物:地精。 地精喜欢住在连绵不绝的山脉中。具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无

谁能代表肯德基 667

Nano Banana 2哪里使用?Nano Banana 2提示词合集和使用教程

收集最强的Nano Banana 2提示词合集,以及Nano Banana 2哪里使用的教程,并且有10个免费使用渠道。

qq_42927225的博客 1988

Spring Cloud 整合(一) CRUD

Springcloud 整合之 CRUDSpringcloud介绍功能概述为什么要选用Springcloud Springcloud介绍 功能概述 实现微服务 Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的某些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,群集状态)。分布式系统的协调导致样板式样,并且使用Spring Cloud开发人员可以快速站起来实现这些样板的服务和应用程序。 为什么要选用Springcloud

Kerwin-Lin的博客 1501

BZOJ1925: [Sdoi2010]地精部落 滚动数组DP

以数字个数iii作为阶段,表示111~iii的排列 设f[i][j][0/1]f[i][j][0/1]f[i][j][0/1]表示111到iii的排列以jjj结尾,第三维为000表示峰 为111表示谷 则容易写出一个方程f[i][j][0]=∑k=1j−1f[i−1][k][1]f[i][j][0] = \sum_{k = 1}^{j-1}f[i-1][k][1]f[i][j][0]=k=1∑j−...

YjmStr 251

轴承寿命预测实战:手把手教你用IEEE PHM2012数据集训练模型(附Python代码)

本文详细介绍了如何利用IEEE PHM2012数据集构建轴承剩余寿命预测模型,从数据预处理、特征工程到LSTM模型训练与部署,提供了完整的Python代码实现。通过实战案例,帮助读者掌握预测性维护中的关键技术,提升工业设备的运行安全与效率。

weixin_29186249的博客 311

【BZOJ】1925: [Sdoi2010]地精部落 DP+滚动数组

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1925 题意:输入一个数N(1 <= N <= 4200),问将这些数排列成折线型有多少中合法的排列;折线形即一个数比相邻的数都大或者都小; 如:1 3 2 4就是一个折线型; 思路:f[i,j]表示排列的前i个数是以1...j为开头的第一位下降的合法个数; 转移公式为:...

weixin_30701575的博客 110

《Autosar从入门到精通-实战篇》总目录_培训教程持续更新中...

欢迎大家订阅《Autosar从入门到精通-实战篇》,下方整理了相关博文的目录(单击蓝色字体即可跳转),方便大家获取。 本专栏旨在:扫除Autosar工具链配置过程中的障碍,加深对Autosar理论的理解。 温馨提醒: 如有疑问,可在博文的“评论区”给小编留言,进行技术交流(评论区开启了验证功能,审核通过后,会显示); 如有疑问,也可以通过博文中的第一个图片联系小编,获取专栏/博文的实时状态; 由于工作限制,仅做个人技术交流。添加好友时,请备注您的“姓名-公司-职务...

「汽车电子助手」的博客 12万+

使用 Python 爬取网易云音乐歌单数据(完整教程)

随着在线音乐平台的普及,网易云音乐(NetEase Cloud Music)凭借其个性化的推荐算法和丰富的用户互动,吸引了大量用户。网易云音乐的歌单中包含了丰富的音乐数据,包括歌曲名、歌手、专辑、播放量、评论数等信息。通过爬取这些数据,可以对音乐流行趋势进行分析,挖掘音乐推荐策略,甚至训练个性化推荐模型。网易云音乐的 API 并未官方开放,但开发者通过抓包和逆向分析,找到了若干可用接口。✅ 数据清洗与存储(CSV/数据库)✅ 网易云音乐 API 接口分析。✅ 网易云音乐接口解析。✅ 同步与异步爬取实现。

2201_76125261的博客 1372

【BZOJ1925】地精部落(SDOI2010)-DP+滚动数组

测试地址:地精部落 做法:本题需要用到DP+滚动数组。 注意到题目问的就是长为nnn的波动排列数目,但是由于ppp不一定是质数,所以我们要避免使用逆元,又因为空间只有64MB,我们需要严格控制空间的使用。 考虑如何计算长为iii的波动排列数目,我们可以枚举iii的位置jjj,因为iii一定是最大的元素,所以它的两边一定是谷,因此我们就要求长为j−1j−1j-1和i−ji−ji-j的第一位或最...

Maxwei_wzj的OI世界 282

ROS与Qt5人机交互界面开发:添加rviz显示界面

最后,点击"完成"以创建新的Qt5应用程序项目。通过结合ROS和Qt5,您可以创建强大的人机交互界面,以实现丰富的机器人控制和数据可视化。在本教程中,我们将在主窗口中创建一个简单的按钮,用于启动rviz显示界面。在Qt Creator的槽函数编辑器中,为按钮添加一个槽函数,该函数将在单击按钮时调用。在上面的代码中,我们使用QProcess类启动了一个新的进程,并执行"rviz"命令来启动rviz显示界面。当您单击Qt5应用程序中的按钮时,将会启动一个新的rviz窗口,显示机器人数据的可视化界面。

CodeJolt的博客 2066

[BZOJ1925][Sdoi2010]地精部落(抖动序列dp)

很有意思的状态设计?

薇小薇 644

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

BZOJ1925: [Sdoi2010]地精部落 组合数+DP

BZOJ1925 [SDOI2010]地精部落 题意 给出nnn,求出nnn的全排列中,波动数列的个数(0&lt;n&lt;4201)(0&lt;n&lt;4201)(0<n<4201) 波动数列:每个点不是波峰((比相邻的点都大)就是波谷(比相邻的点都小) 思路 最高峰的两边一定也是波动数列 当最高峰iii确定的时候: 一个长度为nnn的波动...

qcwlmqy的博客 202

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【BZOJ1925】[Sdoi2010]地精部落 组合数+DP

【BZOJ1925】[Sdoi2010]地精部落 Description 传说很久以前,大地上居住着一种神秘的生物:地精。 地精喜欢住在连绵不绝的山脉中。具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi,其中Hi是1到N 之间的正 整数。 如果一段山脉比所有与它相邻的山脉都高,则这段山脉是一个山峰。位于边 缘的山脉只有一段相邻的山脉,其他...

aodanchui1057的博客 133

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【SDOI2010】【BZOJ1925】地精部落

Description 传说很久以前,大地上居住着一种神秘的生物:地精。 地精喜欢住在连绵不绝的山脉中。具体地说,一座长度为 N 的山脉 H可分为从左到右的 N 段,每段有一个独一无二的高度 Hi,其中Hi是1到N 之间的正整数。 如果一段山脉比所有与它相邻的山脉都高,则这段山脉是一个山峰。位于边缘的山脉只有一段相邻的山脉,其他都有两段(即左边和右边)。 类似地,如果一段山脉比所有它相邻的山脉都低

CreationAugust is 14 years old forever 2302

[sdoi 2010][bzoj 1925]地精部落(神仙dp)

Description 传说很久以前,大地上居住着一种神秘的生物:地精。 地精喜欢住在连绵不绝的山脉中。具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi,其中Hi是1到N 之间的正 整数。 如果一段山脉比所有与它相邻的山脉都高,则这段山脉是一个山峰。位于边 缘的山脉只有一段相邻的山脉,其他都有两段(即左边和右边)。 类似地,如果一段山脉比所有它相邻的...

weixin_30872789的博客 161

[sdoi 2010][bzoj 1925]地精部落(dp)

题干: 地精喜欢住在连绵不绝的山脉中。一座长度为N的山脉 H可分 为从左到右的N段,每段有一个独一无二的高度 Hi,其中Hi是1到N之间的正整数。 如果一段山脉比所有与它相邻的山脉都高,则这段山脉是一个山峰。位于边 缘的山脉只有一段相邻的山脉,其他都有两段(即左边和右边)。如果一段山脉比所有它相邻的山脉都低,则这段山脉是一个山谷。酒馆可以设立在山谷之中。地精还是一种非常警觉的生物,他们...

anchengao1503的博客 160

题解 [BZOJ1925][SDOI2010] 地精部落

题面 解析 这个似乎并不好讲啊 设\(f[i][j]\)表示有\(i\)座山, 最后一座山到达高度是\(i\)座中第\(j\)大的, 且最后一座山是山谷. 注意,\(i\)是代表有\(i\)座山,并不代表高度一定是\(1\)~\(i\). \(j\)也是一个类似于离散化的东西. 然后我们考虑设\(g[i][j]\), 除了最后一座山是山峰以外其它的定义和\(f[i][j]\)一样. 那么...

weixin_30911809的博客 109

BZOJ1925 [SDOI2010]地精部落

Description 传送门 求\(N\)的排列中有多少个波动数列. 波动数列是指对于数列中的每一个数,他两边的数必须严格小于或大于自己. \[ n \leq 4200, Mod \leq 1e9 \] Solution 首先我们必须要搞清楚3个性质 First: 在一个波动数列中,若两个 i 与 i+1 不相邻,那么我们直接交换这两个数字就可以组成一个新的波动数列; 举个栗子:...

dayfs2560的博客 170

BZOJ1925: [Sdoi2010]地精部落

BZOJ1925: [Sdoi2010]地精部落 Description 传说很久以前,大地上居住着一种神秘的生物:地精。 地精喜欢住在连绵不绝的山脉中。 具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi,其中Hi是1到N 之间的正 整数。 如果一段山脉比所有与它相邻的山脉都高,则这段山脉是一个山峰。 位于边 缘的山脉只有一段相邻的山脉,其...

weixin_30266829的博客 77

bzoj1925 [Sdoi2010]地精部落(dp)

程序5分钟,思维两小时hh。 问题就是求长度为n的排列满足抖动序列的个数。我们首先要发现答案是具有对称性的,即如果存在一个排列满足答案且第一个数为山峰,则一定还存在一个排列满足答案且第一个数为山谷(把原排列中的每个数x都换成n+1-x即可),推广一下:如果存在一个长度为i的序列满足要求且第一个数为山峰的话,则一定还存在一个长度为i的序列满足要求且第一个数为山谷(把这i个数从小到大排列,分别为a[1

Icefox的博客 449

BZOJ 1925[Sdoi2010]地精部落 题解

题目大意:   1~n的排列中,要任意一个数要么比它左右的数都大或小,求所有的方案数。 思路:   主要思路:离散。   三个引理:   ①在n->n-1的转化过程中,我们删除了一个点后,我们可以将n-1个点视为仍是1~n-1的排列。   ②在若排列Pn为一个合法抖动子序列,则交换i∈[1,n)与i+1,必能得到另一个抖动子序列。   ③抖动序列的对称性,若存在第一段...

diyaochang9767的博客 113

BZOJ1925 SDOI2010 地精部落 一般DP

题意:求1-N组成的长度为N的数列中,除了两端外,中间任意一个位置i均满足(ai-1<ai &&ai+1<ai)或(ai-1>ai && ai+1>ai)题解:考场上遇到这种题果断暴力设f[i][j]为1-i组成的数列,1-j其中一个为开头,且开头为山峰的方案数,转移分为两部分: f[i][j-1]:不选j为开头 f[i-1][i-j+1]...

a18700013354的博客 167

BZOJ 1925: [Sdoi2010]地精部落 dp

1925: [Sdoi2010]地精部落 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 1384  Solved: 855 [Submit][Status][Discuss] Description 传说很久以前,大地上居住着一种神秘的生物:地精。 地精喜欢住在连绵不绝的山脉中。具体地说,一座长度为 N 的山脉 H可分 为从左到右的

BlackJack 364
上一篇: 【贪心】【排序】【codevs 1214】线段覆盖
下一篇: 【网络流24题】【cogs738】【codevs1913】数字梯形
morestep
博客等级 码龄12年 20粉丝 88原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值