首页
比赛
题库
课程
竞赛讨论区
登录
/
注册
去牛客
首页
>
CCA的排列
7条解析
开通博客写题解
M_sea
发表于 2020-09-05 22:28:32
模拟出一次操作后的排列,那么一次操作相当于乘上了这样一个置换。找出所有环,则每个数会在环上移动 步,按顺序求出环上的元素,那么加上 后对环长取模即可得到最后的数。 // ==================================== // author: M_sea // we
展开全文
曾经不是人
发表于 2020-09-06 09:18:51
A 排列 做法,先建模,然后快速幂 m次反转为一次操作,第一次操作后的得到的数组为模式mode。 例如 mode=[3,2,1],其中mode[1]=3的含义为after[1]=before[3],即变换后数组的第1个位置存放原数组第3个位置的数。 操作之间满足交换率和结合律,可以类比乘法计算,
展开全文
__故人__
发表于 2020-09-16 13:41:25
分析 这个可以暴力求出一个循环内的变换。这样可以考虑置换乘法的结合率,然后把置换拆成循环。这样是可以通过的。但是其实现在等同于只有一个操作重复 次,这个其实可以倍增优化,时间复杂度为 。 代码 #include<bits/stdc++.h> using namespace std;
展开全文
牛客56905002号
发表于 2020-09-06 08:15:14
题目链接:https://ac.nowcoder.com/acm/contest/7225/A 题目描述 牛牛拿到了一个长度为N的排列和M个区间,一开始排列是1、2、3......N。 然后他将这些区间在按顺序在排列上翻转,全部翻转一遍称一次操作。 现在他要去搞文化了...所以拜托你告诉他经过K次操
展开全文
Scarlet_Hypoc
发表于 2020-10-07 11:21:34
考虑枚举山峰的最右边位置 ,那么 ~ 是一个不下降序列, ~ 也是个不下降序列。 考虑一个最大高度为 的不下降序列的方案数,做一下差分,那么有若干个位置不为 ,且这些位置的总和为 ,那么相当于将 分给这 个位置,由于数字都大于 ,所以第一个位置的差分值至少为 ,所以实际上是将 分给
展开全文
Ayonuasi
发表于 2020-09-06 12:20:02
一堆憨批题 A:直接倍增即可。离一血差10s,自闭。 #include<bits/stdc++.h> using namespace std; #define rep(i,x,y) for(int i=x;i<=y;i++) int n,m,k; const int N=1e5+
展开全文
肖先生~
发表于 2020-09-12 16:18:20
快速幂思想 题目描述牛牛拿到了一个长度为N的排列和M个区间,一开始排列是1、2、3......N。然后他将这些区间在按顺序在排列上翻转,全部翻转一遍称一次操作。现在他要去搞文化了...所以拜托你告诉他经过K次操作后的排列长什么样子。 题目分析刚刚开始看题目的时候一脸懵逼,没看懂题目的意思,不过想想毕
展开全文
查看本题
查看本题讨论
相关比赛
5813-5.19测试
进入比赛
7225-牛客IOI周赛18-提高组
进入比赛
7795-牛客IOI周赛18-提高组(重现赛)@小涂同学啦啦啦
进入比赛
104849-基础一星
进入比赛
等你来战
查看全部
第十二届成都信息工程大学ACM程序设计竞赛同步赛
报名截止时间:2025-06-22 15:00
牛客周赛 Round 97
报名截止时间:2025-06-22 21:00
牛客挑战赛80
报名截止时间:2025-06-27 22:00
第五届上海理工大学程序设计全国挑战赛
报名截止时间:2025-06-28 17:30
牛客周赛 Round 98
报名截止时间:2025-06-29 21:00
2025牛客暑期多校训练营1
报名截止时间:2025-07-15 17:00
2025牛客暑期多校训练营2
报名截止时间:2025-07-17 17:00
扫描二维码,关注牛客
意见反馈
下载牛客APP,随时随地刷题