此题算法:模拟。

题目概述

由题意可得,此题是让我们连接三种不同颜色的点,

要求同颜色的点距离大于等于 3 (每条边的距离为 1 ),

任意两个点至多连 1 条边,

问有多少种连接方案(答案需取模)。


Part 1 - 主要思路

首先,

因为:同颜色的点距离大于等于 3 ,

所以我们可以得出:

  • 显然,一个点不能与它同色的点相连;

  • 一个点不能同时与两个同色点相连。

综上,

只有 3 种连接方案—— a 与 b , b 与 c , a 与 c 。

且! 3 种连接方案都是独立的。

接着,我们就只用计算每两种颜色最多可以有多少种连接方案。


Part 2 - 计算方案

举一个栗子:求 a 与 b 连接的方案总数。

总数 = 从 a 与 b 中各挑 0 个的方案数 +
各挑 1 个的方案数 + 各挑 2 个的方案数 + ······ + 各挑 min(a,b)min (a, b)min(a,b) 的方案数 。

且,

从 a 与 b 中各挑 i 个方案数 = 从 a 中挑 i 个数的方案数 ∗*∗ 从 b 中挑 i 个数的方案数 ∗*∗ i 个数的排列情况总数。

这个, 不就是我们小学就学过的排列组合 + 阶乘吗?


Part 3 - 计算 + 完善

1 . 排列组合计算:

用二维数组 C[i][j]C[i][j]C[i][j] 来模拟组合的计算,

表示从 i 个里面挑 j 个数。

通过我们又在小学就学过的杨辉三角可以对数组 C 进行预处理,后面直接用即可。

特别注意:不要忘记还有从 0 个里面挑 0 个的情况,这个直接特殊处理,在最后的时候再加上即可。

2 . i 个数排列情况计算:

这个相对 1 来说就简单多了,情况总数 = i 的阶乘。

类似 1 里面的处理方法,我们用数组 jc (请原谅我的变量名) 进行预处理,后面直接用即可。

3 . 最终完善:

最后的答案就是三种情况的数量相乘,不要忘记取模!!!


最后的最后:

记得开 longlonglonglonglonglong 。


CodeCodeCode

#include<bits/stdc++.h>
using namespace std;#define int long long
int a, b, c;
const int Mod = 998244353;
const int maxn = 5005;
int jc[maxn];
int C[maxn][maxn];
int maxx;inline void jc_init ()
{jc[1] = 1;for (int i = 2; i <= maxx; i++) jc[i] = (jc[i - 1] * i) % Mod;
}inline void C_init ()
{C[0][0] = 1;for (int i = 1; i <= maxx; i++)for (int j = 0; j <= i; j++)C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % Mod;
}inline int calcu (int x, int y)
{int res = 1;int minn = min (x, y);for (int i = 1; i <= minn; i++)res = (res + C[x][i] * C[y][i] % Mod * jc[i] % Mod) % Mod;return res;
}signed main()
{scanf ("%lld%lld%lld", &a, &b, &c);maxx = max (a, max (b, c));jc_init ();C_init ();printf ("%lld\n", calcu (a, b) * calcu (b, c) % Mod * calcu (c, a) % Mod);return 0;
}

EndEndEnd

CF869C The Intriguing Obsession 题解相关推荐

  1. cf869C The Intriguing Obsession

    题解: 因为太菜了,没想出正解. 容易发现,三行间两两是独立的,最后乘起来就好了. 而两两间其实不难算,昨晚一直想dp去了,于是荒废半小时. 直接组合数学: ∑i=0min(n,m)CinCimi!\ ...

  2. CF869C The Intriguing Obsession

    题目链接:http://codeforces.com/contest/869/problem/C 题目大意: 有三种颜色(红蓝紫)的点 \(a, b, c\) 个,这些点之间可以用距离为\(1\)的边 ...

  3. CF869C:C. The Intriguing Obsession(组合数)

    C. The Intriguing Obsession time limit per test 1 second memory limit per test 256 megabytes input s ...

  4. codeforces 869C The Intriguing Obsession 组合数学,逆元

    codeforces 869C The Intriguing Obsession 题意 在三种颜色的群岛之间建造桥梁,每一种颜色分别有a,b,c 限制条件 1 相同颜色的岛之间的距离 d >= ...

  5. The Intriguing Obsession

    C. The Intriguing Obsession time limit per test 1 second memory limit per test 256 megabytes input s ...

  6. C. The Intriguing Obsession

    C. The Intriguing Obsession time limit per test 1 second memory limit per test 256 megabytes input s ...

  7. Codefrces 869C. The Intriguing Obsession

    C. The Intriguing Obsession - This is not playing but duty as allies of justice, Nii-chan! - Not all ...

  8. C. The Intriguing Obsession[组合数学]

    C. The Intriguing Obsession time limit per test 1 second memory limit per test 256 megabytes input s ...

  9. Codeforces Round #439 C.The Intriguing Obsession(组合数学)

    C. The Intriguing Obsession time limit per test1 secondmemory limit per test256 megabytesinputstanda ...

最新文章

  1. python 获取html js 变量_Python爬虫与反反爬虫实践
  2. cenos下安装MySQL最新版(5.7.18)记录。附卸载老版本过程
  3. multi-line comment In file
  4. Python的web相关及Django简介
  5. zabbix监控业务进程变动
  6. 【飞桨PaddleSpeech语音技术课程】— 多语言合成与小样本合成技术应用实践
  7. BDA,CDA,CPDA哪个证相对可靠?哪个含金量高?具体考试内容?
  8. python爬取新浪博客_Python爬取韩寒全部新浪博客
  9. 学习周刊-2021年第19周
  10. macz中提示:adb:commen not found
  11. 新年开工第一篇文章——推荐几个值得中小企业使用的ARM9/ARM11/Cortex A8处理器
  12. 讲讲React中的State和Props
  13. 健身管理系统 -健身管理软件模板
  14. Log4j2远程命令执行2-vulfocus-wp
  15. 简析交换机三种端口模式
  16. 怎么在bios中禁用独显
  17. 中国大学排名python爬虫_Python爬虫入门实例三之爬取软科中国大学排名
  18. 新手如何写一个好的项目描述文件
  19. MQL5教程6 K线数据相关
  20. Sparrow:分布式低延迟调度

热门文章

  1. B站疯狂破圈 “后浪”们将会把B站推向何处?​
  2. 在htmlfor循环制作菱形基础上制作空心菱形
  3. 外卖分销返佣分佣程序外卖cps小程序返利系统外卖项目优惠券返利
  4. MacOS图标文件 .icns 一键生成脚本
  5. Firefox流失近5000万用户,世界第三大浏览器正在消亡
  6. 最新视频连接解析地址
  7. JUC下的CountDownLatch,CyclicBarrier、Semaphore的使用方法
  8. 独家 | 放弃Jupyter Notebooks吧,教你如何用仪表板展示研究成果
  9. 关于网络游戏《诛仙》中9级铁玉赠送任务的思考
  10. 全自动爬虫,你爱了么