「HAOI2011」Problem c

传送门

由于这道题本人讲得不好,可以参考这位dalao的博客

我可就直接上代码了。。。

参考代码:

  1. /*--------------------------------
  2. Code name: D.cpp
  3. Author: The Ace Bee
  4. This code is made by The Ace Bee
  5. --------------------------------*/
  6. #include <cstdio>
  7. #include <cstring>
  8. #define int long long
  9. #define rg register
  10. #define file(x) \
  11. freopen(x".in", "r", stdin); \
  12. freopen(x".out", "w", stdout);
  13. const int $ = 333;
  14. inline int read() {
  15. int s = 0; bool f = false; char c = getchar();
  16. while (c < '0' || c > '9') f |= (c == '-'), c = getchar();
  17. while (c >= '0' && c <= '9') s = (s << 3) + (s << 1) + (c ^ 48), c = getchar();
  18. return f ? -s : s;
  19. }
  20. int n, m, mod;
  21. int c[$][$], cnt[$], sum[$], f[$][$];
  22. inline void getc() {
  23. c[0][0] = 1;
  24. for (rg int i = 1; i <= n; ++i) {
  25. c[i][0] = 1;
  26. for (rg int j = 1; j <= i; ++j)
  27. c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % mod;
  28. }
  29. }
  30. inline void plus(int& a, int b) { a = (a + b) % mod; }
  31. signed main() {
  32. // file("D");
  33. for (rg int T = read(); T; --T) {
  34. memset(cnt, 0, sizeof cnt);
  35. memset(f, 0, sizeof f);
  36. n = read(), m = read(), mod = read();
  37. getc();
  38. for (rg int i = 1; i <= m; ++i) read(), ++cnt[read()];
  39. sum[0] = n - m;
  40. bool flag = true;
  41. for (rg int i = 1; i <= n; ++i) {
  42. sum[i] = 1ll * cnt[i] + 1ll * sum[i - 1];
  43. if (sum[i] < i) { flag = false; break; }
  44. }
  45. if (!flag) { puts("NO"); continue; }
  46. f[0][0] = 1;
  47. for (rg int i = 1; i <= n; ++i)
  48. for (rg int j = i; j <= sum[i]; ++j)
  49. for (rg int k = cnt[i]; j - k >= i - 1; ++k)
  50. plus(f[i][j], 1ll * f[i - 1][j - k] * c[sum[i - 1] - j + k][k - cnt[i]]);
  51. printf("YES %lld\n", f[n][n]);
  52. }
  53. return 0;
  54. }

「HAOI2011」Problem c的更多相关文章

  1. BZOJ2301/LG2522 「HAOI2011」Problem B 莫比乌斯反演 数论分块

    问题描述 BZOJ2301 LG2522 积性函数 若函数 \(f(x)\) 满足对于任意两个最大公约数为 \(1\) 的数 \(m,n\) ,有 \(f(mn)=f(m) \times f(n)\) ...

  2. loj#2483. 「CEOI2017」Building Bridges 斜率优化 cdq分治

    loj#2483. 「CEOI2017」Building Bridges 链接 https://loj.ac/problem/2483 思路 \[f[i]=f[j]+(h[i]-h[j])^2+(su ...

  3. loj2353. 「NOI2007」 货币兑换

    loj2353. 「NOI2007」 货币兑换 链接 https://loj.ac/problem/2353 思路 题目不重要,重要的是最后一句话 提示 输入文件可能很大,请采用快速的读入方式. 必然 ...

  4. LibreOJ 2003. 「SDOI2017」新生舞会 基础01分数规划 最大权匹配

    #2003. 「SDOI2017」新生舞会 内存限制:256 MiB时间限制:1500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据   题目描述 ...

  5. LoibreOJ 2042. 「CQOI2016」不同的最小割 最小割树 Gomory-Hu tree

    2042. 「CQOI2016」不同的最小割 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据   题目描述 ...

  6. LibreOJ #2006. 「SCOI2015」小凸玩矩阵 二分答案+二分匹配

    #2006. 「SCOI2015」小凸玩矩阵 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据   题目描述 ...

  7. 「NOI2018」你的名字

    「NOI2018」你的名字 题目描述 小A 被选为了\(ION2018\) 的出题人,他精心准备了一道质量十分高的题目,且已经 把除了题目命名以外的工作都做好了. 由于\(ION\) 已经举办了很多届 ...

  8. tyvj P2018 「Nescafé26」小猫爬山 解题报告

    P2018 「Nescafé26」小猫爬山 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 Freda和rainbow饲养了N只小猫,这天,小猫们要去爬山.经 ...

  9. LOJ #2585. 「APIO2018」新家

    #2585. 「APIO2018」新家 https://loj.ac/problem/2585 分析: 线段树+二分. 首先看怎样数颜色,正常的时候,离线扫一遍右端点,每次只记录最右边的点,然后查询左 ...

随机推荐

  1. winform中的DataGridView的列宽设置

    DataGridView有一个属性AutoSizeColumnMode,他有很多枚举值: 1.AllCells 调整列宽,以适合该列中的所有单元格的内容,包括标题单元格.  2.AllCellsExc ...

  2. Maven快速创建SpringMVC web(1)

     Maven快速创建SpringMVC web工程详解  转自:http://blog.csdn.net/cndmss/article/details/52184836

  3. Linux /dev/sda1磁盘满了,清理办法

    转:https://blog.csdn.net/h_8410435/article/details/86303995 查看内存使用情况 df -lh Filesystem      Size  Use ...

  4. MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 区别与使用场合

    normal 普通索引   unique 唯一的,不允许重复的索引 该字段信息保证不会重复例如身份证号用作索引时,可设置为unique full textl 全文搜索的索引 FULLTEXT 用于搜索 ...

  5. ora 01704 字符串文字太长

    分析sql执行失败的原因,在于没有强制指定插入字符串为clob类型,解析sql时,oracle会把插入的字符串作为 “字符串类型”处理,由于oracle有最大字符串限制(不超过4000个字符),所以会 ...

  6. python 中对list去重

    本文去重的前提是要保证顺序不变,本文给出了多种实现方法,需要的朋友可以参考下 1.直观方法 最简单的思路就是: ids = [1,2,3,3,4,2,3,4,5,6,1] news_ids = [] ...

  7. Spring基础篇——通过Java注解和XML配置装配bean(转载)

      作者:陈本布衣 出处:http://www.cnblogs.com/chenbenbuyi 本文版权归作者和博客园共有,欢迎转载分享,但必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留 ...

  8. Laravel Vuejs 实战:开发知乎 (2)用户登录

    1.安装一个给用户提示的扩展包: 二选一: https://github.com/laracasts/flash [我选的这个]https://github.com/oanhnn/laravel-fl ...

  9. 【MySQL】数据类型之字符相关

    " 目录 字符类型 char类型 varchar类型 实测 总结 枚举类型与集合类型 字符类型 官网:https://dev.mysql.com/doc/refman/5.7/en/char ...

  10. java 工程idea 添加依赖几种方式:

    1.add jar and dependecy derictory: 2.add Libary: 点击new library 选取java: 选择libs文件夹作为library: 选择 maven ...