Codeforces Round439 C.The Intriguing Obsession
来源:互联网 发布:网络运营托管 编辑:程序博客网 时间:2024/05/29 13:22
题目:
有三种颜色的点,每种各有a,b,c个,任意两点之间可以连线,但要求同种颜色的点距离不得小于3(一条线代表距离为1),求合法的连线方案数
分析:
哇,一开始以为这是个容斥,想了半天没思路
赛后一看,是个DP。。
1。首先同种颜色的点不能直接连,否则距离是1
2。然后同时观察两种颜色的点,比如红黄,每一个黄点至多连接1个红点,否则红点距离为2
3。也就是说,红黄之间的连线方案其实是红点到黄点的一个合法映射;合法的定义为:一个红点只能指向0个或1个黄点,一个黄点只能被0个或1个红点指向
4。F[x][y]代表x个红点,y个黄点的连接方案数
我们取一个特殊点(红点),那么F[x][y]=F[x-1][y]+y*F[x-1][y-1]
5。最终的答案为ab连线方案数×ac连线方案数×bc连线方案数,即F[a][b]×F[a][c]×F[b][c]
代码:
#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int Tmax=5005;const long long MOD=998244353;int a,b,c;long long F[Tmax][Tmax];long long dp(int x,int y){ if(F[x][y]>0) return F[x][y]; if(x==0||y==0) return F[x][y]=1; return F[x][y]=(dp(x-1,y)+(y*dp(x-1,y-1))%MOD)%MOD;}int main(){ scanf("%d%d%d",&a,&b,&c); if(a>b) swap(a,b); if(a>c) swap(a,c); if(b>c) swap(b,c); printf("%I64d",((dp(a,b)*dp(a,c))%MOD*dp(b,c))%MOD); return 0;}
阅读全文
1 0
- Codeforces Round439 C.The Intriguing Obsession
- CodeForces 869C The Intriguing Obsession【排列组合】
- codeforces 869C The Intriguing Obsession 组合数学,逆元
- Codeforces Round #439 C. The Intriguing Obsession (组合数)
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession
- Codeforces 869 C. The Intriguing Obsession (组合数学)
- Codeforces Round #439 C The Intriguing Obsession(dp)
- Codeforces Round #439 C.The Intriguing Obsession(DP + 思维)
- codeforces 869C. The Intriguing Obsession(组合数学)
- codeforces 869C The Intriguing Obsession 组合数学
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession dp
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession 数学
- [杂题 DP] Codeforces 869C. The Intriguing Obsession
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession(dp)
- Codeforces 869C The Intriguing Obsession【组合数】
- Codeforces Round #439C 组合数-The Intriguing Obsession
- Python模块学习笔记
- 青鸟微信群邀请统计
- css top与bottom属性
- bzoj 1933: [Shoi2007]Bookcase 书柜的尺寸
- Linux源码包安装卸载教程 以apache httpd源码包安装为教程(APR not found)
- Codeforces Round439 C.The Intriguing Obsession
- 【gcd分块】BZOJ4921[互质序列]题解
- 使用ZooKeeper实现Java跨JVM的分布式锁
- JAVA的Md5工具类
- 剑指offer-打印出字符串的所有排列
- java中成员变量与局部变量的区别
- 一点 · 栈
- JAVA提高篇(12)--回退流PushbackInputStream
- 深入Bootstrap中data属性