与斐波那契数列相关的对换题目 CF553B Kyoya and Permutation

news/2025/10/5 18:56:50/文章来源:https://www.cnblogs.com/Reisentyan/p/19126899

定义标准循环表示法
即,对于每个循环,都将其最大值放在最前面,然后将这若干个循环按照最大值从小到大排列。这样,\([4,1,6,2,5,3]\)
标准循环表示法就是
\((4 2 1)(5)(6 3)\)

定义好的排列:原排列和标准循环表示一致

寻找第k个字段序的好的排列

此题手玩n=4的样例可以发现:
“好的排列”只能由1..n的顺序排列通过以下操作得来:

在原排列上,选择若干个不相交的,长度为2的区间,然后翻转每个区间。
这个性质瞪眼法有点难瞪
长度为 n 的序列最多有几个好的排列?
n只能与n-1翻转,于是,对于一个排列,n要么和n-1翻转,要么不翻转
n和n-1翻转的话,即 \(f(n)+=f(n-2)\)
n不翻转的话,即 \(f(n)+=f(n-1)\)

这就是一个斐波那契的式子!
\(f(n) = f(n-1)+f(n-2)\)

然后我们递归的填数字就好了,递归写起来很简单,只是有点难想

#include<iostream>
#include<vector>
using namespace std;
#define ffp(x,y,z) for(ll (x)=(y);(x)<=(z);(x++))
#define ll long long int
#define q_ read()
inline ll read()
{ll x = 0, f = 1;char ch = getchar();while (ch < '0' || ch>'9'){if (ch == '-')f = -1;ch = getchar();}while (ch >= '0' && ch <= '9')x = x * 10 + ch - '0', ch = getchar();return x * f;
}void solve()
{ll n = q_;ll k = q_;vector<ll>fb(n + 2, 0);vector<int>num(n + 2, 0);fb[2] = fb[1] = 1;ffp(i, 3, n)fb[i] = fb[i - 1] + fb[i - 2];auto bud = [&](auto&& bud, int l,int r, ll nk)->void{if (l > r) { return; }if (l == r){num[l] = l;return;}int len = r - l + 1;//需要构造一个长度为len的,值为nk的数列if (nk <= fb[len])//可以放进len里面{num[l] = l;bud(bud, l + 1, r, nk);//把下面的全部翻转,然后翻转当前这个}else//太大了,需要翻转{num[l] = l+1;num[l + 1] = l;bud(bud, l + 2, r, nk - fb[len]);}};bud(bud, 1, n, k);ffp(i, 1, n)cout << num[i] << " \n"[i == n];
}int main()
{int t = 1;while (t--){solve();}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/928603.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建音乐网站网站备案说明

字符串优化 小字符会优化为栈上&#xff0c;长度大于15才会堆声明&#xff08;带上终止符16&#xff09; 在各种实际应用中&#xff0c;使用字符串的场景不在少数&#xff0c;总有由于一些错误的代码书写&#xff0c;导致产生性能问题&#xff0c;我们今天学习一种针对字符串…

wpf .net 8 使用mvvm指南

wpf .net 8 使用mvvm指南xaml: <UserControl x:Class="WpfApp1.Controls.GWEditControl.GWEditCotrol" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" …

office办公软件

常见的办公软件就是微软的office和wps,微软的office太过臃肿,随随便便就是好几个G,国产WPS简直就是垃圾,广告多,还时不时的更新,然后被迫安装一堆软件,下面介绍一个还不错的开源,免费,无广告的办公软件。 它就…

2025.10.4训练记录

上午noip模拟 T1 题目关键在于:中奖数字的最后两位必须两两不同。 于是可以把每个后两位的状态看成『一种数』。 依次考虑每种数作为一、二、三等奖对答案造成的贡献。 于是可以 dp,状态为 \(f[i][0/1][0/1][0/1/2/3…

2025年微信小程序开发:AR/VR与电商的最新案例 - 指南

2025年微信小程序开发:AR/VR与电商的最新案例 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&qu…

2048小游戏C++板来啦! - 指南

2048小游戏C++板来啦! - 指南2025-10-05 18:44 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importan…

重庆 网站 建设 公司网络商城需要什么资质

对话框 消息对话框、字体对话框、颜色对话框、文件对话框 消息对话框 消息对话框提供了一个模态的对话框&#xff0c;用来提示用户信息&#xff0c;或者询问用户问题并得到回答 基于属性版本的API 使用该类调用构造函数&#xff0c;构造一个类对象调用成员函数exec进入执行…

详细介绍:vue+cesium示例:3Dtiles三维模型高度调整(附源码下载)

详细介绍:vue+cesium示例:3Dtiles三维模型高度调整(附源码下载)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

st表 + 变形的djs (好题

st表 + 变形的djs (好题https://codeforces.com/gym/105386/problem/J #include <bits/stdc++.h>using i64 = long long;struct STList {int n, k;std::vector<std::vector<int>> Max;STList() {}S…

1.什么是node.js、npm、vue - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

科技园区建设网站的意义个人网站名字

【Rust】001-基础语法&#xff1a;变量声明及数据类型 文章目录 【Rust】001-基础语法&#xff1a;变量声明及数据类型一、概述1、学习起源2、依托课程 二、入门程序1、Hello World2、交互程序代码演示执行结果 3、继续上难度&#xff1a;访问链接并打印响应依赖代码执行命令 三…

网站建设的常见技术有哪些怎么查询在建工程

useMemo和useCallback的用法以及区别 useCallback 和 useMemo 是 React 中的两个钩子函数&#xff0c;它们的目标都是优化性能&#xff0c;但它们在用途和使用场景上有一些区别。 useCallback useCallback 用于缓存一个回调函数&#xff0c;并在依赖项发生变化时&#xff0c…

深圳网站设计是什么简单网站搭建

1.认识二分查找 二分查找的时间复杂度:O(logN) 二分查找属于算法中耳熟能详的一类&#xff0c;通常的我们会说只有数组有序才可以使用二分查找&#xff0c;不过这种说法并不完全正确&#xff0c;只要数据具有"二段性"就可以使用二分查找&#xff0c;即我们可以找出一…

在wpf .net 8项目中使用materialDesign 4 以上版本的的注意事项

在wpf .net 8项目中使用materialDesign 4 以上版本的的注意事项新建.net8 wpf项目 nuget添加MaterialDesignThemes引用,现在可以用5.2.1,注意:可以只有添加这个包即可,因为新nuget会自动依赖引用MaterialDesignCol…

李臻20242817_安全文件传输系统项目报告_第14周 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

一站多通怎么做网站饲料行业建设网站方案设计免费下载ppt

学习java之电脑的常用快捷键和DOS窗口下的常用命令电脑一些常用的快捷键win快捷键&#xff1a;单独按Windows&#xff1a;显示或隐藏 “开始”功能表WindowsBREAK&#xff1a;显示“系统属性” 对话框WindowsD&#xff1a;显示桌面或恢复桌面WindowsM&#xff1a;最小化所有窗口…

做网站套餐enjooy wordpress

本机文件夹同步到云服务器 内容精选换一换华为云帮助中心&#xff0c;为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档&#xff0c;帮助您快速上手使用华为云服务。本节操作介绍本地MacOS系统主机通过安装“Microsoft Rem…

长沙做网站 必看 磐石网络网店设计理念

随着我国人民精神文化与物质生活的不断升级&#xff0c;定制真人手办摆件的需求变得广泛&#xff0c;易模推出易模真人手办定制服务&#xff08;小程序&#xff09;&#xff0c;帮助市场合作伙伴能够以全线上、手机端形式为用户制作真人手办&#xff0c;“全线上”的内涵包括手…

洛谷P14120 题解 - lemon

思维路径 容易注意到,这个赛制对于 BaoBao 非常不友好,因为 DreamGrid 可以通过他出的牌来决定自己的出牌。也就是说,我们不需要关注 BaoBao 的出牌顺序,只需要关注他出的每一张牌对应 DreamGrid 出的牌即可。 对于…