首页 > 逆序对
头像 fuzhiji
发表于 2020-04-15 15:18:48
方法一:找规律+快速幂假设需要构成长度为n的字符串,任取其中两个元素组成1 0,那么会有种选择方法是不一样的,对于长度为n的字符串,选择一种方法后,还会剩下 个字符,每个字符可以是0或1,那么就有种可能,所以可以推出答案式子因为有个取模操作,所以除法要换成乘法,因为这题的公式可以抵消,所以不需要求逆 展开全文
头像 wxyww
发表于 2020-04-15 14:02:11
solution 枚举一个为0的位置,然后想办法统计该位置产生的贡献。显然,一个为0的位置产生的贡献就是它前面1的个数。 如果位置为0,那么他前面共有种可能的序列,每种序列都有个数字,那么总的数字数量就是。显然的,这些数字中0和1的数量应该是相等的。所以其中1的个数就是。然后考虑后面的位置共有种可能 展开全文
头像 Kur1su
发表于 2020-04-15 20:16:12
Solution n >= 1e18, 显然是一道公式题说实话, 这类题我一般是猜公式先说说我怎么猜的已知:n = 1, ans = 0;n = 2, ans = 1;n = 3, ans = 6;由于已知的组数太少, 我们考虑手玩出n = 4的情况n = 4, ans = 24;其次的话, 展开全文
头像 一只橘橘猫
发表于 2020-04-15 13:47:29
题意: 解法: 时间复杂度: std: #include <bits/stdc++.h> using namespace std; #define ll long long const ll mod = 1e9 + 7; ll pow_mod(ll a,ll b){ ll 展开全文
头像 shyyhs
发表于 2021-01-11 20:20:32
挺好的一个题目.考虑每组逆序对的贡献,就是,然后有组,然后答案就算它们相乘,注意n==1时输出0.然后注意在做乘法的时候把n%mod.因为n很大. #include <bits/stdc++.h> using namespace std; typedef long long ll; co 展开全文
头像 Devlyp
发表于 2020-04-17 11:02:32
题目描述 求所有长度为n的01串中满足如下条件的二元组个数: 设第i位和第j位分别位ai和aj(i<j),则ai=1,aj=0。 答案对1e9+7取模。 输入描述: 输入一个n。 输出描述: 输出答案对1e9+7取模 #include<bits/stdc++.h> 展开全文
头像 精神病科黄主任
发表于 2020-04-15 12:59:04
考虑从n个位置任取两个,前面位置放1,后面位置放0.所以这是一个组合数n个位置固定了两个位置了,还剩下n-2个位置,每个位置可以放0或者1,是个幂级数所以答案就是进行的除法运算时候,因为模数是个质数,直接用费马小定理即可。当然了,注意特判n=1的情况,因为对于快速幂只能进行非负数,而幂级数的指数部分 展开全文
头像 19_hanhan
发表于 2020-04-15 16:16:59
题目 题目描述: 求所有长度为n的01串中满足如下条件的二元组个数: 设第i位和第j位分别位ai和aj(i<j),则ai=1,aj=0。 答案对1e9+7取模。 输入描述: 输入一个n。 输出描述: 输出答案对1e9+7取模 备注: 展开全文
头像 huangzhonghe
发表于 2021-02-18 19:11:36
逆序对 这是一道数学题,刚开始我还以为是一道的版题。 根据样例提示我们发现,这道题跟刚刚所学的数学组合数有关系。 一个长度为的字符串,任取其中两个元素组成二元组,那么会有种选择方法是不一样的。选择一种方案后,还有个字符,有种可能。 所以:
头像 WA_TLE
发表于 2020-04-16 10:46:43
题意:给一个计算所有长度为n的01序列的贡献和,每个序列的贡献为对数满足题解:我们来考虑第位为对答案产生的贡献。那么对于特定的序列,若就对答案产生贡献,那么的序列就会有个,而要使就有组,因此第位为对答案产生的贡献为因此答案为代码: #include<bits/stdc++.h> #def 展开全文