其实有两种方法来解这道题
# 第一种:找规律(非正经)


一看,这玩意像是个杨辉三角,还左右对称呢

因为新插入一个数$n$,有$n+1$个位置可以选,所以总数就乘$n+1$,对应的$f[n+1][i]$也就等于$f[n][i]$了大概。可是一看,不大对,好像不是这样。那么就像,反正加一个数要么没变,要么加一个小于号,那么不在$f[n+1][i]$的一定是分到了$f[n+1][i+1]$里去了。那么以$n=3$时为例,$f[3][1]*4=4,f[4][1]=1$也就是接收了$1$倍的$f[3][1]$。那么就有$3$个分到$f[4][2]$里去了。$f[3][2]*4=16,f[4][2]=11$,而$f[4][2]$已经有$3$个,那么就接收了来自$f[4][2]$的$8$个,也就是$2$倍的$f[3][2]$。······以此类推,大概就得出了$f[n+1][i]+=f[n][i]*(i+1),f[n+1][i+1]+=f[n][i]*(n-i)$的规律

-----------------------------------------------手动分割线------------------------------------------------

# 第二种:数学方法推
**这是正经方法**

前面说过,加入一个数$n$,有$n$+$1$个位置可以选,可以插在两旁或者不等号的位置,因为新插入的数一定是最大的,所以插在最左边多一个大于号,而插在最右边多一个小于号。

那么问题来了,如果插在不等号的位置呢?

首先,明确一下,插入在不等号位置后,一个不等号会变为两个不等号,由于新插入的数一定是最大的,所以这两个不等号中前面的一定是小于号,后面的一定是大于号。那么就很明显了,如果这个位置原来是小于号,那么插入$n$之后,小于号数不变;如果原来是大于号,那么插入$n$之后,小于号数+$1$。那么原本有$i$个数$j$个小于号,加上一个数后便会有$j+1$种小于号不变$i-j$种小于号$+1$的情况。

上代码

先是**暴力版**(通不过的,这是帮助我打出那张图的版本)
```cpp
#include<iostream>
#include<cstdio>
using namespace std;
const int maxn=1005;
int f[maxn],n,ans[maxn];
bool s[maxn];
void dfs(int step){
if(step>n){
int sum=0;
for(int i=1;i<n;i++)sum+=f[i]<f[i+1]?1:0;
ans[sum]++;
return;
}
for(int i=1;i<=n;i++)
if(!s[i]){
s[i]=1;
f[step]=i;
dfs(step+1);
s[i]=0;
}
}
int main(){
scanf("%d",&n);
dfs(1);
for(int i=0;i<n;i++)printf("%d ",ans[i]);
}
```

然后上
## 正常版本
```cpp
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int maxn=1005;
int n,k,f[maxn][maxn];
int main(){
//freopen("num.in","r",stdin);
//freopen("num.out","w",stdout);
scanf("%d%d",&n,&k);
if(k>(n-1)/2)k=n-k-1;
f[1][0]=1;
for(int i=1;i<n;i++){
for(int j=0;j<=(i-1)/2;j++){//由于它类似于杨辉三角,左右对称,所以只求左侧就好
f[i+1][j]=(f[i+1][j]+f[i][j]*(j+1))%2015;
f[i+1][j+1]=(f[i+1][j+1]+f[i][j]*(i-j))%2015;
}
if(i%2==0)f[i+1][i/2]=(f[i+1][i/2]*2)%2015;
}
printf("%d",f[n][k]);
return 0;
}
```
**不喜勿喷**
### 请勿抄袭

