博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Atcoder Grand Contest 025
阅读量:5036 次
发布时间:2019-06-12

本文共 1138 字,大约阅读时间需要 3 分钟。

比赛链接:

B - RGB Coloring

题意:一共n(1e5)个位置,可以填A,B,A+B三种数字,使得最后总和为k(1e10)

思路:ax+by==k 对于A+B的情况,其实就是把A,B随机放,可以重叠。那么O(n)枚举x,找到y。ans+=c(n,x)*c(n,y);

#include 
using namespace std; typedef long long ll; const int maxn=300000+10; const ll mod=998244353; ll n,a,b,k; ll fac[maxn],inv[maxn]; ll qpow_mod(ll x,ll n) { int s=1; while(n) { if(n&1) s=s*x%mod; x=x*x%mod; n>>=1; } return s; } void csh() { fac[0]=1; for(int i=1;i<=300000;i++) fac[i]=fac[i-1]*i%mod; inv[300000]=qpow_mod(fac[300000],mod-2); for(int i=300000;i>0;i--) inv[i-1]=inv[i]*i%mod; } ll C(ll n,ll a) { return fac[n]*inv[a]%mod*inv[n-a]%mod; } int main() { csh(); cin>>n>>a>>b>>k; ll ans=0; for(int i=0;i<=n;i++) { if(((k-i*a)%b!=0)||(k-i*a<0)||((k-i*a)/b>n)) continue; ans=(ans+C(n,i)*C(n,(k-i*a)/b))%mod; } cout<
<

 

 

n,A,B3×105,K18×1010

 

转载于:https://www.cnblogs.com/Fy1999/p/9163935.html

你可能感兴趣的文章
设计模式——原型模式
查看>>
【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.1.CSS框架和其他功能
查看>>
如何一个pdf文件拆分为若干个pdf文件
查看>>
web.xml中listener、 filter、servlet 加载顺序及其详解
查看>>
前端chrome浏览器调试总结
查看>>
获取手机验证码修改
查看>>
数据库连接
查看>>
python中数据的变量和字符串的常用使用方法
查看>>
等价类划分进阶篇
查看>>
delphi.指针.PChar
查看>>
Objective - C基础: 第四天 - 10.SEL类型的基本认识
查看>>
java 字符串转json,json转对象等等...
查看>>
极客前端部分题目收集【索引】
查看>>
第四天 selenium的安装及使用
查看>>
关于js的设计模式(简单工厂模式,构造函数模式,原型模式,混合模式,动态模式)...
查看>>
KMPnext数组循环节理解 HDU1358
查看>>
android调试debug快捷键
查看>>
【读书笔记】《HTTP权威指南》:Web Hosting
查看>>
Inoodb 存储引擎
查看>>
数据结构之查找算法总结笔记
查看>>