Codeforces Round #439 (Div. 2) C. The Intriguing Obsession
来源:互联网 发布:java开发重庆薪酬 编辑:程序博客网 时间:2024/05/20 10:15
B. The Eternal Immortality
本来打算给lzq助攻一波,结果忍不住交了一发,于是成功入坑。
A题题面有点繁琐,索性开这个题,发现貌似有规律。
题意:给你两个数a,b(b>=a).求b!/a!的最后一位。
因为是最后一位,普通求法只需将[a+1,b]的所有最后一位乘起来对10取余即可, 但发现只要a,b的距离超过10,必然会有0出现,最后一位肯定是0,那么这个套路就被识破啦。
#include<bits/stdc++.h>typedef long long ll;using namespace std;int main(){ ll a,b; cin>>a>>b; if(b-a>=10) puts("0"); else { int sum=1; for(ll i=a+1;i<=b;i++) { sum*=i%10; sum%=10; } printf("%d\n",sum); } return 0;}
重点想写C题的,不过B题也是我很快写出来的,就一起写了吧,不过A题被我ssssb犯了个错误数组应该开3e6以上,开场半小时才想起这个坑,于是skiped第一发。
C. The Intriguing Obsession
题意:有三类群岛,分别有A、B、C个小岛,现在让你在这些小岛之间建桥,要求同类型小岛之间不能有桥,同类型小岛之间如果联通至少需要隔两个小岛。也就是说一个小岛不能和自己类型的小岛建边,也不能和两个同类型的小岛建边。求方案数。
组合数学一直是我们的弱项,实在写不出来就去睡了,今天补题发现思路很巧妙也不难。
因为小岛只能和其他类型的小岛建边,如果在最多的桥都能被建成的情况下,去掉某些桥,依然符合条件,A和B之间建桥不影响B和C的,其他同理。所以我们只需求出AB、BC、AC的建桥方案,然后相乘即可。那么怎么求两种类型的小岛的方案数呢?,还是用这个公式吧,很直观。
预处理打出组合数表即可,这里让我再次学了一波组合数: C(m,n)=C(m-1,n-1)+C(m-1,n)
const ll MOD=998244353;const int N=5e3+10;int a[5];ll C[N][N],p[N];void init(){ memset(C,0,sizeof(C)); p[0]=C[0][0]=1; for(int i=1;i<N;i++) { p[i]=1ll*i*p[i-1]%MOD; C[i][0]=1; for(int j=1;j<=i;j++) C[i][j]=(C[i-1][j-1]+C[i-1][j])%MOD; }}ll solve(int a,int b){ ll sum=0,tmp; for(int k=0;k<=a;k++) { tmp=p[k]; tmp=(tmp*C[a][k])%MOD; tmp=(tmp*C[b][k])%MOD; sum=(sum+tmp)%MOD; } return sum;}int main(){ init(); while(~scanf("%d%d%d",&a[0],&a[1],&a[2])) { sort(a,a+3); printf("%I64d\n",((solve(a[0],a[1])*solve(a[1],a[2]))%MOD*solve(a[0],a[2]))%MOD); } return 0;}
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession
- Codeforces Round #439 (Div. 2) C. 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 数学
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession(dp)
- Codeforces Round #439 (Div. 2) 869 C. The Intriguing Obsession
- Codeforces Round #439 (Div. 2)-The Intriguing Obsession(DP)
- Codeforces 869C ( Codeforces Round #439 (Div. 2) ) The Intriguing Obsession 组合数学
- CF round#439 div.2 C The Intriguing Obsession【DP】
- Codeforces Round #439 (Div. 2) C 869C The Intriguing Obsession(思维+简单组合)
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession(组合数)
- Codeforces Round #439 (Div. 2) C The Intriguing Obsession (组合数学)
- Codeforces Round #439 (Div. 2)C. The Intriguing Obsession (组合数详解)
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession 组合数学
- Codeforces Round #439 (Div. 2) C.The Intriguing Obsession(组合数、记忆化搜索)
- Codeforces Round #439 C. The Intriguing Obsession (组合数)
- Codeforces Round #439 C The Intriguing Obsession(dp)
- LLVM笔记
- 机器学习大牛链接收藏
- 51nod1223 分数等式的数量
- python 生成器
- 深度学习入门---基本概念
- Codeforces Round #439 (Div. 2) C. The Intriguing Obsession
- EasyDSS打包方法介绍
- go--map
- CSS中强大的EM
- 17.10.7B组总结
- 纯干货,Spring-data-jpa详解,全方位介绍。
- 机器学习大牛链接收藏
- 约瑟夫环
- 制作html5游戏遇到的问题与心得