当前位置: 首页 > news >正文

网站怎么做关键词库企业咨询顾问服务协议

网站怎么做关键词库,企业咨询顾问服务协议,建站之星模块,宁波 做网站的数论基础知识和模板-CSDN博客 问题分析 题目要求统计满足特定条件的排列数目。关键在于&#xff1a; 从给定的数组中选择两个数作为 n 和 m剩余的数必须能够组成 n 个 m 或 m 个 n 的结构计算所有可能的有效排列数目 完整 #include <bits/stdc.h> using namespace st…

 数论基础知识和模板-CSDN博客

 

问题分析

题目要求统计满足特定条件的排列数目。关键在于:

  1. 从给定的数组中选择两个数作为 n 和 m
  2. 剩余的数必须能够组成 n 个 m 或 m 个 n 的结构
  3. 计算所有可能的有效排列数目

完整

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL MOD = 1e9+7;// 快速幂计算 a^b % MOD
LL qpow(LL a, LL b) {LL res = 1;while (b) {if (b & 1) res = res * a % MOD;a = a * a % MOD;b >>= 1;}return res;
}int main() {int sum; cin >> sum;               // 输入数组长度int scale = sum - 2;              // 目标排列长度 = sum - 2// 预处理阶乘数组 jc[i] = i! % MODvector<LL> jc(500001, 1), invjc(500001);for (int i = 1; i <= 500000; i++) jc[i] = jc[i-1] * i % MOD;// 预处理阶乘的逆元数组 invjc[i] = (i!)^(-1) % MODfor (int i = 0; i <= 500000; i++) invjc[i] = qpow(jc[i], MOD-2);// 统计每个数的出现次数vector<int> bucket(500001);for (int i = 0; i < sum; i++) {int x; cin >> x;bucket[x]++;}LL ans = 0;// 枚举所有可能的因子对 (i, scale/i)for (int i = 1; i <= scale; i++) {if (scale % i == 0 && bucket[i] && bucket[scale/i]) {int n = i, m = scale/i;bucket[n]--; bucket[m]--;  // 临时减少计数// 计算剩余元素的排列数目LL now = jc[scale];for (int j = 1; j <= 500000; j++)if (bucket[j]) now = now * invjc[bucket[j]] % MOD;ans = (ans + now) % MOD;bucket[n]++; bucket[m]++;  // 恢复计数}}cout << ans << endl;return 0;
}

核心算法解析

1. 数学原理
  • 排列数计算:对于长度为 scale 的排列,若元素 x 出现 c_x 次,则排列数为:

    scale! / (c_1! * c_2! * ... * c_k!)
    
     

    在模运算下,除法转换为乘以逆元:a/b ≡ a * b^(-1) (mod MOD)

  • 逆元计算:使用费马小定理 a^(MOD-1) ≡ 1 (mod MOD),因此 a^(-1) ≡ a^(MOD-2) (mod MOD)

2. 预处理优化
  • 阶乘数组jc[i] 存储 i! % MOD,递推公式:jc[i] = jc[i-1] * i % MOD
  • 逆元数组invjc[i] 存储 (i!)^(-1) % MOD,通过快速幂计算:invjc[i] = qpow(jc[i], MOD-2)
3. 因子枚举策略
  • 枚举范围:遍历 i 从 1 到 scale,检查 i 是否是 scale 的因子
  • 条件判断:若 scale % i == 0 且数组中存在足够的 i 和 scale/i,则它们可能是有效解
  • 排列计算:临时减少 i 和 scale/i 的计数,计算剩余元素的排列数并累加
4. 复杂度分析
  • 预处理:阶乘和逆元计算均为 O (N)
  • 枚举因子:O (scale),实际有效因子对数量远小于 scale
  • 排列计算:每次 O (N),但仅在有效因子对时执行
  • 总复杂度:O (N + scale),其中 N = 5e5

 

http://www.dtcms.com/a/514897.html

相关文章:

  • 网站设计常州苏州企业网站建设开发与制作
  • 北京建设网站网站建设公司的服务定位
  • 众美商务公馆做网站哪里有网页设计培训
  • 手机怎么自己建网站百度站点
  • 什么网站可以做图赚钱吗做ui设计工资一般多少
  • 开发cms网站系统wordpress批量添加tag
  • 企业网站备案管理系统网站收录不好的原因
  • 网站做超链接的方式有哪些海口 网站制作公司
  • wap网站软件wordpress loginview
  • 搜索网站大全WordPress知更鸟首页幻灯
  • 网站单页做301重庆建设工业集团官网
  • 淘宝的网站建设深圳投资推广署官网
  • 南昌优化网站服务企业网站搜索优化
  • 秦皇岛网站制作与网站建设常德网站建设产品
  • 网站名字备案怎样在浏览器上找网站
  • wordpress网站推翻重建中国有色金属建设股份有限公司网站
  • 企业信息公开网站如何进入优容网站
  • 计算机网站php设计代做线上推广费用
  • 网站关键词的优化在哪做定制鱼缸一般多少钱
  • 网站建设技能考外面网站怎么做的
  • 长春好的做网站公司旅游网站规划说明
  • 建建设人才市场官方网站wordpress的修改后主题后台出现已损坏的修复
  • 怎么自己做网站赚钱手机网站域名哪里注册时间
  • 建设一个视频网站需要什么条件网站名称如何设置
  • 网站开发的方案模板网站哪家好
  • 什么网站有教做变蛋的红孩子母婴网站开发背景
  • 建设网站哪家比较好代理记账公司收费表
  • dedecms网站后台利用百度图片做网站外链
  • 榆林医疗网站建设县区网站集约化建设
  • wordpress火车头发布模板上海网站优化推广公司