Cyclic Permutations
Cyclic Permutations
题意
思路
对于每个 i i i,如果存在这样的 q q q和 w w w
q q q 是 i i i 左 边 第 一 个 比 a i a_i ai 大 的 下 标
w w w 是 i i i 右 边 第 一 个 比 a i a_i ai 大 的 下 标
那 么 容 易 证 明 q q q 和 w w w 有 边 , 也 就 是 构 成 了 环
证明
因 为 ( q , i ] ( q , i ] (q,i] 中 没 有 比 a i a_i ai 大 的 , [ i , w ) [ i , w ) [i,w) 中 没 有 比 a i a_i ai 大 的, a q a_q aq 和 a w a_w aw 就 是 [ q , w ] [ q , w ] [q,w] 中 最 大 和 次 大 , 必 定 连 边
证毕
Ⅰ . 方 法 一 : 组 合 构 造 \color{Red}Ⅰ.方法一:组合构造 Ⅰ.方法一:组合构造
但是直接考虑存在环的情况比较复杂,考虑不存在环的情况。不存在环,就是对于每个 i i i不能同时向左右连边,也就是有么只有左边有数比它大,要么只有右边有数比它大换言之就是要么左边都比自己小,要么右边都比自己小 这 其 实 构 成 了 一 个 单 峰 函 数 \color{Red}这其实构成了一个单峰函数 这其实构成了一个单峰函数前面一直递增到峰值 n n n,后面一直递减
图 Ⅱ . 方 法 二 : 思 维 , \color{Red}图Ⅱ.方法二:思维, 图Ⅱ.方法二:思维,
注 意 到 这 样 一 个 事 实 , 除 了 n 这 个 特 殊 的 数 注意到这样一个事实,除了n这个特殊的数注意到这样一个事实,除了n这个特殊的数
其 他 数 都 有 比 自 己 大 的 数 , 也 就 是 一 定 会 至 少 往 外 连 一 条 边 其他数都有比自己大的数,也就是一定会至少往外连一条边其他数都有比自己大的数,也就是一定会至少往外连一条边
这 样 就 就 必 定 会 连 n − 1 条 边 , 构 成 一 颗 树
在 树 的 基 础 上 , 无 论 多 加 任 何 一 条 边 都 会 形 成 环 在树的基础上,无论多加任何一条边都会形成环在树的基础上,无论多加任何一条边都会形成环
那 么 想 构 成 树 , 每 个 数 比 自 己 大 的 数 都 落 在 自 己 的 一 侧 ( 保 证 只 向 一 侧 连 边 ) 那么想构成树,每个数比自己大的数都落在自己的一侧(保证只向一侧连边)那么想构成树,每个数比自己大的数都落在自己的一侧(保证只向一侧连边)
再 次 得 到 结 论 , 前 面 递 增 到 n , 后 面 递 减 再次得到结论,前面递增到n,后面递减再次得到结论,前面递增到n,后面递减代码
#include <bits/stdc++.h>using namespace std;
const int mod=1e9+7;
typedef long long ll;
int main() {ll n;scanf("%lld", &n);ll ans1 = 1, ans2 = 1;for (int i = 2; i <= n; i++) {ans1 = ans1 * 2 % mod;ans2 = ans2 * i % mod;}printf("%lld\n", ((ans2 - ans1) % mod + mod) % mod);return 0;
}
Cyclic Permutations相关推荐
- C. Cyclic Permutations
C. Cyclic Permutations 题目大意 给你 1~n n个数.问有几种排列可以满足: 对于每个 1≤i≤n,找到最大的 j,使得 1≤j<i 和 pj>pi,并在节点 i ...
- C. Cyclic Permutations(组合数学+单峰序列)
Problem - 1391C - Codeforces 题意: 一个长度为n的排列是由1到n的n个不同的整数按任意顺序组成的数组.例如,[2,3,1,5,4]是一个排列组合,但[1,2,2]不是排列 ...
- Codeforces Round #663 (Div. 2)
2020/8/9晚上断网了,本来不想打就顺便看看题目,发现能做几个,然后就交了.(做完1.2两题才敢交)最终做了3个题tcl. A - Suborrays 脑筋急转弯题目.位运算OR运算结果只会变大不 ...
- Codeforces Round #663 (Div. 2) (CD)
C. Cyclic Permutations 思路:全排列减去单峰排列即为答案. 单峰排列即:峰左边下标的左边没有比它大的,峰右边的下标的右边没有比它大的. 单峰排列个数: 2 n − 1 2^{n- ...
- CF 1093 E. Intersection of Permutations
E. Intersection of Permutations 链接 题意: 给定两个序列,询问第一个排列的[l1,r1]和第二个排列[l2,r2]中有多少个共同的数,支持在第二个排列中交换两个数. ...
- leetCode 46. Permutations 回溯问题 | Medium
46. Permutations(全排列问题--回溯问题经典) Given a collection of distinct numbers, return all possible permutat ...
- 47. Permutations II
Given a collection of numbers that might contain duplicates, return all possible unique permutations ...
- 关于AXI DMA CYCLIC 调试过程中的问题
cyclic 必须是两个以上的BD 块儿 而且最后的BD 不能是BD 连中的块儿 终于找到 cyclic 不行的原因了
- Permutations I II leetcode
Permutations I Given a collection of distinct numbers, return all possible permutations. For example ...
最新文章
- win7冒险岛java,win7玩冒险岛不兼容怎么办?解决win7玩冒险岛不兼容的方法
- 增长黑客入门:手把手教你增长模型的实践操作
- rabbitmq安装与配置(windows)亲测有效!!!
- iOS:UIView的block函数实现转场动画---双视图
- 实验 7 场景运行监控及性能测试结果分析_实验报告--软件功能测试与性能测试实验
- 金色丰收的FreeEIM季节
- 如何产生cpk图形_在评估或选型SMT设备的时候,“印刷机、贴片机Cp、Cpk是什么意思...
- 基于flask的网页聊天室(四)
- 使用Tomcat Catalina进行Tomcat服务器虚拟目录设置
- maven项目没有src/test/java和src/test/resources目录问题解决
- robots.txt限制些什么屏蔽内容与安全性的考虑
- 河南理工大学计算机科学与技术怎么样,河南理工大学计算机科学与技术怎么样...
- mac视频播放器哪个最好用?不妨试试OmniPlayer Pro mac中文版吧
- Exp2_固件程序设计 20165226_20165310_20165315
- Java 多个文件压缩为一个zip文件
- html代码广告代码大全,强制弹窗广告代码大全.doc
- [ github ] 10道题串起 Pandas 常用知识点
- php 截图ppt文件,介绍ppt文件截图并插入
- IntelliJ IDEA运行JAVA
- Centos8怎么关闭终端响铃? Centos系统取消终端响铃的方法