http://codeforces.com/contest/1204/problem/E

给定n个 1 m个 -1的全排

求所有排列的$f(a) = max(0,max_{1≤i≤l} \sum_{j=1}^{i} a_{j} )$之和

组合数,枚举

  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. typedef long long ll;
  6. const ll MOD = ;
  7.  
  8. int n, m;
  9. ll C[][];
  10. ll sum;
  11. ll realSum;
  12. ll ans;
  13.  
  14. void init()
  15. {
  16. for(int i=; i<=; i++) C[i][] = C[i][i] = ;
  17. for(int i=; i<=; i++)
  18. {
  19. for(int j=; j<i; j++)
  20. {
  21. C[i][j] = (C[i-][j-] + C[i-][j])%MOD;
  22. }
  23. }
  24. }
  25.  
  26. int main()
  27. {
  28. init();
  29. scanf("%d%d", &n, &m);
  30. for(int i=n; i>= && i>=n-m; i--)///枚举前缀和最大为i时
  31. {
  32. sum = (C[n+m][n-i] - realSum + MOD) % MOD;
    ///前缀和最大为i的排列个数,大概是说n+m中任选n-i个位置放多余的1,
    ///然后前i个位置放1,后面的位置放-1,此时前缀最大最小为i
  33. ans = (ans+(sum * i) % MOD)%MOD;
  34. realSum = (realSum + sum)%MOD;
  35. }
  36. printf("%lld\n", ans);
  37. }

E. Natasha, Sasha and the Prefix Sums的更多相关文章

  1. CodeForces 1204E"Natasha, Sasha and the Prefix Sums"(动态规划 or 组合数学--卡特兰数的应用)

    传送门 •参考资料 [1]:CF1204E Natasha, Sasha and the Prefix Sums(动态规划+组合数) •题意 由 n 个 1 和 m 个 -1 组成的 $C_{n+m} ...

  2. [CF1204E]Natasha,Sasha and the Prefix Sums 题解

    前言 本文中的排列指由n个1, m个-1构成的序列中的一种. 题目这么长不吐槽了,但是这确实是一道好题. 题解 DP题话不多说,直接状态/变量/转移. 状态 我们定义f表示"最大prefix ...

  3. CF1204E Natasha, Sasha and the Prefix Sums(组合数学)

    做法一 \(O(nm)\) 考虑\(f(i,j)\)为i个+1,j个-1的贡献 \(f(i-1,j)\)考虑往序列首添加一个\(1\),则贡献\(1\times\)为序列的个数:\(C(j+i-1,i ...

  4. CodeForces - 1204E Natasha, Sasha and the Prefix Sums (组合数学,卡特兰数扩展)

    题意:求n个1,m个-1组成的所有序列中,最大前缀之和. 首先引出这样一个问题:使用n个左括号和m个右括号,组成的合法的括号匹配(每个右括号都有对应的左括号和它匹配)的数目是多少? 1.当n=m时,显 ...

  5. CF1204E Natasha, Sasha and the Prefix Sums (卡塔兰数推理)

    题面 题解 把题意变换一下,从(0,0)走到(n,m),每次只能网右或往上走,所以假设最大前缀和为f(n),那么走的时候就要到达但不超过 y = x-f(n) 这条线, 我们可以枚举答案,然后乘上方案 ...

  6. Codeforces Round #581 (Div. 2)-E. Natasha, Sasha and the Prefix Sums-动态规划+组合数学

    Codeforces Round #581 (Div. 2)-E. Natasha, Sasha and the Prefix Sums-动态规划+组合数学 [Problem Description] ...

  7. 【题解】【数组】【Prefix Sums】【Codility】Genomic Range Query

    A non-empty zero-indexed string S is given. String S consists of N characters from the set of upper- ...

  8. 【题解】【数组】【Prefix Sums】【Codility】Passing Cars

    A non-empty zero-indexed array A consisting of N integers is given. The consecutive elements of arra ...

  9. Codeforces 837F Prefix Sums

    Prefix Sums 在 n >= 4时候直接暴力. n <= 4的时候二分加矩阵快速幂去check #include<bits/stdc++.h> #define LL l ...

随机推荐

  1. Vue 实现手动刷新组件

    Vue 实现手动刷新组件:https://www.jianshu.com/p/742142dc95f3

  2. vue axios应用

    编写小的demo应用axios异步请求. 效果图示: 功能: 用户在输入框中输入信息进行搜索,并搜索状态随之改变(四种状态). 项目目录: 代码: 1.index.html <!DOCTYPE ...

  3. Java Springboot 根据图片链接生成图片下载链接 及 多个图片打包zip下载链接

    现有一些图片在服务器上的链接,在浏览器中打开这些链接是直接显示在浏览器页面的形式. 现在需要生成这些图片的单独下载以及打包下载链接,即在浏览器中打开下载链接后弹出下载框提示下载.由于前端存在跨域问题, ...

  4. 增强 Jupyter Notebook的功能

    增强 Jupyter Notebook的功能 Jupyter Notebook 是所有开发者共享工作的神器,它为共享 Notebooks 提供了一种便捷方式:结合文本.代码和图更快捷地将信息传达给受众 ...

  5. Windows Server 2016 安装.NET Framework 3.5 错误

    WinServer2016默认安装.net 3.5会出现以下错误. 安装错误选择离线安装 Windows Server 2016离线安装.NET Framework 3.5方式有多种下面介绍2种: 一 ...

  6. 023-OpenStack 创建实例类型临时磁盘的讲解

    临时磁盘占用的那块磁盘的空间查看 [root@linux-node1 dev]# fdisk -l 磁盘 /dev/sdb:26.8 GB, 26843545600 字节,52428800 个扇区 U ...

  7. L3-002 特殊堆栈 (30 分)

    大家都知道“堆栈”是一种“先进后出”的线性结构,基本操作有“入栈”(将新元素插入栈顶)和“出栈”(将栈顶元素的值返回并从堆栈中将其删除).现请你实现一种特殊的堆栈,它多了一种操作叫“查中值”,即返回堆 ...

  8. qt02 textEdit

    1.向QTextEdit中当前光标位置添加一行字符串message ui.messageTextEdit->textCursor().insertText(message+"\n&qu ...

  9. 安装了vs2019 编译node-sass node-gyp 找不到编译器的解决方法

    1 新建powershell脚本文件 <# This is a workaround for "node-gyp is unable to find msbuild if VS2019 ...

  10. Zookeeper学习笔记(中)

    Zookeeper学习笔记(中) Zookeeper的基本原理和基本实现 深入了解ZK的基本原理 ZK的一致性: ZAB 协议: Zookeeper 原子消息广播协议 ZK通过选举保证 leader ...