洛谷 P2401 不等数列的更多相关文章

  1. 洛谷 P2401 不等数列 题解

    每日一题 day25 打卡 Analysis dp[i][j]=dp[i-1][j-1]*(i-j)+dp[i-1][j]*(j+1); 其中i和j是表示前i个数中有j个小于号,j<=i-1 要 ...

  2. 洛谷P2401 不等数列 题解

    可食用的题目链接 题解: 有题目得:这个题有巧做法而不是暴力模拟.废话 这个题看着像一道dp,因为可以由前一种(数据更小的推出数据更大的)推出后一种. 我们设已经得到了n-1个数的总方法(1~n-1) ...

  3. 落谷 P2401 不等数列

    题目链接. Solution 状态设计 设 \(f_{i, j}\) 为 \(1\) 到 \(i\) 的排列,其中有 \(j\) 个 \(\text{'<'}\) 的方案数. 状态转移 尝试从 ...

  4. [洛谷P3228] [HNOI2013]数列

    洛谷题目链接:[HNOI2013]数列 题目描述 小T最近在学着买股票,他得到内部消息:F公司的股票将会疯涨.股票每天的价格已知是正整数,并且由于客观上的原因,最多只能为N.在疯涨的K天中小T观察到: ...

  5. 【洛谷 P1667】 数列 (贪心)

    题目链接 对于一个区间\([x,y]\),设这个区间的总和为\(S\) 那么我们在前缀和(设为\(sum[i]\))的意义上考虑到原操作其实就是\(sum[x−1]+=S\) , \(sum[x]+S ...

  6. 洛谷P1415 拆分数列[序列DP 状态 打印]

    题目背景 [为了响应党中央勤节俭.反铺张的精神,题目背景描述故事部分略去^-^] 题目描述 给出一列数字,需要你添加任意多个逗号将其拆成若干个严格递增的数.如果有多组解,则输出使得最后一个数最小的同时 ...

  7. 洛谷P1415 拆分数列(dp)

    题目链接:传送门 题目: 题目背景 [为了响应党中央勤节俭.反铺张的精神,题目背景描述故事部分略去^-^] 题目描述 给出一列数字,需要你添加任意多个逗号将其拆成若干个严格递增的数.如果有多组解,则输 ...

  8. 洛谷P1415 拆分数列

    题目背景 [为了响应党中央勤节俭.反铺张的精神,题目背景描述故事部分略去^-^] 题目描述 给出一列数字,需要你添加任意多个逗号将其拆成若干个严格递增的数.如果有多组解,则输出使得最后一个数最小的同时 ...

  9. 洛谷 P1415 拆分数列 解题报告

    拆分数列 题目背景 [为了响应党中央勤节俭.反铺张的精神,题目背景描述故事部分略去^-^] 题目描述 给出一列数字,需要你添加任意多个逗号将其拆成若干个严格递增的数. 如果有多组解,则输出使得最后一个 ...

随机推荐

  1. 批处理文件:windows下关闭指定端口

    @echo offsetlocal enabledelayedexpansionset /p port=please input port number:for /f "tokens=1-5 ...

  2. python使用

    1. ipython 打印所有的输出变量 from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast ...

  3. 深入研究Sphinx的底层原理和高级使用

    深入研究Sphinx的底层原理和高级使用

  4. 沉淀,再出发——安装windows10和ubuntu kylin15.04双系统心得体会

    安装windows10和ubuntu kylin15.04双系统心得体会 一.安装次序      很简单,两种安装次序,"先安装windows后安装linux:先安装linux后安装wind ...

  5. ElasticSearch 5.0.0 集群安装部署文档

    1.  搭建环境 3台物理机 操作系统 centos7 es1   192.168.31.141   4g内存   2核 es2   192.168.31.142   4g内存   2核 es3    ...

  6. Win10 部署 依赖 NET3.5 项目,报错 无法安装 NET3.5 ,该如何解决?

    下载 NetFx3.cab Cab 安装包 拷贝 NetFx3.cab 文件至 C:\Windows 目录 打开命令行窗口(管理员权限) 输入以下内容: dism /online /Enable-Fe ...

  7. onCreate源码分析

    原文地址Android面试题-onCreate源码都没看过,怎好意思说自己做android Activity扮演了一个界面展示的角色,堪称四大组件之首,onCreate是Activity的执行入口,都 ...

  8. Java中的return关键字

    Java常见面试题之一: try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?  请看下面程序就可以解释 ...

  9. 看eShopOnContainers学一个EventBus

    最近在看微软eShopOnContainers 项目,看到EventBus觉得不错,和大家分享一下 看完此文你将获得什么? eShop中是如何设计事件总线的 实现一个InMemory事件总线eShop ...

  10. 企业内部DNS跨国配置案例

    背景介绍:总公司与北京分公司均由总公司进行统一管理.总公司的主从DNS担任解析总公司服务器与北京分公司的服务器解析任务.总公司DNS委派其他两个公司管理自己域下的服务器解析任务.要求任何一个节点都能解 ...