码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 214. Devu和鲜花


    214. Devu和鲜花 - AcWing题库

    a_{1}+a_{2}+a_{3}+...+a_n = m

    如果每个盒子里的花的数量是无限的,用隔板法可以得出答案是 C_{n + m - 1}^{n - 1}

    现在每个盒子中区的花数要满足n个条件a_i<=A_i

    我们可以求答案的补集,用全部方案数减去补集方案数

    每一个不符合条件的要求为a_i>A_i,设为Bi

    补集方案数为\sum B_i-\sum (B_i\bigcap B_j ) + ...就成了一个容斥原理

    对于一个不符合要求的是C_{n+m-1-(a_i+1)}^{n-1},这就相当于先把ai+1个减了再用隔板法

    多个以此类推

    1. #include
    2. #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    3. #define endl '\n'
    4. using namespace std;
    5. typedef pair<int, int> PII;
    6. typedef long long ll;
    7. typedef long double ld;
    8. const int N = 30, mod = 1e9 + 7;
    9. ll n, m;
    10. ll A[N];
    11. int down = 1;
    12. int qmi(int a, int k)
    13. {
    14. int res = 1;
    15. while(k)
    16. {
    17. if(k & 1)res = (ll)res * a % mod;
    18. a = (ll)a * a % mod;
    19. k >>= 1;
    20. }
    21. return res;
    22. }
    23. int C(ll a, ll b)
    24. {
    25. if(a < b)return 0;
    26. ll up = 1;
    27. for(ll i = a; i > a - b; i --)
    28. up = i % mod * up % mod;
    29. return up * down % mod;
    30. }
    31. int main()
    32. {
    33. IOS
    34. cin >> n >> m;
    35. for(int i = 0; i < n; i ++)cin >> A[i];
    36. for(int i = 2; i <= n - 1; i ++)
    37. down = (ll)down * i % mod;
    38. down = qmi(down, mod - 2);
    39. int num = 1 << n;
    40. ll ans = 0;
    41. for(int i = 0; i < num; i ++)
    42. {
    43. ll a = m + n - 1, b = n - 1;
    44. int cnt = 0;
    45. for(int j = 0; j < n; j ++)
    46. {
    47. if(i >> j & 1)
    48. {
    49. a -= A[j] + 1;
    50. cnt ++;
    51. }
    52. }
    53. if(cnt & 1)ans = (ans - C(a, b)) % mod;
    54. else ans = (ans + C(a, b)) % mod;
    55. }
    56. cout << (ans + mod) % mod;
    57. return 0;
    58. }

  • 相关阅读:
    我成功创建了一个Electron应用程序
    极限多标签学习之-FastXML运行和评价EUR-Lex4k数据集
    仿英雄联盟网页HTML代码 学生网页设计与制作期末作业下载 大学生网页设计与制作成品下载 DW游戏介绍网页作业代码下载
    Python钢筋混凝土结构计算.pdf-T001-混凝土强度设计值
    【Java中23种设计模式-单例模式2--懒汉式2线程安全】
    Vue_生命周期函数
    《Python编程:从入门到实践》第九章练习题
    解决Windows系统win+shift+s截图快捷键失效问题
    YOLO目标检测——交通标志数据集+已标注voc和yolo格式标签下载分享
    如何裁剪视频画面尺寸?快把这些方法收好
  • 原文地址:https://blog.csdn.net/a1695574118/article/details/133914302
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号