罗固P5824十二种计算方法(小球计算)

priproblem ++ i + 1n + 1有序集合链接:

如果有:(n \\\\)个球,请将它们放在\\\\(m \\\\)框中,然后找到解决方案的数量。

\\\\(\\\\文字{I ..)。球是不同的,盒子是不同的。

显然,答案是\\\\(m ^ n :)。

\\\\(\\\\文字{II ..)。球彼此不同,盒子彼此不同,每个盒子最多容纳一个球。

我们将球一个接一个地放在框中,\\\\(i-i + 1 \\\\)在放置球((i \\\\))时有多种选择,因此答案\\\\(m ^:\\\\下划线::)。

\\\\(\\\\文字{III:\\\\):球彼此不同,盒子也不同,每个盒子至少包含一个球。

这等效于用数字\\\\(n \\\\)除以\\\\(m \\\\)命令集,因此答案是\\\\(\\\\左\\\\ {n \\\\在顶部\\\\ m \\\\右\\\\} m!\\ \\)E.

\\\\(\\\\文字{IV ..)。球是不同的,盒子都一样。

指出球放入多少盒,?然后解数:????(n \\\\)这个数字分为几个未解决的集合,因此答案\\\\(\\\\ money \\\\ limits_ i = 1} ^ m \\\\仍然存在) g) n \\\\向上i \\\\右:: \\\\)。

\\\\(\\\\文字{V ..)。球不同,盒子相同,每个盒子最多可容纳一个球。

显然,答案是\\\\([n \\\\ le m] :)。

\\\\(\\\\文字{VI ..)。球是不同的,盒子是相同的,每个盒子至少包含一个球。

显然,答案是\\\\(\\\\左:{n:上:右:: \\\\)。

\\\\(\\\\文本{VII ..)。球是一样的,盒子是不同的。

每个盒子中的每个球只有一个解决方案。 OGF是\\\\(\\\\ frac1 {1-x} \\\\),所以答案是\\\\([x ^ n] \\\\ frac1 {(1-x)^ m} = :: n + m-1 \\\\选择n \\\\):

\\\\(\\\\文字{VIII::):球是相同的,盒子是不同的,每个盒子最多只能容纳一个球。

显然,答案是\\\\({m:select::)。

\\\\(\\\\文字{IX::):球相同,盒子不同,每个盒子至少包含一个球。

此时,每个框的OGF为\\\\(\\\\ frac x {1-x} \\\\),因此答案为\\\\([x ^ n] \\\\ frac {x ^ m} {(1-x)^ m } = n-1 \\\\选择m -1:\\\\)。

\\\\(\\\\文字{X ..)。球是一样的,盒子都一样。

\\\\(N \\\\)等于除以不受管制的自然数之和,答案为\\\\(p(n + m,m)= [x ^ n] \\\\ prod \\\\ limits_ {i = 1} :: m? frac1 {1-x ^ i} \\\\):

\\\\(\\\\文字{XI::):球是相同的,盒子是相同的,每个盒子最多可容纳一个球。

显然,答案是\\\\([n \\\\ le m] :)。

\\\\(\\\\文本{XII ..)。球是相同的,盒子是相同的,每个盒子至少包含一个球特产哪里有图片价格大全

\\\\(N \\\\)等于将正整数之和除以解,答案为\\\\(p(n,m)= [x ^ {nm}] \\\\ prod \\\\ limit_ {i = 1:^ m \\\\ frac1 {1-x ^ i} \\\\):

#include \\ ult26 lt; cstdio \\

#include \\ ult26 lt; cstring \\ ugt26

#include \\ ult26 lt;数字\\

#include \\ ult26 lt;算法\\

const int N = 524289,P = 998244353;

int n,m,deg,len,fac [N],inv [N],ifac [N],rev [N],w [N],S [N],p [N];

int inc(int a,int b){返回a + = b-P,a + = a \\ \\ gt; 31安培; P;

int dec(int a,int b){返回a- = b,a + = a \\ \\ gt; 31安培; P;

int mul(int a,int b)返回1ll * a * b%P;}

int pow(int a,int k)(int r = 1; for(; k; k \\ u0026 gt; \\ u0026 gt; = 1,a = mul(a,a))if(k \\ u0026 amp; 1) r = mul(a,r)返回r;}

int C(int n,int m){返回m \\ lt; 0 || m> n? 0: mul(mul(fac [n],ifac [m]),ifac [n-m]);}

int getlen(int n){返回1 \\ ult26 lt; \\ ltlt; (32 -__ buildin_clz(n));}

无效(int n)

{

int lim = 1 \\ \\ ltlt; (len = 32 -__ buildin_clz(n)),g =战俘(3,(P-1)/ lim);

w [lim> \\ gt; 1] = 1,fac [0] = ifac [0] = inv [0] = fac [1] = ifac [1] = inv [1] = 1;

for(int i = 1; i \\ lim; ++ i)rev [i] =(rev [i \\ u0026 gt; \\ u0026 gt; 1] \\ u0026 gt; \\ u0026 gt; 1)| (i = 1?lim = 1:0);

for(int i =(lim = 1)+1; i \\ lim; ++ i)w [i] = mul(w [i-1],g);

for(int i =(lim = 1)-1; i; -i)w [i] = w [i \\ u0026 lt; \\ ltlt; 1];

对于(int i = 2; i \\ lim; ++ i)fac [i] = mul(fac [i-1],i),ifac [i] = mul(ifac [i-1], inv [i] =母猪(inv [P%i],PP / i);

}

无效的NTT(int * a,int lim,int f)

{

如果(!?f)std ::倒车(a + 1,a + lim);

对于(int i = 0,x = len -__- buildin_ctz(lim); i \\ u0026 lt; lim; ++ i)if(i \\ u0026 lt; rev [i] \\ u0026 gt; \\ u0026 gt; x)std :: swap(a [i],[rev [i] \\\\ x]);

对于(int i = 1; i \\ lim; i; \\ u0026 lt; \\ u0026 lt; = 1)for(int j = 0,d = i \\ u0026 lt; \\ u0026 lt; 1; j \\ u0026 lt ; lim; j + = d)对于(int k = 0,x; k \\ u0026 lt; i; ++ k)x = mul(a [i + j + k],w [i + k]),a [i + j + k] = dec(a [j + k],x),a [j + k] = inc(a [j + k],x);

如果(!?f)为(int i = 0,x = P-(P-1)/ lim; i \\ lim; ++ i)a [i] = mul(a [i],x) ;

}

无效Inv(int * a,int * b,int deg)

{

如果(deg == 1)返回b [0] = pow(a [0],P-2),则无效();

静态整数t [N]; int lim =盖伦(度* 2-2);

Inv(a,b,(deg + 1)\\\\ u0026 gt; 1),memcpy(t,a,deg deg ult26 \\ lt; 2),memset(t + deg,0,(lim -deg)\\ u0026 lt; 2);

NTT(t,lim,1),NTT(b,lim,1);

for(int i = 0; i \\ lim; ++ i)b [i] = mul(dec(2,mul(b [i],t [i])),b [i]);

NTT(b,lim,-1),memset(b + deg,0,(lim-deg)\\ u0026 lt; 2);

}

void Der(int * a,int * b,int deg){for(int i = 1; i \\ deg; ++ i)b [i-1] = mul(a [i],i); b [deg -1] = 0;}

void Int(int * a,int * b,int deg){for((int i = 1; i \\ deg; deg; ++ i)b [i] = mul(a [i-1],inv [i ]); b [0] = 0;}

无效的Ln(int * a,int * b,int deg)

{

静态整数t [N]; int lim =盖伦(度* 2-2);

Inv(a,t,deg),Der(a,b,deg),NTT(t,lim,1),NTT(b,lim,1);

for(int i = 0; i \\ lim; ++ i)t [i] = mul(t [i],b [i]);

NTT(t,lim,-1),Int(t,b,deg),memset(t,0,lim \\ 2),memset(b + deg,0,(lim-deg) \\ u0026 lt; \\ u0026 lt; 2));

}

无效的Exp(int * a,int * b,int deg)

{

如果(deg == 1)返回b [0] = 1,则无效();

静态整数t [N]; int lim =盖伦(度* 2-2);

Exp(a,b,(deg + 1)\\\\ 1),Ln(b,t,deg);

对于(int i = 0; i \\ deg; ++ i)t [i] = dec(a [i],t [i]);

memset(t + deg,0,(lim-deg)\\ lt; \\ u0026 lt; 2),++ t [0],NTT(t,lim,1),NTT(b,lim,1);

for(int i = 0; i \\ lim; ++ i)b [i] = mul(b [i],t [i]);

NTT(b,lim,-1),memset(b + deg,0,(lim-deg)\\ u0026 lt; \\ u0026 lt; 2),memset(t + deg,0,(lim-deg)\\ u0026 lt ; \\ u0026 lt; 2);

}

无效的计算()

{

静态整数F [N],G [N],lim = 1 \\ \\ ltlt; len,deg = std :: min(n,m)+1;

对于(int i = 0; i \\ deg; ++ i)F [i] = mul(pow(i,n),ifac [i]),G [i] = i \\ uamp26; 1? P-ifac [i]: ifac [i];

NTT(F,lim,1),NTT(G,lim,1);

for(int i = 0; i \\ lim; ++ i)S [i] = mul(F [i],G [i]);

NTT(S,lim,-1),memset(S +度,0,(lim-deg)* 4);

}

无效的计算()

{

static int F [N];

对于(int i = 1; i \\ u0026 lt; = m; ++ i)for(int j = i; j \\ u0026 lt; = n; j + = i)F [j] = inc(F [j] ,inv [j / i]);

Exp(F,p,n + 1);

}

int main()

{

斯堪夫(\\ u0026“;%d%d \\\\ n”,\\ n,\\ u0026 amp; m);

主动(2 * std :: max(n,m)),calcS(),Calculation();

printf(\\ u0026“; d d \\ u0026 n”,pow(m,n));

printf(\\ u0026“;%d \\\\ n \\ u0026”; mul(C(m,n),fac [n]));

printf(\\ u0026“;%d \\\\ n \\ u0026”; mul(S [m],fac [m])));

printf(\\ u0026“; d d \\\\ n \\ u0026”; std ::累加(S + 1,S + m + 1,0,inc));

printf(\\ u0026“;%d \\\\ n”,n \\ ult; = m);

printf(\\ u0026“;%d \\\\ n \\ u0026”; S [m]);

printf(\\ u0026“;%d \\\\ n \\ u0026”; C(m + n-1,n));

printf(\\ u0026“;%d \\\\ n \\ u0026”; C(m,n));

printf(\\ u0026“;%d \\\\ n \\ u0026”; C(n-1,m-1));

printf(\\ u0026“;%d \\\\ n \\ u0026”; p [n]);

printf(\\ u0026“;%d \\\\ n”,n \\ ult; = m);

printf(\\ u0026“;%d \\\\ n”; n \\ u0026 lt; m?0:p [n-m]);

}

罗固P5824十二重计算法(小球计算)问题++ i + 1n + 1自定义集合。JS

原文地址:https://www.cnblogs.com/blogst/p/12689689.html

时间: 2024-10-30 00:45:56

罗固P5824十二种计算方法(小球计算)的相关文章

还需要学习的十二种CSS选择器

在前面的文章中,我们在介绍了<五种你必须彻底了解的CSS选择器>,现在向大家介绍,还需要学习的另外十二种CSS选择器.如果你还没有用过,就好好学习一下,如果你已经熟知了就当是温习. 一.X:link X:visited X:hover X:active 伪类 a:link { color: red; }a:visted { color: purple; } 伪类选择器,visted已被访问过的样式,hover鼠标经过的样式,link未被访问的样式.三种伪类选择器常用于链接,但不是说只适用于链接

nodeType的十二种类型

nodetype的十二种类型 1:元素节点 2:属性节点 3:文本节点 4:CDATA区段 5:实体应用元素 6:实体 7:表示处理指令 8:注释节点 9:最外层的Root element,包括所有其他节点 10:<!DOCTYPE...> 11:文档碎片节点 12:DTD中声明的符号节点

对于未来编程的十二种预测

凝视水晶球,我们试图寻找未来五年中关于编程会发生什么,哪些会激动人心. 技术领域快速变革着,而用于构建这些技术的工具也随之不断发展.如果你不能超越当前的项目,那你就只能在兔子洞里越陷越深了. 为了帮助您呈现一个精彩的未来,我们预测了未来五年内编程领域将进行的颠覆性变革.由于我们的水晶球的主观色彩很浓,以下这些猜想也许并不是普遍适用的,还有一些或许在五年内不能完全实现.有些虽然已成为了现实,但真理的确立不是一蹴而就的. 亲爱的读者,请你快速阅读吧,因为未来将以超越我们认知的速度发展着. 1. GP

MongoDB十二种最有效的模式设计【转】

持续关注MongoDB博客(https://www.mongodb.com/blog)的同学一定会留意到,技术大牛Daniel Coupal 和 Ken W. Alger ,从 今年 2月17 号开始,在博客上持续发表了 如何在MongoDB中设计数据库模式的方法.截止到今日(4月20号),12种模式设计的方法已全部与读者见面.本人认为,此系列文章,总结的非常全面,很多地方有首创性,涵盖的场景也很多,并且有理论总结,也有案例分析.文中分享的很多知识使人"如听仙乐耳暂明",开卷受益,常读

电脑密码的十二种破解方法

日常操作中,我们经常要输入各种各样的密码,例如开机时要输入密码,QQ时也要先输入密码,假如你忘记了这些密码,就有可能用不了机器.打不开文件.不能聊天…… 也许还会造成很大的损失!下面我们就介绍电脑操作中常用密码的破解方法,希望能解你燃眉之急! 一.遗忘了SYSTEM密码如果你遗忘了CMOS设置中的SYSTEM密码,就无法启动机器了,解决的办法只能是:打开机箱,把电池取下.正负极短接,给 CMOS 放电,清除CMOS中的所有内容(当然也就包括密码),然后重新开机进行设置.注意:有些主板设置了CMO

PHP十二种设计模式

PSR-0规范的设计基础 1.全部使用命名空间 2.所有php文件必须自动载入,不能有include/require spl_autoload_register 3.单一入口模式 1.三种基本的设计模式 工厂模式 用一个工厂方法去替换掉一个new class Factory{ static function createDatabase(){ $db = new Database; return $db; } } 使用的时候就可以用 $db = Factory::createDatabase()

PHP语言的十二种特性

命名约定前后矛盾.版本兼容相互冲突,PHP语言在各个层面上都给开发人员带来了诡异而难解的谜局--这就是我们今天要讨论的话题.我们真的对PHP深恶痛绝吗?不,当然不是.如果真是这样,我们就不会如此广泛地使用Drupal.WordPress以及其它一些同类框架.假设我们真的讨厌PHP,那么最直接的办法是转向Java而非在这里放什么厥词.不过需要提醒各位拥护者的是,也别因为熟悉而对PHP的那些缺陷视而不见. 转换令人头痛 在利用PHP进行项目创建的过程中,最大的挑战之一在于牢记我们哪些时候需要输入HT

EXT的layout十二种布局

layout的有效值有absolute,accordion,anchor,border,card,column,fit,form和table 1.absolute:在容器里面根据所给的坐标定位显示 2.accordion:手风琴的效果,一般用于侧边栏 代码演示:Ext.onReady(function(){ var panel=new Ext.Panel({ renderTo:'paneldiv', title:'容器组件', layout:'accordion', width:500, hei

慎吃十二种不利健康的家常菜(转贴)

  生活中,有些食物的搭配组合已经是由来已久,其美妙的口味也被人们所接受,习惯上也觉得这些 种搭配是顺理成章的了.但从健康的角度讲,还是不科学的,人家健康专家可是有着充足的理由呢. 这里给您列出12种被健康专家列为错误的菜肴搭配.不过,不这样吃,有的东西还真不好吃,我想少 这么吃也许问题不大吧.如果您很重视健康,还是听从专家们的忠告,别总是傻吃.贪吃. 1.土豆烧牛肉: 危害:胃肠功能紊乱 理由:由于土豆和牛肉在被消化时所需的胃酸的浓度不同,就势必延长食物在胃中的滞留时间, 从而引起胃肠消化吸收