/*
显然用dp[i][j]来表示i个1,j个-1的结果
dp[i][j]由dp[i-1][j]和dp[i][j-1]转移而来
即dp[i][j]对应的所有序列,都可以由dp[i-1][j]在前面加一个1或dp[i][j-1]在前面加一个-1得到,
这里加在前面是因为更容易统计 考虑1加在前面,那么对于任意一种(i-1,j)的排列,贡献都+1,C(i-1+j,j)
考虑-1加在前面,那么对于某些(i,j-1)的排列,贡献-1
考虑哪些不需要,前缀中-1的个数始终大于1的序列本来答案就是0,因此不需要-1 预处理这样的序列个数
f[i][j]表示有i个1,j个-1时,前缀-1数量大于1的序列个数
f[i][j]的来源有两种f[i][j-1],f[i-1][j]
对于f[i][j]的每种序列,都可以由 f[i][j-1] 后加一个-1,或者 f[i-1][j]后面加一个1得到
初始值:f[o][j]=1,f[i][j]=0,i>j
*/
#include <bits/stdc++.h>
#define N 2010
#define mod 998244853
#define For(i,x,y) for(int i=(x);i<=(y);++i)
#define Rof(i,x,y) for(int i=(x);i>=(y);--i)
using namespace std; int C[N<<][N<<],dp[N][N],k[N][N]; inline int add(int x,int y){ return x+y>=mod?x+y-mod:x+y; }
inline int mns(int x,int y){ return x-y<?x-y+mod:x-y; }
int main(){
int n,m;
scanf("%d%d",&n,&m);
For(i,,n+m){
C[i][]=;
For(j,,i) C[i][j]=add(C[i-][j],C[i-][j-]);
}
For(i,,m) k[][i]=;
For(i,,n) For(j,i,m) k[i][j]=add(k[i-][j],k[i][j-]);
For(i,,n) dp[i][]=i;
For(i,,n)
For(j,,m)
dp[i][j]=add(add(dp[i-][j],C[i+j-][j]),mns(dp[i][j-],mns(C[i+j-][i],k[i][j-])));
cout<<dp[n][m];
}

序列递推——cf1204E(好题)的更多相关文章

  1. [luogu2501 HAOI2006] 数字序列 (递推LIS)

    题目描述 现在我们有一个长度为n的整数序列A.但是它太不好看了,于是我们希望把它变成一个单调严格上升的序列.但是不希望改变过多的数,也不希望改变的幅度太大. 输入输出格式 输入格式: 第一行包含一个数 ...

  2. hdu 1465:不容易系列之一(递推入门题)

    不容易系列之一 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  3. Luogu5110 块速递推

    题面 题解 线性常系数齐次递推sb板子题 $a_n=233a_{n-1}+666a_{n-2}$的特征方程为 $$ x^2=233x+666 \\ x^2-233x+666=0 \\ x_1=\fra ...

  4. poj 3744 Scout YYF I(递推求期望)

    poj 3744 Scout YYF I(递推求期望) 题链 题意:给出n个坑,一个人可能以p的概率一步一步地走,或者以1-p的概率跳过前面一步,问这个人安全通过的概率 解法: 递推式: 对于每个坑, ...

  5. 【第53套模拟题】【递推】【RMQ】【二进制】【分块】

    题目:(开始自己描述题目了...) 第一题大意: 求1~n的所有排列中逆序对为k个的方案数,输出方案数%10000,n<=1000. 解:这道题一个递推,因为我基本上没怎么自己做过递推,所以推了 ...

  6. HYSBZ(BZOJ) 4300 绝世好题(位运算,递推)

    HYSBZ(BZOJ) 4300 绝世好题(位运算,递推) Description 给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<= ...

  7. 51nod 1126 求递推序列的第N项

    1126 求递推序列的第N项  基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 有一个序列是这样定义的:f(1) = 1, f(2) = 1, f( ...

  8. NBUT比赛 方格规律递推题

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=26901#problem/A 题意:有一个 2*n的格子里,你可以选择任意一个格 ...

  9. 第46套题【STL】【贪心】【递推】【BFS 图】

    已经有四套题没有写博客了.今天改的比较快,就有时间写.今天这套题是用的图片的形式,传上来不好看,就自己描述吧. 第一题:单词分类 题目大意:有n个单词(n<=10000),如果两个单词中每个字母 ...

随机推荐

  1. location优先级

    location优先级 location优先级 location /img # 直接匹配 location /img { index index.html } location = /img # 精确 ...

  2. 兼容iphone x刘海的正确姿势

    在 ios 11 中我们可以使用 viewport-fit=cover + safe-area-inset-*. 那么是不是 ios11 以下就用不了这些了呢?是的,但你见过 iphone x+ 有 ...

  3. svn提交代码失败提示清理(清理失败并且报错信息乱码解决办法)

    原因是;svn的数据库队列原因 1,下载sqlite3.exe,  sqlite官网http://www.sqlite.org/download.html) 2.在Windows的D盘中新建tools ...

  4. div绝对居中、宽高自适应、多栏宽度自适应

    <style> body { background-color: #e1ddd9; font-size: 12px; font-family: Verdana, Arial, Helvet ...

  5. JS制作二级联动

    JS制作二级联动 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

  6. 几个常见的漏洞(xss攻击 cookie未清除 nginx信息泄露)与处理方法

    项目在安全检查中发现很多问题,要求整改,其中就有最常见的xss攻击 漏洞描述 渗透测试人员检测到网站筛选框均存在反射型跨站脚本攻击,例如: "><script>alert( ...

  7. Windows IO System

    Windows IO System是由一些executive components组成,这些component可以认为是ntoskrnl.exe中相对独立的一些module. 整个IO System是 ...

  8. python学习笔记:循环语句——while、for

    python中有两种循环,while和for,两种循环的区别是,while循环之前,先判断一次,如果满足条件的话,再循环,for循环的时候必须有一个可迭代的对象,才能循环,比如说得有一个数组.循环里面 ...

  9. PAT甲级——A1150 TravellingSalesmanProblem【25】

    The "travelling salesman problem" asks the following question: "Given a list of citie ...

  10. Java 实例 - 方法重载

    先来看下方法重载(Overloading)的定义:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载. 具体说明如下: 方法名相同 方法的参数类型,个数顺序至少有一项不同 ...