【AGC025B】RGB Color
【AGC025B】RGB Color
题面描述
Takahashi has a tower which is divided into \(N\) layers. Initially, all the layers are uncolored. Takahashi is going to paint some of the layers in red, green or blue to make a beautiful tower. He defines the beauty of the tower as follows:
The beauty of the tower is the sum of the scores of the \(N\) layers, where the score of a layer is \(A\) if the layer is painted red, \(A+B\) if the layer is painted green, \(B\) if the layer is painted blue, and 0 if the layer is uncolored.
Here, \(A\) and \(B\) are positive integer constants given beforehand. Also note that a layer may not be painted in two or more colors.
Takahashi is planning to paint the tower so that the beauty of the tower becomes exactly \(K\). How many such ways are there to paint the tower? Find the count modulo 998244353. Two ways to paint the tower are considered different when there exists a layer that is painted in different colors, or a layer that is painted in some color in one of the ways and not in the other.
翻译
你有 \(n\) 个格子排成一排,每个格子可以涂成红、蓝、绿或不涂色,得分分别为 \(A\) , \(B\) , \(A + B\) , \(0\) 。求使总得分为 \(K\) 的方案数,答案对 \(998244353\) 取模
思路
其实感觉主要是翻译的锅导致大家做不出来。
注意到题面中的信息 A+B if the layer is painted green
为什么用 \(A+B\) ?
因为绿色是红色加蓝色。
这提示了我们将绿色看为红色和蓝色都填。
那么题意就变成了 \(n\) 个格子,每个格子填红、蓝或者都填或者都都不填。
那么我们就可以用组合数随便算了。
枚举红色填的个数(包含两种颜色都填),可以直接算出蓝色的个数。
\(\tbinom{n}{cnt} * \tbinom{n}{\frac{k - cnt * a}{b}}\)
代码
/*
* @Copyright: Copyright 2021 昕橘玥
* @Powered: Powered by .NET 5.0 on Kubernetes
* @Author: JuyueXin.
* @Date: 2021-09-17 18:20:28
* @Email: 8950466@qq.com
* @Last Modified by: JuyueXin.
* @Last Modified time: 2021-09-17 18:57:07
*/
#include <bits/stdc++.h>
using namespace std;
#define int long long
int read(int x = 0, bool f = false, char ch = getchar()) {
for (; !isdigit(ch); ch = getchar()) f |= (ch == '-');
for (; isdigit(ch); ch = getchar()) x = (x << 1) + (x << 3) + (ch ^ 48);
return f ? ~x + 1 : x;
}
const int mod = 998244353, N = 3e5 + 5;
int n, m, ans, A, B;
int fac[N], inv[N];
int qpow(int x, int y) {
int ans = 1;
for (; y; y >>= 1, x = (1ll * x * x) % mod) if (y & 1) ans = (1ll * ans * x) % mod;
return ans;
}
int C(int x, int y) {
if (x < y) return 0;
return 1ll * fac[x] * inv[y] % mod * inv[x - y] % mod;
}
signed main() {
n = read(), A = read(), B = read(), m = read(); fac[0] = 1;
for (int i = 1; i <= n; ++i) fac[i] = (1ll * fac[i - 1] * i) % mod;
inv[n] = qpow(fac[n], mod - 2);
for (int i = n - 1; ~i; --i) inv[i] = (1ll * inv[i + 1] * (i + 1)) % mod;
for (int i = 0; i <= n; ++i) {
if (m < i * A) break;
if (!((m - i * A) % B)) ans = (1ll * ans + 1ll * C(n, i) * C(n, (m - i * A) / B) % mod) % mod;
} return printf("%lld\n", ans), 0;
}
【AGC025B】RGB Color的更多相关文章
- 【C#】RGB,CMYK,HSB各种颜色表示的转换(转)
[C#]RGB,CMYK,HSB各种颜色表示的转换 一.表示颜色的方式有很多种,如RGB,CMYK,HSB,Hex等等 1.RGB:这种表示颜色由三原色构成,通过红,绿,蓝三种颜色分量的不同,组合 ...
- 【arc074e】RGB Sequence(动态规划)
[arc074e]RGB Sequence(动态规划) 题面 atcoder 洛谷 翻译见洛谷 题解 直接考虑暴力\(dp\),设\(f[i][j][k][l]\)表示当前考虑到第\(i\)位,最后一 ...
- T89353 【BIO】RGB三角形
T89353 [BIO]RGB三角形 题解 对于这个题目有一个规律: 如果一个数列的长度为 3k+1(0<=k) 那么,这个数列最终缩放成的一个字母只和这个数列的首项,尾项有关 所以我们可以先 ...
- 【VS开发】【图像处理】RGB Bayer Color分析
RGB Bayer Color分析 Bayer色彩滤波阵列 拜耳色彩滤波阵列(Bayer Color Filter Array,CFA)是非常有名的彩色图片的数字采集格式.色彩滤波器的模式如上图所示, ...
- 【图像处理】RGB Bayer Color分析
Bayer色彩滤波阵列 拜耳色彩滤波阵列(Bayer Color Filter Array,CFA)是非常有名的彩色图片的数字采集格式.色彩滤波器的模式如上图所示,由一半的G,1/4的R,1/4的B组 ...
- 【CSS】Beginner3:Color
1.red rgb(255,0,0) rgb(100%,0%,0%) #ff0000 #f00 2.Predefined color name aqua, black, blue, fuchsia, ...
- 【python】RGB图片到灰度图的转换
在做立体匹配求深度图的时候遇到这个问题,用惯了matlab的rgb2gray,倒是不熟悉python的实现,在网上找到了相关方案,记下来已作备用 RGB到灰度图转换公式: Y' = 0.299 R + ...
- 【iOS】Web Color 的 Swift 实现
用Swift语言重写Web Color这个类. 这次是用函数实现的,感觉也非常简洁.眼下(2014.6.28) Xcode 6的方法提示还不健全,就仅仅实现了用颜色名字创建颜色的功能. 最新代码&am ...
- 【转】 RGB各种格式
转自:https://blog.csdn.net/LG1259156776/article/details/52006457?locationNum=10&fps=1 RGB组合格式 名字 ...
随机推荐
- Longhorn,企业级云原生容器分布式存储 - K8S 资源配置示例
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 企业级云原生容器分布式存储解决方案设计架构和概念 Longhorn 企业级云原生容器分 ...
- Android 9.0 默认输入法的设置流程分析
Android 输入法设置文章 Android 9.0 默认输入法的设置流程分析 Android 9.0 添加预置第三方输入法/设置默认输入法(软键盘) 前言 在上一篇文章 Android 9.0 ...
- prism 的学习网站
C#的学习网址: https://www.cnblogs.com/zh7791
- LeetCode42. 接雨水(java)
42.接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种 ...
- numpy、pandas、scipy、matplotlib、jieba、 openpyxl、pillow的安装
cmd环境下进入python安装包里的Script文件夹 安装numpy 安装pandas 安装scipy 安装matplotlib 安装jieba(应该是之前装的库安装依赖时下载了) 安装openp ...
- Flink 运行时架构
参考链接:https://blog.csdn.net/dajiangtai007/article/details/88575553 1.Flink 运行时架构 Flink 运行时架构主要包含几个部分: ...
- Longhorn 云原生容器分布式存储 - Air Gap 安装
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生容器分布式存储 - 设计架构和概念 Longhorn 云原生容器分布式存储 - ...
- Python - 面向对象编程 - @property
前言 前面讲到实例属性的时候,我们可以通过 实例对象.实例属性 来访问对应的实例属性 但这种做法是不建议的,因为它破坏了类的封装原则 正常情况下,实例属性应该是隐藏的,只允许通过类提供的方法来间接实现 ...
- Go测试--main测试
目录 简介 示例 简介 子测试的一个方便之处在于可以让多个测试共享Setup和Tear-down.但这种程度的共享有时并不满足需求,有时希望在整个测试程序做一些全局的setup和Tear-down,这 ...
- 正整数a、b、c、d满足ab=cd,则a+b+c+d必定为合数。
正整数a.b.c.d满足ab=cd,则a+b+c+d必定为合数. 证法一:记s=a+b+c+d.如果四个数全为1,s=4,显然是合数.考虑四个数非全1的情形,由对称性,不妨令a>1. 设p是a的 ...