CF869C The Intriguing Obsession 题解
此题算法:模拟。
题目概述
由题意可得,此题是让我们连接三种不同颜色的点,
要求同颜色的点距离大于等于 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 题解相关推荐
- cf869C The Intriguing Obsession
题解: 因为太菜了,没想出正解. 容易发现,三行间两两是独立的,最后乘起来就好了. 而两两间其实不难算,昨晚一直想dp去了,于是荒废半小时. 直接组合数学: ∑i=0min(n,m)CinCimi!\ ...
- CF869C The Intriguing Obsession
题目链接:http://codeforces.com/contest/869/problem/C 题目大意: 有三种颜色(红蓝紫)的点 \(a, b, c\) 个,这些点之间可以用距离为\(1\)的边 ...
- CF869C:C. The Intriguing Obsession(组合数)
C. The Intriguing Obsession time limit per test 1 second memory limit per test 256 megabytes input s ...
- codeforces 869C The Intriguing Obsession 组合数学,逆元
codeforces 869C The Intriguing Obsession 题意 在三种颜色的群岛之间建造桥梁,每一种颜色分别有a,b,c 限制条件 1 相同颜色的岛之间的距离 d >= ...
- The Intriguing Obsession
C. The Intriguing Obsession time limit per test 1 second memory limit per test 256 megabytes input s ...
- C. The Intriguing Obsession
C. The Intriguing Obsession time limit per test 1 second memory limit per test 256 megabytes input s ...
- Codefrces 869C. The Intriguing Obsession
C. The Intriguing Obsession - This is not playing but duty as allies of justice, Nii-chan! - Not all ...
- C. The Intriguing Obsession[组合数学]
C. The Intriguing Obsession time limit per test 1 second memory limit per test 256 megabytes input s ...
- Codeforces Round #439 C.The Intriguing Obsession(组合数学)
C. The Intriguing Obsession time limit per test1 secondmemory limit per test256 megabytesinputstanda ...
最新文章
- python 获取html js 变量_Python爬虫与反反爬虫实践
- cenos下安装MySQL最新版(5.7.18)记录。附卸载老版本过程
- multi-line comment In file
- Python的web相关及Django简介
- zabbix监控业务进程变动
- 【飞桨PaddleSpeech语音技术课程】— 多语言合成与小样本合成技术应用实践
- BDA,CDA,CPDA哪个证相对可靠?哪个含金量高?具体考试内容?
- python爬取新浪博客_Python爬取韩寒全部新浪博客
- 学习周刊-2021年第19周
- macz中提示:adb:commen not found
- 新年开工第一篇文章——推荐几个值得中小企业使用的ARM9/ARM11/Cortex A8处理器
- 讲讲React中的State和Props
- 健身管理系统 -健身管理软件模板
- Log4j2远程命令执行2-vulfocus-wp
- 简析交换机三种端口模式
- 怎么在bios中禁用独显
- 中国大学排名python爬虫_Python爬虫入门实例三之爬取软科中国大学排名
- 新手如何写一个好的项目描述文件
- MQL5教程6 K线数据相关
- Sparrow:分布式低延迟调度
热门文章
- B站疯狂破圈 “后浪”们将会把B站推向何处?​
- 在htmlfor循环制作菱形基础上制作空心菱形
- 外卖分销返佣分佣程序外卖cps小程序返利系统外卖项目优惠券返利
- MacOS图标文件 .icns 一键生成脚本
- Firefox流失近5000万用户,世界第三大浏览器正在消亡
- 最新视频连接解析地址
- JUC下的CountDownLatch,CyclicBarrier、Semaphore的使用方法
- 独家 | 放弃Jupyter Notebooks吧,教你如何用仪表板展示研究成果
- 关于网络游戏《诛仙》中9级铁玉赠送任务的思考
- 全自动爬虫,你爱了么