Avito Cool Challenge 2018 C - Colorful Bricks
题目大意:
1*n的格子 可以用m种颜色涂色
已知从第2开始到第n个格子 有k个格子与其左边的格子颜色不同
求涂色的方案数
相当于把n个格子分成k+1份
可以递推出分成k+1份的不同的方案数(其实递推公式就是组合数递推公式)
也可以隔板法直接求C(n-1,k)
已知所有分法后 直接涂色 那么第一份可以涂m种颜色
而第二块开始只能涂m-1种 因为要和左边那一份的颜色不同
所以C(n-1,k)*m*(m-1)^k
一定要注意取模问题 乘法要取模
递推时的加法也要取模啊 太粗心了 赛后递推加个取模就过了
#include <bits/stdc++.h>
#define LL long long
#define mod 998244353
using namespace std;
LL n,m,k;
LL dp[][];
LL mod_pow(LL x,LL n) {
LL res=1LL;
while(n) {
if(n&) res=res*x%mod;
x=x*x%mod;
n>>=;
} return res%mod;
}
int main()
{
while(~scanf("%I64d%I64d%I64d",&n,&m,&k)) {
memset(dp,,sizeof(dp));
for(int i=;i<=n;i++) dp[i][]=1LL;
for(int i=;i<=n;i++)
for(int j=;j<i && j<=k;j++)
dp[i][j]=(dp[i-][j]+dp[i-][j-])%mod;
LL one=1LL*m*mod_pow(m-1LL,k)%mod;
printf("%I64d\n",one*dp[n][k]%mod);
} return ;
}
Avito Cool Challenge 2018 C - Colorful Bricks的更多相关文章
- Avito Cool Challenge 2018 C. Colorful Bricks 【排列组合】
传送门:http://codeforces.com/contest/1081/problem/C C. Colorful Bricks time limit per test 2 seconds me ...
- Codeforces Avito Code Challenge 2018 D. Bookshelves
Codeforces Avito Code Challenge 2018 D. Bookshelves 题目连接: http://codeforces.com/contest/981/problem/ ...
- Avito Cool Challenge 2018:C. Colorful Bricks
C. Colorful Bricks 题目链接:https://codeforces.com/contest/1081/problem/C 题意: 有n个横向方块,一共有m种颜色,然后有k个方块的颜色 ...
- Avito Cool Challenge 2018
考挂了.. A - Definite Game 直接看代码吧. #include<cstdio> #include<cstring> #include<algorithm ...
- Avito Cool Challenge 2018(div1+2)
A. Definite Game: 题意:输入N,输出最小的结果N-x,其中x不少N的因子. 思路:N=2时,输出2:其他情况输出1:因为N>2时,N-1不会是N的因子. #include< ...
- Avito Cool Challenge 2018 Solution
A. Definite Game 签. #include <bits/stdc++.h> using namespace std; int main() { int a; while (s ...
- Avito Code Challenge 2018
第一次打CF,很菜,A了三道水题,第四题好像是是数位DP,直接放弃了.rateing从初始的1500变成了1499,还是绿名,这就很尴尬.之后觉得后面的题目也没有想象的那么难(看通过人数)过两天吧剩下 ...
- Avito Cool Challenge 2018 自闭记
A:n==2?2:1. #include<iostream> #include<cstdio> #include<cmath> #include<cstdli ...
- Avito Cool Challenge 2018 E. Missing Numbers 【枚举】
传送门:http://codeforces.com/contest/1081/problem/E E. Missing Numbers time limit per test 2 seconds me ...
随机推荐
- python学习笔记:数据类型——数字、字符串、元祖、字典
计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数 ...
- shell 跟踪命令
添加跟踪 set -x 去除跟踪 set +x
- vue 使用pug(详细说明)
1.安装pug npm i -D pug pug-html-loader pug-plain-loader cli2.0脚手架修改build/webpack.base.conf.js文件 module ...
- OpenCV学习笔记 笔记汇总
转载来源:https://www.cnblogs.com/tonyc/p/6407318.html 今后开始学习OpenCV 1:OpenCV学习笔记 作者:CSDN数量:55篇博文网址:http ...
- 【记录】eclipse / STS 设置注释模版格式/导入注释模版格式
设置注释模板的入口:Window->Preference->Java->Code Style->Code Template 将如下保存在新创建的xml文件中,导入进去 < ...
- Linux中目录结构以及VI编辑器常见的命令操作
1.每个目录的详细介绍,先放一张目录的整体结构在这里 /bin:是Binary的缩写,用于存放经常使用的命令 /sbin:s代表Super User,用于存放系统管理员使用的命令 /home:存放普通 ...
- Qt 【Qlistview + delegate 为item重写个关闭按钮】
效果图是这样的. 实现的过程是listview + delegate 本身我想是用listwidget + delegate[网上查询到不可实现] 之前也试过在item中添加布局跟控件,但是在点击的时 ...
- Fabric.js的使用
最近项目有一个绘制的功能,搜了一圈发现fabric.js口碑不错,但是文档稀缺,于是东看看西搜搜的把项目的需求都给实现了,想分享一下. 篇幅有点长,但看完后可以轻松驾驭fabric.我的项目是基于VU ...
- Java刷题笔记
能用StringBuffer的时候坚决不要用String,因为前者的时间和空间效率都更高. 牛顿法求平方根:随便找一个K,然后不断让 k=(k+x/k)/2;直到K的平方与x之间的差距小于限定值. 斐 ...
- 深入理解Magento - 第一章 - Magento强大的配置系统
深入理解Magento 作者:Alan Storm翻译:zhlmmc 前言第一章 - Magento强大的配置系统第二章 - Magento请求分发与控制器第三章 - 布局,块和模板第四章 - 模型和 ...