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

康拓展开

康拓展开

正向展开普通解法

将一个字典序排列转换成序号。例如:12345->1,12354->2。

int f[20];
void jie_cheng(int n) { // 打出1-n的阶乘表f[0] = f[1] = 1; // 0的阶乘为1for (int i = 2; i <= n; i++) f[i] = f[i - 1] * i;
}
string str;
int kangtuo() {int ans = 1; // 注意,因为 12345 是算作0开始计算的,最后结果要把12345看作是第一个int len = str.length();for (int i = 0; i < len; i++) {int tmp = 0; // 用来计数的// 计算str[i]是第几大的数,或者说计算有几个比他小的数for (int j = i + 1; j < len; j++)if (str[i] > str[j]) tmp++;ans += tmp * f[len - i - 1];}return ans;
}
int main() {jie_cheng(10);string str = "52413";cout << kangtuo() << endl;
}

正向展开树状数组解

给定一个全排列,求出它是 1 ~ \(n\) 所有全排列的第几个,答案对 \(998244353\) 取模。

答案就是 \(\sum_{i = 1}^{n} res_{a_i} (n - i)!\)\(res_x\) 表示剩下的比 \(x\) 小的数字的数量,通过树状数组处理。

#include <bits/stdc++.h>
using namespace std;
#define LL long long
const int mod = 998244353, N = 1e6 + 10;
LL fact[N];
struct fwt{LL n;vector <LL> a;fwt(LL n) : n(n), a(n + 1) {}LL sum(LL x){LL res = 0;for (; x; x -= x & -x)res += a[x];return res;}void add(LL x, LL k){for (; x <= n; x += x & -x)a[x] += k;}LL query(LL x, LL y){return sum(y) - sum(x - 1);}
};
int main(){ios::sync_with_stdio(false);cin.tie(0);LL n;cin >> n;fwt a(n);fact[0] = 1;for (int i = 1; i <= n; i ++ ){fact[i] = fact[i - 1] * i % mod;a.add(i, 1);}LL ans = 0;for (int i = 1; i <= n; i ++ ){LL x;cin >> x;ans = (ans + a.query(1, x - 1) * fact[n - i] % mod ) % mod;a.add(x, -1);}cout << (ans + 1) % mod << "\n";return 0;
}

逆向还原

string str;
int kangtuo(){int ans = 1;  //注意,因为 12345 是算作0开始计算的,最后结果要把12345看作是第一个int len = str.length();for(int i = 0; i < len; i++){int tmp = 0;//用来计数的for(int j = i + 1; j < len; j++){if(str[i] > str[j]) tmp++;//计算str[i]是第几大的数,或者说计算有几个比他小的数}ans += tmp * f[len - i - 1];}return ans;
}
int main(){jie_cheng(10);string str = "52413";cout<<kangtuo()<<endl;
}
http://www.zskr.cn/news/29218.html

相关文章:

  • git回滚代码
  • 离散对数 bsgs 与 exbsgs
  • 【LTDC】LTDC 简介
  • 分类器案例 - -一叶知秋
  • 最大流
  • 最长路(topsort+DP算法)
  • 缩点(Tarjan 算法)
  • 常见概念
  • CNCF项目记录2025-10
  • 代理
  • 双碳目标下,MyEMS 为何成为制造企业的 “刚需工具”?
  • 树上路径交
  • 点分治 / 树的重心
  • 树论大封装(直径+重心+中心)
  • 书评-谋杀黄昏
  • 徐州信息技术服务管理体系认证渠道口碑榜:聚焦机构资质、服务案例及合规性评估
  • 完整教程:【汽车篇】AI深度学习在汽车零部件外观检测——铝铸件中的应用
  • 附加数据文件失败:操作系统错误 5:“5(拒绝访问。)”。 CREATE DATABASE 失败。无法创建列出的某些文件名
  • 20251024- 使用shell脚本分库定时备份MySQL数据
  • 2025年口碑好的食品级贴体盒,榴莲贴体盒实力源头
  • 2025年诚信的液压水渠成型机,全自动水渠成型机厂家最新权威推荐榜
  • 2025年10月扬州公考面试机构全景解析报告,基于专业测评的技术、性能及市场优势深度分析
  • 2025年耐用的陶瓷纤维异性件,硅酸铝纤维陶瓷纤维实力源头加工
  • 2025年口碑好的空气能地暖管,德国品牌地暖管厂家最新TOP推荐榜
  • 2025 年接触角测量仪厂家最新推荐榜:聚焦企业专利技术、品质管控及知名客户合作案例的权威解析
  • 2025年诚信的不锈钢网片,304不锈钢网片厂家最新推荐排行榜
  • 2025年耐用的美狮台球杆推荐TOP生产厂家
  • 2025年知名的光伏储能柜,智能储能柜推荐TOP品牌厂家
  • ISCSI技术原理与运维实践指南
  • 2025 年搅拌机设备厂家最新推荐排行榜:聚焦磁混凝系统 / 发酵罐 / 刮泥机 / 推进式 / 脱硫侧搅拌机,精选优质企业品牌