Good Permutations - 题目 - Daimayuan Online Judgehttp://oj.daimayuan.top/course/11/problem/851思路:纯纯推公式题。

首先考虑如何成环,

对于数列中三个数 ....a1......a2.....a3.......,如果a1,a3是对于a2满足条件的两个数,namo,a2连a1,a2连a3.因为是个排列,所以a1,a3肯定有个是大的数,假设a1>a3,namo,由条件可以得到,a1到a3之间没有比a2大的数,namo,a1和a3肯定也可以连一条边。这时候就可以就可以构成环。

namo,怎么求呢,不如考虑其的反面,有多少个不难构成这种情况,不难发现就是要构成这种情况:

最高点那个位置就是n,namo还剩下n-1个数,考虑n左边有0,1,2......n-1个数的情况之和。就是

 C(i,n-1),二项式之和就是

所以就推出了公式: n!-

代码相当简单:

//#define pei_pei_//#include<bits/stdc++.h>
#include<iostream>
#include<cmath>
#include<queue>
#include<vector>
#include<string>
#include<cstring>
#include<functional>
#include<iomanip>
#include<map>
#include<unordered_map>
#include<algorithm>
#include<set>
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define FI first
#define SE second
#define _for(type,i,a,b) for(type i=(a);i<(b);++i)
#define _efor(type,i,a,b) for(type i=(a);i<=(b);++i)
#define _rfor(type,i,a,b) for(type i=(a);i>(b);--i)
#define _refor(type,i,a,b) for(type i=(a);i>=(b);--i)
#define _sfor(p,st) for(auto &p:st)
#define endl '\n'
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
typedef pair<double,int> pdi;
const double pi=acos(-1.0);
const double eps=1e-8;
const int mod=1e9+7;
const int _mod=998244353;
const ll inf=0x3f3f3f3f3f3f3f3f;
const int maxn=200010;
ull base=1331;
//-------------------------------------------------------------------ll po[1000010];ll f_mod(ll x,ll n){ll res=1;while(n){if(n&1)res=res*x%mod;x=x*x%mod;n>>=1;}return res;}
//-------------------------------------------------------------------
signed main(){//ifstream cin("D:\\in.txt");//ofstream cout("D:\\out.txt");IOS;#ifdef pei_pei_double be=clock();#endif // err//==================================================================po[0]=1;_efor(int,i,1,1000000){po[i]=(po[i-1]*i)%mod;;}ll T,n;cin>>T;while(T--){cin>>n;cout<<(po[n]-f_mod(2,n-1)+mod)%mod<<'\n';}//==================================================================#ifdef pei_pei_double en=clock();cout<<endl<<"time: "<<fixed<<setprecision(8)<<en-be<<" ms";#endif // errreturn 0;
}

daimayuan每日一题#851 Good Permutations相关推荐

  1. daimayuan每日一题#849 国家铁路

    题目链接:国家铁路 - 题目 - Daimayuan Online Judgehttp://oj.daimayuan.top/course/11/problem/849 有亿点点难 思路:直接枚举是o ...

  2. daimayuan每日一题#814 排队

    题目链接: 排队 - 题目 - Daimayuan Online Judgehttp://oj.daimayuan.top/course/11/problem/814 思路:首先什么情况下差的平方会最 ...

  3. daimayuan每日一题#812 互质

    题目链接:互质 - 题目 - Daimayuan Online Judgehttp://oj.daimayuan.top/course/11/problem/812 要在1到m的闭区间内找到与给出数组 ...

  4. daimayuan每日一题#810 最短路计数

    题目链接: 提交记录 #239296 - Daimayuan Online Judgehttp://oj.daimayuan.top/submission/239296 思路: 一开始写复杂了,以为要 ...

  5. daimayuan每日一题#863 吃糖果

    思路:很明显的尺取,从两端不停向中间走,遇到相等就更新.不相等就小的移动. //#define pei_pei_//#include<bits/stdc++.h> #include< ...

  6. 2022-04-14每日刷题打卡

    2022-04-14每日刷题打卡 代码源--每日一题 上帝的集合 - 题目 - Daimayuan Online Judge 题目描述 现在上帝有一个空集合,现在他命令你为他执行下列三种操作 n 次, ...

  7. 2022-04-01每日刷题打卡

    2022-04-01每日刷题打卡 代码源--每日一题 Lusir的游戏 - 题目 - Daimayuan Online Judge Lusir 正在玩一个古老的基于 DOS 的游戏. 游戏中有 N+1 ...

  8. 2022-03-10每日刷题打卡

    2022-03-10每日刷题打卡 力扣--每日一题 589. N 叉树的前序遍历 给定一个 n 叉树的根节点 root ,返回 其节点值的 前序遍历 . n 叉树 在输入中按层序遍历进行序列化表示,每 ...

  9. 2022-03-02每日刷题打卡

    2022-03-02每日刷题打卡 代码源--div2每日一题 Alice的德州扑克 - 题目 - Daimayuan Online Judge 德州扑克是目前世界上最流行的扑克游戏,全世界有众多相关的 ...

最新文章

  1. 中文 代码 谷歌_Chrome谷歌浏览器下不支持css字体小于12px的解决办法
  2. Struts2配置文件详解
  3. java生成图片验证码
  4. Python学习笔记:模块与包
  5. MFC开发IM-第二十七篇、如何引入acl,解决Json解析问题
  6. java反射取实体字符串_JAVA反射机制 通过反射 Field类获取和修改对象类的字符串值...
  7. ubantu 黑屏_死机黑屏专题上线啦,早鸟只要299,看完薪水翻一番
  8. 【第二周】结对编程(宫丽君和林莉):四则运算
  9. matplotlib-plt.title
  10. 大数据Vue项目案例总结
  11. Maven无法下载com.oracle:ojdbc14:jar解决方法
  12. python时间序列预测不连续怎么办_用Python处理非平稳时间序列攻略
  13. java源码中的生词摘录成有道词典单词本
  14. 数据包络分析--综合的双目标数据包络分析模型
  15. 各种常用的默认端口号归纳
  16. 河南大学大计算机考研复试分数线预测,2017年河南大学考研复试分数线以及复试通知...
  17. Cepton宣布与美国底特律顶级汽车制造商合作,赢得业内最大ADAS激光雷达量产订单
  18. c语言写一个电脑程序,C语言实现电脑关机程序
  19. 说一说我在创建星球这10多天,在星球里干了啥?
  20. Leetcode(13)罗马数字转整数

热门文章

  1. 25、网络必备知识:Ping命令的7个基础用法,掌握了贼厉害
  2. tradingView警报设置
  3. 深度学习入门系列21:项目:用LSTM+CNN对电影评论分类
  4. 使用mockplus设计大屏原型
  5. Python可视化和动画模拟物理
  6. C# 调用FFmpeg处理音视频的示例
  7. JAVA编写元音字母(Switch语句)
  8. 2010新浪笔试---数据挖掘
  9. 计算任意文件夹大小 , 校验大文件的一致性 , 发抢红包程序
  10. OI生涯回忆录(Part7:至高一湖南集训Day3)