Codeforces 869C The Intriguing Obsession:组合数 or dp
题目链接:http://codeforces.com/problemset/problem/869/C
题意:
红色、蓝色、紫色的小岛分别有a,b,c个。
你可以在两个不同的岛之间架桥,桥的长度为1。
任意两个颜色相同的岛之间的距离不能小于3。
问你合法的架桥方案数。
题解:
显然只能在不同颜色的岛之间连边。
而且一个岛对于一种颜色,最多只能连一个岛。
设f(x,y)表示两种颜色的岛相互连边,分别有x,y个,连边的方案数。(x < y)
那么ans = f(a,b) * f(b,c) * f(a,c)
解法1(组合数):
枚举共连了k条边,k∈[1,x]。
那么连了k条边的方案数 = C(x,k) * C(y,k) * k!
总方案数f(x,y) = ∑(C(x,k) * C(y,k) * k!)
解法2(dp):
向其中A集合中加入一个岛,要么不连边,要么根B集合中的任意一个点连边(共j种方案)。
f(i,j) = f(i-1,j) + f(i-1,j-1)*j
AC Code(combination):
#include <iostream>
#include <stdio.h>
#include <string.h>
#define MAX_N 5005
#define MOD 998244353 using namespace std; int mx=;
int a[];
long long f[MAX_N];
long long c[MAX_N][MAX_N];
long long ans=; void cal_f()
{
f[]=;
for(int i=;i<=mx;i++) f[i]=f[i-]*i%MOD;
} void cal_c()
{
c[][]=;
for(int i=;i<=mx;i++)
{
c[i][]=;
for(int j=;j<=i;j++)
{
c[i][j]=(c[i-][j-]+c[i-][j])%MOD;
}
}
} int main()
{
for(int i=;i<;i++)
{
cin>>a[i];
mx=max(mx,a[i]);
}
cal_f();
cal_c();
for(int i=;i<;i++)
{
for(int j=i+;j<;j++)
{
int x=min(a[i],a[j]);
int y=max(a[i],a[j]);
int sum=;
for(int k=;k<=x;k++)
{
sum=(sum+c[x][k]*c[y][k]%MOD*f[k])%MOD;
}
ans=ans*sum%MOD;
}
}
cout<<ans<<endl;
}
AC Code(dp):
#include <iostream>
#include <stdio.h>
#include <string.h>
#define MAX_N 5005
#define MOD 998244353 using namespace std; int a,b,c;
long long dp[MAX_N][MAX_N]; int main()
{
cin>>a>>b>>c;
int mx=max(a,max(b,c));
for(int i=;i<=mx;i++)
{
dp[i][]=dp[][i]=;
}
for(int i=;i<=mx;i++)
{
for(int j=;j<=mx;j++)
{
dp[i][j]=(dp[i-][j]+dp[i-][j-]*j)%MOD;
}
}
cout<<dp[a][b]*dp[b][c]%MOD*dp[a][c]%MOD<<endl;
}
Codeforces 869C The Intriguing Obsession:组合数 or dp的更多相关文章
- codeforces 869C The Intriguing Obsession【组合数学+dp+第二类斯特林公式】
C. The Intriguing Obsession time limit per test 1 second memory limit per test 256 megabytes input s ...
- CodeForces - 869C The Intriguing Obsession(组合数)
题意:有三个集合,分别含有a.b.c个点,要求给这些点连线,也可以全都不连,每两点距离为1,在同一集合的两点最短距离至少为3的条件下,问有多少种连接方案. 分析: 1.先研究两个集合,若每两个集合都保 ...
- Codeforces 869C The Intriguing Obsession
题意:有三种颜色的岛屿各a,b,c座,你可以在上面建桥.联通的点必须满足以下条件:1.颜色不同.2.颜色相同且联通的两个点之间的最短路径为3 其实之用考虑两种颜色的即可,状态转移方程也不难推出:F[i ...
- Codeforces Round #439 (Div. 2)C - The Intriguing Obsession(简单dp)
传送门 题意 给出三个集合,每个集合的元素数量为a,b,c,现在需要连边,满足集合内元素不可达或最短路为3,求可行方案数 分析 设dp[i][j]为a集合元素为i个,b集合元素为j个的可行方案,易知( ...
- cf 869c The Intriguing Obsession
题意:有三种三色的岛,用a,b,c来标识这三种岛.然后规定,同种颜色的岛不能相连,而且同种颜色的岛不能和同一个其他颜色的岛相连.问有多少种建桥的方法. 题解:em....dp.我们先看两个岛之间怎么个 ...
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession
C. The Intriguing Obsession 题目链接http://codeforces.com/contest/869/problem/C 解题心得: 1.由于题目中限制了两个相同 ...
- 「日常训练」The Intriguing Obsession(CodeForces Round #439 Div.2 C)
2018年11月30日更新,补充了一些思考. 题意(CodeForces 869C) 三堆点,每堆一种颜色:连接的要求是同色不能相邻或距离必须至少3.问对整个图有几种连接方法,对一个数取模. 解析 要 ...
- Codeforces 219D. Choosing Capital for Treeland (树dp)
题目链接:http://codeforces.com/contest/219/problem/D 树dp //#pragma comment(linker, "/STACK:10240000 ...
- code forces 439 C. The Intriguing Obsession
C. The Intriguing Obsession time limit per test 1 second memory limit per test 256 megabytes input s ...
随机推荐
- 从jarray中删除指定元素的问题
string jsonText = "[{\"a\": \"aaa\",\"b\": \"bbb\",\&qu ...
- QBuffer简单操作(被看做一个标准的可随机访问的文件,支持信号)
Qt中通过QBuffer类我们可以使用io的方式访问.操作QByteArray中的内容.此时,QByteArray被看做一个标准的可随机访问的文件.例如: QBuffer buffer; char c ...
- Win7环境下Apache+mod_wsgi本地部署Django
django基础已经掌握的同学可以尝试将项目发布已寻找些许成就感,以鼓励自己接下来进行django的进阶学习 以前你总是使用python manage.py runserver进行服务启动,但是却不知 ...
- PAT 1002. A+B for Polynomials (25)
This time, you are supposed to find A+B where A and B are two polynomials. Input Each input file con ...
- Hibernate Student_Course_Score设计
示例: 设计代码,实现在数据库中建student表.course表.和score表,展现三者关系 student表:id.name course表:id.name score表:id.score.st ...
- 每天一个Linux命令(50)netstat命令
netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况. (1)用法: 用法: netstat [选项参数] (2)功能: ...
- Linux Shell基础 管道符和grep命令
概述 管道符:管道符使用"丨"代表.如"命令1丨命令2".表示命令 1 的正确输出作为命令 2 的操作对象.命令 1 必须有正确输出,而命令 2 必须可以处理命 ...
- [转]u盘读不出来怎么办大汇总
今天遇到的问题 http://www.upantool.com/jiaocheng/xiufu/2016/9958.html u盘读不出来怎么办大汇总 2016-12-14 21:42 来源: 本站整 ...
- Python自然语言处理-系列一
一:python基础,自然语言概念 from nltk.book import * 1,text1.concordance("monstrous") 用语索引 2,tex ...
- qnx 黑莓系统
qnx 黑莓图形系统框架 http://www.360doc.com/content/07/0807/10/38907_658192.shtml http://blog.csdn.net/keyboa ...