【问题描述】

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]地精部落相关推荐

  1. BZOJ1925: [Sdoi2010]地精部落

    BZOJ1925: [Sdoi2010]地精部落 Description 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中. 具体地说,一座长度为 N 的山脉 H可分 为 ...

  2. bzoj1925 [Sdoi2010] 地精部落

    题目描述 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为N的山脉H可分为从左到右的N段,每段有一个独一无二的高度Hi,其中Hi是1到N之间的正整数 ...

  3. bzoj1925: [Sdoi2010]地精部落 [dp]

    Description 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi, ...

  4. [bzoj1925][Sdoi2010]地精部落

    大佬们好神啊,考试都切掉了这题,,本来以为T3可做写完发现不对结果T2还崩了.qwq好闹心啊... 找到了一个不玄乎的题解至少转移我看懂了..clj的都太神了我等蒟蒻不能理解qwq 转自 http:/ ...

  5. BZOJ1925 [Sdoi2010]地精部落 【dp】

    题目 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi,其中Hi是1到N ...

  6. [BZOJ1925][SDOI2010]地精部落(DP)

    题意 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi,其中Hi是1到N ...

  7. [bzoj1925][DP]地精部落

    Description 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi, ...

  8. 差分约束 4416 FFF 团卧底的后宫

    /* 4416 FFF 团卧底的后宫  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解 题目描述 Description 你在某日收到了 FFF 团卧底的求 ...

  9. synchronized 王的后宫总管,线程是王妃

    假如 synchronized 是「王」身边的「大总管」,那么 Thread 就像是他后宫的王妃.「王」每日只能选择一个王妃陪伴,王妃们会想方设法争宠获得陪伴权,大总管需要通过一定的手段让王「翻牌」一 ...

  10. [OJ#40]后宫佳丽

    [OJ#40]后宫佳丽 试题描述 如果机房要关门了,或者有妹子在等你,你可以直接看最后一句话. Fyq 是一只饥渴的鸭子. Fyq 有一个充实的后宫,可惜他总是体力不支,为此他经常苦恼,总是想方设法让 ...

最新文章

  1. mysql中日期判断的函数_MySql判断汉字、日期、数字的函数
  2. MYSQL || 的BUG // MYSQL 不同库自增id的问题 //MySQL根据表注释查找对应的表 //hive -mysql 日期比较
  3. python copy模块_python日记第四章:python文件copy模块shutil
  4. python调用golang 数组_Go 语言数组复制
  5. 专家的修炼之路 —— 德雷福斯模型 Dreyfus
  6. 如何查电脑ip地址_摄像机地址不对连不上网?教你快速更改IP地址
  7. 三国将星录java阵容_三国将星录,通关攻略
  8. ssh隧道(通过跳板机)连接mysql
  9. HDU4081 Qin Shi Huang's National Road System(次小生成树)
  10. swift -- 字典
  11. java9最新下载_java9 64位 官方下载_java9 64位 官方最新版_魅蓝下载
  12. Linux ubuntu中编写shell脚本文件
  13. 天翼网关最新超级密码2020_5G 下体验阿里云盘后,我决定继续用天翼和度盘
  14. 软件设计领域没有银弹,但代码大师MaxKanat-Alexander的建议绝对能给你带来启发...
  15. 考研计算机专业复试问题汇总——计算机网络(王道408)
  16. 一个例程学会使用——模糊逻辑工具箱
  17. 91文件夹操作——创建和删除多级目录
  18. FATE —— 二.3.2 Hetero-NN使用CustModel设置顶部、底部模型
  19. iPhone 部分机型尺寸
  20. PyQt5学习记录(2)---QMainWindow菜单栏、状态栏和工具栏

热门文章

  1. DDPM代码详细解读(1):数据集准备、超参数设置、loss设计、关键参数计算
  2. 使用Python 去除kg视频水印代码
  3. matlab如何整理表格数据,数据整理的程序与步骤:包括数据预处理、分类或分组、图表显示...
  4. 实例分割:R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN
  5. 魔童降世-暴走的哪吒
  6. chromium浏览器_轻松下载便携式Chromium浏览器
  7. 理论上讲,股市暴跌是不是要清仓?为什么?
  8. CMake Error: The source directory “/“ does not appear to contain CMakeLists.txt.
  9. MCTS (Monte Carlo Tree Search)
  10. HDUOJ_2567_寻梦