组合数学
live4m
老菜逼了
展开
-
hdu2067 小兔的棋盘 (卡特兰数打表)
Problem Description小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间,拆开一看是一个棋盘,小兔有所失望。不过没过几天发现了棋盘的好玩之处。从起点(0,0)走到终点(n,n)的最短路径数是C(2n,n),现在小兔又想如果不穿越对角线(但可接触对角线上的格点),这样的路径数有多少?小兔想了很长时间都没想出来,现在想请你帮助小兔解决这个问题,对于你来说应该不难吧!...原创 2019-10-20 14:17:41 · 127 阅读 · 0 评论 -
bzoj3028 食物 (普通型生成函数)
Description明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!我们暂且不讨论他有多么NC,他又幻想了他应该带一些什么东西。理所当然的,你当然要帮他计算携带N件物品的方案数。他这次又准备带一些受欢迎的食物,如:蜜桃多啦,鸡块啦,承德汉堡等等当然,他又有一些稀奇古怪的限制:每种食物的限制如下:承德汉堡:偶数个可乐:0个或1个鸡腿:0个,1个或2个蜜桃多:奇数个鸡块:...原创 2019-10-16 11:42:41 · 182 阅读 · 0 评论 -
组合数取模(卢卡斯定理)
问题描述:给n,m,p,输出C(n,m)%p的值思路:卢卡斯定理code:递归实现//https://loj.ac/problem/10228#include<cstdio>#include<iostream>using namespace std;#define int long longint n,m,mod;int ppow(int a,int...原创 2019-10-12 20:53:07 · 162 阅读 · 0 评论 -
hdu2082 找单词 (普通型生成函数)
Problem Description假设有x1个字母A, x2个字母B,… x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,… 字母Z的价值为26。那么,对于给定的字母,可以找到多少价值<=50的单词呢?单词的价值就是组成一个单词的所有字母的价值之和,比如,单词ACM的价值是1+3+14=18,单词HDU的价值是8+4+21=33。(组成的单词与排列顺序无关,比如ACM与CM...原创 2019-10-08 16:46:34 · 217 阅读 · 0 评论 -
普通型生成函数
hdu2082 找单词数量有限,价值固定题解:hdu2082hdu2110 Crisis of HDU数量有限,价值不固定和hdu2082差不多,只是价值不固定,把价值改成变量就行了code:#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#...原创 2019-10-08 17:00:50 · 253 阅读 · 0 评论 -
hdu1521 排列组合 (指数型生成函数)
Problem Description有n种物品,并且知道每种物品的数量。要求从中选出m件物品的排列数。例如有两种物品A,B,并且数量都是1,从中选2件物品,则排列有"AB","BA"两种。Input每组输入数据有两行,第一行是二个数n,m(1<=m,n<=10),表示物品数,第二行有n个数,分别表示这n件物品的数量。Output对应每组数据输出排列数。(任何运算不会超出2^...原创 2019-10-09 00:09:09 · 189 阅读 · 0 评论 -
P3014 [USACO11FEB]牛线Cow Line (康托展开)
问题描述N(1<=N<=20)头牛,编号为1…N,正在与FJ玩一个疯狂的游戏。奶牛会排成一行(牛线),问FJ此时的行号是多少。之后,FJ会给牛一个行号,牛必须按照新行号排列成线。行号是通过以字典序对行的所有排列进行编号来分配的。比如说:FJ有5头牛,让他们排为行号3,排列顺序为:1:1 2 3 4 52:1 2 3 5 43:1 2 4 3 5因此,牛将在牛线1 2 4 3...原创 2019-10-10 13:47:49 · 196 阅读 · 0 评论 -
指数型生成函数
hdu1521 排列组合数量固定code:hdu1521hdu2065 "红色病毒"问题数量无限题目要求A、C出现偶数次,B、D出现任意次则生成函数为:因为我们要选n个字母,所以要找xn/(n!)的项的系数这就要用到泰勒展开:e4x展开后我们需要的项的系数为4n(把上面式子的x换成4x就行了)同理e2x展开后我们需要的项的系数为2n,因为我们原式子中是2e2x,自...原创 2019-10-10 17:10:50 · 418 阅读 · 0 评论