[codefoces439C]The Intriguing Obsession(组合数学)
来源:互联网 发布:mac os x 10.11黑苹果 编辑:程序博客网 时间:2024/06/06 12:45
C题:
我是超链接
题解:
第一步:考虑至少3意味着什么?
“它们之间最短的距离至少是3”,意思是不能是1或2。距离不能是1,意思是没有两个颜色相同的岛屿可以直接连接。距离不可能是2,这意味着每个岛屿,不能连接两个颜色相同的岛屿。
第二步:把图分成3部分。
红色岛屿和蓝色岛屿之间的桥梁与红色和紫色岛屿之间的桥梁没有任何关系。因此,我们可以把这张图分成3部分:红色和蓝色,蓝色和紫色,红色和紫色。
有红色的岛屿A和蓝色的岛屿B,他们之间有K座桥,答案将是。所以,红色和蓝色之间的桥梁,答案应该是
因此,最终的答案应该是ans1 * ans2 * ans3
你能计算出它O(n^2)强力(翻译666)。你也可以把它做成O(n)。
图析:
细节:哇这个模数是个大质数!求逆元就直接a^(p-2);不要忘记还可以
代码:
#include <cstdio>#include <iostream>#define LL long long using namespace std;const int mod=998244353;LL mul[5005],inv[5005];LL ksm(LL a,LL k){ LL ans=1; for (;k;k>>=1,a=a*a%mod) if (k&1) ans=ans*a%mod; return ans;}void init(){ mul[0]=mul[1]=1;inv[0]=inv[1]=1; for (int i=2;i<=5000;i++) { mul[i]=mul[i-1]*i%mod; inv[i]=ksm(mul[i],mod-2); }}LL C(int n,int m){ if (m>n) return 0; return mul[n]*inv[n-m]%mod*inv[m]%mod;}int main(){ int a,b,c,k;LL ans1=0,ans2=0,ans3=0; scanf("%d%d%d",&a,&b,&c); init(); for (k=0;k<=min(a,b);k++) ans1=(ans1+C(a,k)*C(b,k)%mod*mul[k]%mod)%mod; for (k=0;k<=min(b,c);k++) ans2=(ans2+C(c,k)*C(b,k)%mod*mul[k]%mod)%mod; for (k=0;k<=min(a,c);k++) ans3=(ans3+C(a,k)*C(c,k)%mod*mul[k]%mod)%mod; printf("%I64d",(LL)ans1*ans2%mod*ans3%mod);}
阅读全文
1 0
- [codefoces439C]The Intriguing Obsession(组合数学)
- Codeforces 869 C. The Intriguing Obsession (组合数学)
- Codeforces Round #439 C.The Intriguing Obsession(组合数学)
- codeforces 869C The Intriguing Obsession 组合数学,逆元
- codeforces 869C. The Intriguing Obsession(组合数学)
- codeforces 869C The Intriguing Obsession 组合数学
- 【Codeforces 869 C The Intriguing Obsession】& 组合数学 & 思维
- #439 Div.2 C. The Intriguing Obsession 组合数学
- Codeforces Round #439 C. The Intriguing Obsession (组合数)
- CF869C:C. The Intriguing Obsession(组合数)
- Codeforces-869C The Intriguing Obsession(DP/组合数)
- Codeforces 869C ( Codeforces Round #439 (Div. 2) ) The Intriguing Obsession 组合数学
- Codeforces Round #439 (Div. 2) C The Intriguing Obsession (组合数学)
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession 组合数学
- cf869C The Intriguing Obsession
- Codeforces869C The Intriguing Obsession
- Codeforces869C-The Intriguing Obsession
- Codeforces Round #439 (Div. 2)C. The Intriguing Obsession (组合数详解)
- Android自定义view的点击事件
- TableView
- 输出随机认证码图片
- 8.自定义函数综合应用示例
- python sort、sorted高级排序技巧
- [codefoces439C]The Intriguing Obsession(组合数学)
- 一、创建Assetbundle 在unity3d开发的游戏中,无论模型,音频,还是图片等,我们都做成Prefab,然后打包成Assetbundle,方便我们后面的使用,来达到资源的更新。
- 日期控件
- Linux内存清理
- 二叉搜索树转化为双向链表
- mysql建表date类型不能设置默认值
- Different Ways to Add Parentheses
- 虽然不简单但还是要学的JavaWeb—配置环境
- 学习笔记之初识Python