【czy系列赛】czy的后宫4 && bzoj1925 [Sdoi2010]地精部落
【问题描述】
czy有很多妹子,妹子虽然数量很多,但是质量不容乐观,她们的美丽值全部为负数(喜闻乐见)。
czy每天都要带N个妹子到机房,她们都有一个独一无二的美丽值,美丽值为-1到-N之间的整数。他想要把这些妹子排成一个波动序列,这样相对“漂亮”(美丽值的绝对值较小)的妹子可以与她旁边的两个美丽值的绝对值较大的妹子形成鲜明的对比,整个序列相对将更加“美观”(不再那么无法直视)。
一个序列是波动序列仅当序列中的每个数比周围的两个数都大或都小(如果有的话)。
现在czy希望知道,长度为N的波动序列有多少种。两种序列A和B不同当且仅当存在一个i,使得Ai≠Bi。由于这个数目可能很大,你只对它除以P的余数感兴趣。
【输入格式】
输入文件czy.in仅含一行,两个正整数N, P。
【输出格式】
输出文件czy.out仅含一行,一个非负整数,表示你所求的答案对P取余之后的结果。
【样例输入输出】
czy.in
4 7
czy.out
3
说明:共有10种可能的序列,它们是: 1324 1423 2143 2314 2413 3142 3241 3412 4132 4231
(忽略负号)
【数据规模和约定】
对于20%的数据,满足N≤10;
对于40%的数据,满足N≤18;
对于70%的数据,满足N≤550;
对于100%的数据,满足3≤N≤4200,P≤10^9。
AHSOFNU高一互测题【czy系列赛】第二题:dp……顺手写了个
要了解更多关于czy系列赛的东西,快戳这里
(我会说其实第四题是我出的吗)
现场没有想出来怎么做,在orz了黄巨大之后才知道
有些猥琐的dp。f[i][j]表示前i个数、第一个数在[1,j]范围内且第一段是下降的方案数(够坑吧)
那么f[i][j] = f[i][j - 1] + f[i - 1][i - j]
什么意思呢?首先开头是[1,j-1]的方案数是已经算过的,可以直接取出来,就是f[i][j - 1]
那么我们考虑开头是j、第一段是下降的方案怎么转移:
黄巨大是这样说的:这个就是求以[1,j]开头的1到 i-1的第一位上升合法排列数
就是说我们把j加到第一个并要使得第一段是下降的,那么j要比原来的第一个要大,并且原来的方案必须是上升(这样才能保证整个序列是波动序列)
根据上升与下降的对称性,我们可以得出f[i-1][i-j]即是所求
那么前面的方程就解释完了
最后答案是2*f[n][n],因为上升下降都得算
顺便说一句,bzoj上会卡f[4201][4201]的内存,所以要用滚动数组,否则MLE别怪我没提醒你
#include<cstdio>
int n,k,pre,cur;
int f[2][5000];
int main()
{
scanf("%d%d",&n,&k);
if (n==1)
{
printf("%d\n",1);
return 0;
}
pre=1;cur=0;
f[pre][1]=1;
for (int i=2;i<=n;i++)
{
pre^=1;cur^=1;
for (int j=1;j<=n;j++)
{
f[pre][j]=f[pre][j-1];
if (i>=j)f[pre][j]+=f[cur][i-j];
if (f[pre][j]>k) f[pre][j]-=k;
}
}
printf("%d",(f[pre][n]*2)%k);
}
【czy系列赛】czy的后宫4 && bzoj1925 [Sdoi2010]地精部落的更多相关文章
- [bzoj1925][Sdoi2010]地精部落_递推_动态规划
地精部落 bzoj-1925 Sdoi-2010 题目大意:给你一个数n和模数p,求1~n的排列中满足每一个数的旁边两个数,要么一个是边界,要么都比它大,要么都比它小(波浪排列个数) 注释:$1\le ...
- bzoj1925 [Sdoi2010] 地精部落【DP】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1925 一个多月前“过”了这道题,还自欺欺人地认为懂了这道题,这直接导致了昨晚多校联测2的T3 ...
- BZOJ1925[SDOI2010]地精部落
Description 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi, ...
- BZOJ1925 [Sdoi2010]地精部落 动态规划
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1925 题意概括 给出n,n<=4200,问1~n这些数的排列中,有多少满足一下性质: 性质: ...
- [BZOJ1925][SDOI2010]地精部落(DP)
题意 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi,其中Hi是1到N ...
- 2018.10.20 bzoj1925: [Sdoi2010]地精部落(dp)
传送门 dp好题. 设f[i][j]f[i][j]f[i][j]表示iii个数结尾是jjj且结尾两个数递增的方案数. 那么显然可以对称的定义出g[i][j]g[i][j]g[i][j]表示iii个数结 ...
- BZOJ1925 [Sdoi2010]地精部落 【dp】
题目 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi,其中Hi是1到N ...
- [bzoj1925][Sdoi2010][地精部落] (序列动态规划)
Description 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi, ...
- 题解 [BZOJ1925][SDOI2010] 地精部落
题面 解析 这个似乎并不好讲啊 设\(f[i][j]\)表示有\(i\)座山, 最后一座山到达高度是\(i\)座中第\(j\)大的, 且最后一座山是山谷. 注意,\(i\)是代表有\(i\)座山,并不 ...
随机推荐
- DOS批处理命令判断操作系统版本、执行各版本对应语句
DOS批处理命令判断操作系统版本.执行各版本对应语句 昨天在家里试用 netsh interface ip set address 这些命令更改上网IP.DNS.网关等,今天将那些代码拿来办公室 ...
- cf442C Artem and Array
C. Artem and Array time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- fdm_search_info_w_book_chain
数据知识管理平台-元数据管理-fdm_search_info_w_book_chain-详细信息 fdm_search_info_w_book_chain
- Spring整合Shiro做权限控制模块详细案例分析
1.引入Shiro的Maven依赖 <!-- Spring 整合Shiro需要的依赖 --> <dependency> <groupId>org.apache.sh ...
- 并发情况下synchronized死锁
存在缺陷的代码: public class DataPropertyIdAndNameRepositoryImpl{ /** 发布标志 */ private volatile boolean publ ...
- .NET--接口设计
我们学习.net视频的时候,老师讲的是"介面设计",有意思的是,这里的介面不是我们想象中的界面的意思,而是接口的意思. 由于视频是Micorsoft公司做的,所以整个视频看下来.仅 ...
- HTML 5 视频使用
视频格式 当前,video 元素支持三种视频格式: 格式 IE Firefox Opera Chrome Safari Ogg No 3.5+ 10.5+ 5.0+ No MPEG 4 9.0+ No ...
- 生命周期-初识IOS
经常因为生命周期的事情,而视图顺序加载错误,或者出现一系列的小错误并且修改不出来,程序员不知道生命周期确实挺可悲的. IOS生命周期: 自上而下的执行,并且viewDidLoad只会执行一次,所以我们 ...
- .Net的PDF转图片
用的是破解版的 O2S.Components.PDFRender4NET.dll 插件, 简单引用即可 public static class PdfToImage { , , ) { try { / ...
- WebApi2官网学习记录---JSON与XML的序列化
JSON序列化: WebAPI的默认序列库使用的是Json.NET,可以在Globally中配置使用DataContractJsonSerializer 进行序列化 protected void Ap ...