题目大意:

给定n和m,有两个数组,两个数组的长度都等于m

数组内每个元素都在1到n中

对于两个数组对应的位置i,必须满足a[i]<=b[i]

a数组必须是不下降的序列

b数组必须是不上升的序列

求有多少种ab数组的排列方案满足上述题意

解题思路:

因为a不下降,b不上升,所以a总体呈上升趋势(或趋平),b总体呈下降趋势(或趋平)

所以只要满足a[m]<=b[m]即可让这个序列方案满足题意

或者说,将a数组左右对称后拼接在b数组后面,使得整个数组完全呈严格下降趋势的时候,即可满足题意

因此进行动态规划,令dp[i][j]表示第i个元素值为j时的方案数

对于整个数组全是最大值n的情况,显而易见只有一种方案数,所以dp[1~2m][n]=1

其后,第一个元素值为j时,方案数明显只有1;第i个元素值为j时,方案数为第i-1个元素为j时的方案数加上第i个元素为j+1时的方案数相加得到

故得到状态转移方程为

dp[i][j]=dp[i-1][j]+dp[i][j+1]

最后取答案时,累加dp[2m][1~n]的所有方案数即可

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=;
ll dp[][];
int main(){
ios::sync_with_stdio();
cin.tie();cout.tie();
ll n,m,i,j,ans=;
cin>>n>>m;
for(i=;i<=*m;i++)
dp[i][n]=;
for(j=n-;j;j--){
dp[][j]=;
for(i=;i<=*m;i++)
dp[i][j]=(dp[i-][j]+dp[i][j+])%mod;
}
for(j=n;j;j--)
ans=(ans+dp[*m][j])%mod;
cout<<ans; return ;
}

Codeforces 1288C - Two Arrays的更多相关文章

  1. codeforces 1288C. Two Arrays(dp)

    链接:https://codeforces.com/contest/1288/problem/C C. Two Arrays 题意:给定一个数n和一个数m,让构建两个数组a和b满足条件,1.数组中所有 ...

  2. Codeforces 1090D - Similar Arrays - [思维题][构造题][2018-2019 Russia Open High School Programming Contest Problem D]

    题目链接:https://codeforces.com/contest/1090/problem/D Vasya had an array of n integers, each element of ...

  3. Codeforces 893E - Counting Arrays

    893E - Counting Arrays 思路:质因子分解. 对于每个质因子,假设它有k个,那么求把它分配到y个数上的方案数. 相当于把k个小球分配到y个盒子里的方案数. 这个问题可以用隔板法(插 ...

  4. Codeforces 915G Coprime Arrays 莫比乌斯反演 (看题解)

    Coprime Arrays 啊,我感觉我更本不会莫比乌斯啊啊啊, 感觉每次都学不会, 我好菜啊. #include<bits/stdc++.h> #define LL long long ...

  5. codeforces 1140E Palindrome-less Arrays

    题目链接:http://codeforces.com/contest/1140/problem/E 题目大意: 如果一个数组的存在一个奇数长的回文就不好. 不是不好的数组是好的. 你可以把-1用1到k ...

  6. Codeforces 893E Counting Arrays:dp + 线性筛 + 分解质因数 + 组合数结论

    题目链接:http://codeforces.com/problemset/problem/893/E 题意: 共q组数据(q <= 10^5),每组数据给定x,y(x,y <= 10^6 ...

  7. Educational Codeforces Round 6 D. Professor GukiZ and Two Arrays 二分

    D. Professor GukiZ and Two Arrays 题目连接: http://www.codeforces.com/contest/620/problem/D Description ...

  8. Vasya and Beautiful Arrays CodeForces - 354C (数论,枚举)

    Vasya and Beautiful Arrays CodeForces - 354C Vasya's got a birthday coming up and his mom decided to ...

  9. 【CodeForces】915 G. Coprime Arrays 莫比乌斯反演,前缀和,差分

    Coprime Arrays CodeForces - 915G Let's call an array a of size n coprime iff gcd(a1, a2, ..., *a**n) ...

随机推荐

  1. Sqlserver 增删改查----改

    --我们就以院系,班级,学生来举例. create TABLE [dbo].YuanXi ( Id ,) NOT NULL,--学校id 自增量 YuanXiName varchar() null, ...

  2. Spring 事件(1)- 内置事件

    Spring 系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of ...

  3. PGSQL基本操作语句

    ; --更新数据 ,,) ; --插入数据 ORDER BY app_name,flag asc/desc ; --查询数据并且排序 offset ; --查询起点0开始查询,返回5条数据 ORDER ...

  4. 第一篇web框架

    第一篇web框架 http协议 web应用和web框架 主 文 http协议 HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维 ...

  5. 高级js 变量提升以及自由变量

    Q首先一道题 if(false){ var a = 1; } console.log(a); //undefined //我以为输出ReferenceError: aa is not defined ...

  6. EUI库 - EXML

        EXML是可以运行时加载解析的   <e:Skin class="skins.ButtonSkin" states="up,down,disabled&qu ...

  7. jquery特效 - 网站水波纹

    1,index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  8. 算法5:队列——解密 QQ 号

    新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问 QQ 号,小哈当然不会直接告诉小哼啦,原因嘛你懂的.所以小哈给了小哼一串加密过的数字,同时小哈也告诉了小哼解密规则.规则是这样的 ...

  9. mui下拉刷新 上拉加载

    a页面是父页面   b页面是子页面 在b页 html+ js+ 下拉和上拉执行的函数就不贴了 .在这个过程中还遇到了个问题就是刷新的图标偏上 需要改变其高度,需要在a页面里面去改变刷新图标的样式 本文 ...

  10. Vulkan SDK 之 Instance

    上一篇 Vulkan SDK Demo 熟悉 粗略的了解了下,一个app是如何调用vulkan的api来展示一个立方体的,但是对其中的每一个api了解并不深刻,后面的系列会根据sample的tutor ...