Codeforces 1288C - Two Arrays
题目大意:
给定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的更多相关文章
- codeforces 1288C. Two Arrays(dp)
链接:https://codeforces.com/contest/1288/problem/C C. Two Arrays 题意:给定一个数n和一个数m,让构建两个数组a和b满足条件,1.数组中所有 ...
- 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 ...
- Codeforces 893E - Counting Arrays
893E - Counting Arrays 思路:质因子分解. 对于每个质因子,假设它有k个,那么求把它分配到y个数上的方案数. 相当于把k个小球分配到y个盒子里的方案数. 这个问题可以用隔板法(插 ...
- Codeforces 915G Coprime Arrays 莫比乌斯反演 (看题解)
Coprime Arrays 啊,我感觉我更本不会莫比乌斯啊啊啊, 感觉每次都学不会, 我好菜啊. #include<bits/stdc++.h> #define LL long long ...
- codeforces 1140E Palindrome-less Arrays
题目链接:http://codeforces.com/contest/1140/problem/E 题目大意: 如果一个数组的存在一个奇数长的回文就不好. 不是不好的数组是好的. 你可以把-1用1到k ...
- Codeforces 893E Counting Arrays:dp + 线性筛 + 分解质因数 + 组合数结论
题目链接:http://codeforces.com/problemset/problem/893/E 题意: 共q组数据(q <= 10^5),每组数据给定x,y(x,y <= 10^6 ...
- 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 ...
- Vasya and Beautiful Arrays CodeForces - 354C (数论,枚举)
Vasya and Beautiful Arrays CodeForces - 354C Vasya's got a birthday coming up and his mom decided to ...
- 【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) ...
随机推荐
- Spark RDD 算子总结
Spark算子总结 算子分类 Transformation(转换) 转换算子 含义 map(func) 返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成 filter(func) ...
- junit基础学习之-测试service层(3)
测试步骤: 在之前的文章中已经加了junit的环境,这就不需要了. 1.加载junit类,spring配置文件,指明junit测试器,@Runwith 2.定义变量,service,不可以使用spri ...
- K8S Kubernetes 简单介绍 转自 http://time-track.cn/kubernetes-trial.html Kubernetes初体验
这段时间学习了一下 git jenkins docker 最近也在看 Kubernetes 感觉写得很赞 也是对自己对于K8S 有了进一步得理解 感谢 倪 大神得Blog 也希望看到这篇Bl ...
- 【转】Selenium 利用javascript 控制滚动条
http://luyongxin88.blog.163.com/blog/static/92558072011101913013149/ < xmlnamespace prefix =" ...
- Cobalt Strike简单使用(9,29第十五天)
本文转自:https://www.cnblogs.com/yuanshu/p/11616657.html 一.介绍: 后渗透测试工具,基于Java开发,适用于团队间协同作战,简称“CS”. CS分为客 ...
- 21 ~ express ~ 前台内容分类展示
一,前台 , views/main/index.html ,通过get传送给后台 思路 : 将栏目ID 传递给后台,后台根据 栏目的ID 返回相应的数据 {% if category == '' ...
- stm32cube 安装 patch
首先正常安装芯片包,然后在设置里面找到当前包存放的位置,默认是: C:\Users\Administrator\STM32Cube\Repository 然后解压 更新包,把更新包里面的文件覆盖到 C ...
- opencv vs2013提示缺少Qedit.h问题
#pragma include_alias( "dxtrans.h", "qedit.h" ) #define __IDxtCompositor_INTERFA ...
- kubelet组件详解---链接
https://blog.csdn.net/jettery/article/details/78891733
- PHP SeasLog实现高性能日志记录
https://www.jianshu.com/p/b5c01eb49df0 windows 安装 注意查看上面的信息 我标注了几个关键点 然后下载自己对应的 https://windows.php ...