
组合数学
brucehb
这个作者很懒,什么都没留下…
展开
-
整数分解为2的幂
任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量!由于方案数量较大,输出Mod 1000000007的结果。比如N = 7时,共有6种划分方法。7=1+1+1+1+1+1+1 =1+1+1+1+1+2 =1+1+1+2+2 =1+2+2+2 =1+1+1+4 =1+2+4Input 输入一个数N(1 <= N <= 10^6) Ou...原创 2018-02-15 21:53:39 · 841 阅读 · 0 评论 -
51nod - 1627 瞬间移动
有一个无限大的矩形,初始时你在左上角(即第一行第一列),每次你都可以选择一个右下方格子,并瞬移过去(如从下图中的红色格子能直接瞬移到蓝色格子),求到第n行第m列的格子有几种方案,答案对1000000007取模。 Input单组测试数据。两个整数n,m(2<=n,m<=100000)Output一个整数表示答案。Input示例4 5Output...原创 2018-03-30 01:04:54 · 363 阅读 · 0 评论 -
计算
有一个1*n的矩阵 固定第一个数为1 其他填正整数 且相邻数的差不能超过1 求方案数%1e9+7的结果Input一个数n 表示1*n的矩阵(n<=10^6)Output一个数 表示方案数%1e9+7的结果Input示例3Output示例5思路:默慈金数#include<iostream>#include<stdio.h>#include<string.h&...原创 2018-03-31 20:54:40 · 168 阅读 · 0 评论 -
51nod - 1161 Partial Sums
给出一个数组A,经过一次处理,生成一个数组S,数组S中的每个值相当于数组A的累加,比如:A = {1 3 5 6} => S = {1 4 9 15}。如果对生成的数组S再进行一次累加操作,{1 4 9 15} => {1 5 14 29},现在给出数组A,问进行K次操作后的结果。(每次累加后的结果 mod 10^9 + 7)Input第1行,2个数N和K,中间用空格分隔,N...原创 2018-04-10 02:15:00 · 375 阅读 · 0 评论 -
翻硬币
有 n 个硬币,一开始全部正面朝上,每次可以翻转 k 个硬币( k 小于 n ),那么至少要 p 次翻转,才能让所有硬币反面朝上,求 p 的值。如果不能成功翻转则输出-1Input 输入2个数:n,k (1 <= n <= 10^9, 1 <= k <= 10^9)。 Output 输出翻转次数的最小值。如果不能成功翻转则输出-...原创 2018-04-02 23:12:59 · 257 阅读 · 0 评论 -
完美序列
如果一个序列的相邻两项差的绝对值小于等于1,那么我们说这个序列是完美的。给出一个有序数列A,求有多少种完美序列排序后和数列A相同。Input第一行一个数n(<=30000)表示完美序列的长度第二行n个数,表示数列A(每个数<=10^9,每个数出现次数<=100)Output仅包含一个整数,表示可能的方案总数(对1,000,000,007取模)Input示例61 1 2 2 3...原创 2018-06-17 23:49:31 · 2569 阅读 · 0 评论