题目大意:

  1~n的排列中,要任意一个数要么比它左右的数都大或小,求所有的方案数。

思路:

  主要思路:离散。

  三个引理:

  ①在n->n-1的转化过程中,我们删除了一个点后,我们可以将n-1个点视为仍是1~n-1的排列。

  ②在若排列Pn为一个合法抖动子序列,则交换i∈[1,n)与i+1,必能得到另一个抖动子序列。

  ③抖动序列的对称性,若存在第一段上升的长度为n的抖动子序列,则以n+1-x代x必能得到一个第一段下降的长度为n的抖动子序列。

fi,j表示有个大小为i的数集{1...i},然后开头可以是1到j中的任何一个,但是需要是山峰。然后f表示方案数。

  然后转移方程fi,j−1部分就是开头为1~j−1先算出来了,方案数加进来。 
  f{i-1,i-j}则是开头选了j,剩下i−1个数,离散化一下是一个大小为i−1的数集,然后开头必须选1~j−1来保证下降。但是f表示上升,所以取反,然后应该等于fi−1,i−j

  另外注意,这题卡内存,64MB,需要滚动数组。

  参考:http://blog.csdn.net/ta201314/article/details/41380891

       http://blog.csdn.net/vmurder/article/details/44604275

代码:

 #include<cstdio>
#include<iostream>
using namespace std;
int n,i,j,k,mo,dp[][]; int main()
{
scanf("%d%d",&n,&mo);
for (dp[][]=,i=;i<=n;i++)
for (j=;j<=i;j++)
dp[k=i&][j]=(dp[!k][i-j]+dp[k][j-])%mo;
printf("%d\n",(dp[k][n]<<)%mo);
return ;
}

BZOJ 1925[Sdoi2010]地精部落 题解的更多相关文章

  1. BZOJ 1925: [Sdoi2010]地精部落( dp )

    dp(i,j)表示1~i的排列中, 以1~j为开头且开头是下降的合法方案数 这种数列具有对称性, 即对于一个满足题意且开头是上升的n的排列{an}, 令bn = n-an+1, 那么{bn}就是一个满 ...

  2. bzoj 1925: [Sdoi2010]地精部落

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

  3. bzoj 1925 [Sdoi2010]地精部落(DP)

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

  4. bzoj 1925: [Sdoi2010]地精部落【dp】

    设[f[i][j]为1到i,开头数字是j并且是山峰的方案数 注意到当数字j和j-1不相邻时,交换它们会得到一个新的符合要求的序列,所以f[i][j]+=f[i][j-1]; 如果相邻,那么j是山峰,j ...

  5. 1925: [Sdoi2010]地精部落

    1925: [Sdoi2010]地精部落 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1929 Solved: 1227 [Submit][Statu ...

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

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1925 题意:输入一个数N(1 <= N <= 4200),问将这些数排列成折线 ...

  7. [SDOI2010]地精部落 题解

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

  8. 【BZOJ1925】[SDOI2010]地精部落(动态规划)

    [BZOJ1925][SDOI2010]地精部落(动态规划) 题面 BZOJ 洛谷 题解 一道性质\(dp\)题.(所以当然是照搬学长PPT了啊 先来罗列性质,我们称题目所求的序列为抖动序列: 一个抖 ...

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

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

随机推荐

  1. 三、jQuery--jQuery插件--jQuery插件——Validation Plugin

    简介: 客户端验证:现代网站填写表单时,几乎一定会采用的方式. 优点:1.可以减少服务器压力 2.缩短用户等待时间和提升用户体验 jQuery有很多表单验证插件:https://plugins.jqu ...

  2. APP测试流程(个人整理)

  3. qsort函数详解

    C语言标准库函数 qsort 详解 文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作. 原文链接:http://www.slyar.c ...

  4. python多线程之Event(事件)

    #!/usr/bin/env python # -*- coding: utf-8 -*- import time from threading import Thread, Event import ...

  5. 无废话ExtJs 入门教程二[Hello World]

    无废话ExtJs 入门教程二[Hello World] extjs技术交流,欢迎加群(201926085) 我们在学校里学习任何一门语言都是从"Hello World"开始,这里我 ...

  6. poj 2236:Wireless Network(并查集,提高题)

    Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 16065   Accepted: 677 ...

  7. android 入门-Service

    sdk 1.7 package com.example.hellowrold; import java.util.Random; import com.example.hellowrold.R.id; ...

  8. servlet、genericservlet、httpservlet之间的区别

    转自:http://blog.csdn.net/rat9912345/article/details/5161789 当编写一个servlet时,必须直接或间接实现servlet接口,最可能实现的方法 ...

  9. PHP中include和require(转)

    昨天去面试一个php开发,看到笔试试卷上有这么一道题目: include和require有什么区别? 这个题目可以称得上php开发面试中的必考题目,网上也有各种答案和解释.但是我当时却真的想不起来了. ...

  10. whl文件安装

    进入whl文件的目录,直接pip install ...即可