博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 451E Devu and Flowers(容斥原理)
阅读量:5800 次
发布时间:2019-06-18

本文共 995 字,大约阅读时间需要 3 分钟。

题目大意:有n个花坛。要选s支花,每一个花坛有f[i]支花。同一个花坛的花颜色同样,不同花坛的花颜色不同,问说能够有多少种组合。

解题思路:2n的状态,枚举说那些花坛的花取超过了,剩下的用C(n1sum+n1)隔板法计算个数。注意奇数的位置要用减的。偶数的位置用加的。容斥原理。

#include 
#include
#include
#include
using namespace std;typedef long long ll;//ll n, m, p;ll qPow (ll a, ll k, ll p) { ll ans = 1; while (k) { if (k&1) ans = (ans * a) % p; a = (a * a) % p; k /= 2; } return ans;}ll C (ll a, ll b, ll p) { if (a < b) return 0; if (b > a - b) b = a - b; ll up = 1, down = 1; for (ll i = 0; i < b; i++) { up = up * (a-i) % p; down = down * (i+1) % p; } return up * qPow(down, p-2, p) % p; // 逆元}ll lucas (ll a, ll b, ll p) { if (b == 0) return 1; return C(a%p, b%p, p) * lucas(a/p, b/p, p) % p;}const int maxn = 25;const ll mod = 1e9+7;int n;ll s, f[maxn];ll solve () { ll ans = 0; for (int i = 0; i < (1<

版权声明:本文博主原创文章,博客,未经同意不得转载。

你可能感兴趣的文章
如何用纯 CSS 为母亲节创作一颗像素画风格的爱心
查看>>
Linux基础命令---rmdir
查看>>
优秀程序员共有的7种优秀编程习惯
查看>>
iOS sqlite3(数据库)
查看>>
粤出"飞龙",打造新制造广东样本
查看>>
编玩边学获数千万元A轮融资,投资方为君联资本
查看>>
开发者论坛一周精粹(第五十五期) 全站HTTPS之OSS教程 一次可以备案几个网站?...
查看>>
(干货)Linux学习资源推荐
查看>>
蓝图(Blueprint)详解
查看>>
Spark之SQL解析(源码阅读十)
查看>>
Android图片添加水印图片并把图片保存到文件存储
查看>>
C#字符串的不变性
查看>>
前端路由简介以及vue-router实现原理
查看>>
比特币系统采用的公钥密码学方案和ECDSA签名算法介绍——第二部分:代码实现(C语言)...
查看>>
分享15款很实用的 Sass 和 Compass 工具
查看>>
AMD优势: 与众不同 选择丰富
查看>>
玩转高性能超猛防火墙nf-HiPAC
查看>>
简单按日期查询mysql某张表中的记录数
查看>>
自动化部署之jenkins发布PHP项目
查看>>
C/C++编程可用的Linux自带工具
查看>>