Cyclic Permutations

  1. 题意

  2. 思路
    对于每个 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,后面递减

  3. 代码

#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相关推荐

  1. C. Cyclic Permutations

    C. Cyclic Permutations 题目大意 给你 1~n n个数.问有几种排列可以满足: 对于每个 1≤i≤n,找到最大的 j,使得 1≤j<i 和 pj>pi,并在节点 i ...

  2. C. Cyclic Permutations(组合数学+单峰序列)

    Problem - 1391C - Codeforces 题意: 一个长度为n的排列是由1到n的n个不同的整数按任意顺序组成的数组.例如,[2,3,1,5,4]是一个排列组合,但[1,2,2]不是排列 ...

  3. Codeforces Round #663 (Div. 2)

    2020/8/9晚上断网了,本来不想打就顺便看看题目,发现能做几个,然后就交了.(做完1.2两题才敢交)最终做了3个题tcl. A - Suborrays 脑筋急转弯题目.位运算OR运算结果只会变大不 ...

  4. Codeforces Round #663 (Div. 2) (CD)

    C. Cyclic Permutations 思路:全排列减去单峰排列即为答案. 单峰排列即:峰左边下标的左边没有比它大的,峰右边的下标的右边没有比它大的. 单峰排列个数: 2 n − 1 2^{n- ...

  5. CF 1093 E. Intersection of Permutations

    E. Intersection of Permutations 链接 题意: 给定两个序列,询问第一个排列的[l1,r1]和第二个排列[l2,r2]中有多少个共同的数,支持在第二个排列中交换两个数. ...

  6. leetCode 46. Permutations 回溯问题 | Medium

    46. Permutations(全排列问题--回溯问题经典) Given a collection of distinct numbers, return all possible permutat ...

  7. 47. Permutations II

    Given a collection of numbers that might contain duplicates, return all possible unique permutations ...

  8. 关于AXI DMA CYCLIC 调试过程中的问题

    cyclic 必须是两个以上的BD 块儿 而且最后的BD 不能是BD 连中的块儿 终于找到 cyclic 不行的原因了

  9. Permutations I II leetcode

    Permutations I Given a collection of distinct numbers, return all possible permutations. For example ...

最新文章

  1. win7冒险岛java,win7玩冒险岛不兼容怎么办?解决win7玩冒险岛不兼容的方法
  2. 增长黑客入门:手把手教你增长模型的实践操作
  3. rabbitmq安装与配置(windows)亲测有效!!!
  4. iOS:UIView的block函数实现转场动画---双视图
  5. 实验 7 场景运行监控及性能测试结果分析_实验报告--软件功能测试与性能测试实验
  6. 金色丰收的FreeEIM季节
  7. 如何产生cpk图形_在评估或选型SMT设备的时候,“印刷机、贴片机Cp、Cpk是什么意思...
  8. 基于flask的网页聊天室(四)
  9. 使用Tomcat Catalina进行Tomcat服务器虚拟目录设置
  10. maven项目没有src/test/java和src/test/resources目录问题解决
  11. robots.txt限制些什么屏蔽内容与安全性的考虑
  12. 河南理工大学计算机科学与技术怎么样,河南理工大学计算机科学与技术怎么样...
  13. mac视频播放器哪个最好用?不妨试试OmniPlayer Pro mac中文版吧
  14. Exp2_固件程序设计 20165226_20165310_20165315
  15. Java 多个文件压缩为一个zip文件
  16. html代码广告代码大全,强制弹窗广告代码大全.doc
  17. [ github ] 10道题串起 Pandas 常用知识点
  18. php 截图ppt文件,介绍ppt文件截图并插入
  19. IntelliJ IDEA运行JAVA
  20. Centos8怎么关闭终端响铃? Centos系统取消终端响铃的方法

热门文章

  1. 解决问题:SpringMvc中转发的html文件中文是乱码
  2. 基于LPC55xxx CM33核的TrustZone原理与应用
  3. Winsock的异步模式的I/O模型
  4. 文件打开方式打不开那些事。
  5. sobel算子检测图像清晰度
  6. 第12周 oj 逆序输出
  7. EasyRecovery Photo16数据恢复软件免费版下载或使用方法及安装激活教程
  8. 【bsauce读论文】Vetting Imbalance Reference Counting in Linux kernel with Symbolic Execution
  9. 微信公众号自定义菜单栏绑定关联小程序
  10. asp.net旅游网站