![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
组合数学
159739
这个作者很懒,什么都没留下…
展开
-
poj1019组合数学
题意:给定一个序列,问序列第i位数字; 思路:显而易见,在1~9中,序列长度依次增加1,在10~99中,序列长度依次增加2。那么我们可以求出所有num[n](num[n]以数n结尾的序列长度),因为给的条件(1 ≤ i ≤ 2147483647),所以n最大为31269(对所有的num[n]求个和就知道了);具体思路看代码吧;#include<iostream>#include<algorith原创 2017-08-16 12:21:08 · 213 阅读 · 0 评论 -
poj1942组合数学
题意:给定一个矩阵网格n*m,要从左下角走到右上角,每次只可以往上或者往右走,问有多少种走法; 思路:以为每次只能向上或者向右,那么总共只需要走n+m步,其中n步向上,m步向右,所以我们只需要确定哪几步向上走那么向右的也就确定了。即从n+m步中选出n步向上,即C(n+m,n),组合问题;#include<iostream>#include<algorithm>#include<string>原创 2017-08-16 12:27:28 · 393 阅读 · 0 评论 -
poj3252组合数学
题意:一个数转换成二进制数,零的个数大于等于一的个数的数称为圆数,例如9转换成1001,0的个数为2,1的个数为2,所以9为圆数;输入两个数start和end,问start到end有多少个圆数。 思路:start到end中有多少个圆数,我们只需要求出num[0,start]和num[0,end),num[0,start]-num[0,end)即为所求; 以二进制数10011000为例,位数为8,原创 2017-08-14 17:13:06 · 224 阅读 · 0 评论 -
poj1850组合数学
题意:给你一个字符串s,输出s在字典序全排列中的位置(从小到大排列)。 思路:长度为m的字符串有C(26,m),这是显而易见的,从26个字母中挑m个,因为要升序排列,所以只有一种排法,即C(26,m)为个数;这样我们就可以求出长度比字符串s小的字符串有多少个。len为字符串s的长度。 长度相同但排在字符串s前面的有多少个?对于 s 的每一位 s[i] 和左边相邻的 s[i-1],如果s[i] >原创 2017-08-14 20:04:07 · 296 阅读 · 0 评论