思路:

先按照正常构造自然数:
S=2×3×…×(n−Δx)×(n−Δx+1)×…×nS=2\times 3\times \ldots \times \left( n-\Delta x\right) \times \left( n-\Delta x+1\right) \times \ldots \times nS=2×3×…×(n−Δx)×(n−Δx+1)×…×n
一般会多出一个数Δx\Delta xΔx (Δx≤n\Delta x\leq nΔx≤n)
S=2×3×…×(n−Δx)×(n−Δx+2)×…×(n+1)(Δx<n−1)\begin{aligned}S=2\times 3\times \ldots \times \left( n-\Delta x\right) \times \left( n-\Delta x+2\right) \times \ldots \times \left( n+1\right) \\ \left( \Delta x <n-1\right) \end{aligned}S=2×3×…×(n−Δx)×(n−Δx+2)×…×(n+1)(Δx<n−1)​
S=3×4×…×(n+1)(Δx=n−1)\begin{aligned}S=3\times 4\times \ldots \times \left( n+1\right) \\ \left( \Delta x=n-1\right) \end{aligned}S=3×4×…×(n+1)(Δx=n−1)​
S=3×4×…×(n+2)(Δx=n)\begin{aligned}S=3\times 4\times \ldots \times \left( n+2\right) \\ \left( \Delta x=n\right) \end{aligned}S=3×4×…×(n+2)(Δx=n)​
首先通过前缀和,前缀积,线性逆元进行数据预处理 , 之后通过二分优化找到Δx\Delta xΔx,最后带入公式分类讨论即可

代码:

#include<iostream>
#define LL long long
#define fo(i,a,b) for(int i=a;i<b;i++)
#define js ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
using namespace std;
const LL mod=1e9+7;
const int N=1e5+5;
LL sum[N],mul[N],inv[N];
void init(){sum[1]=0;mul[1]=1;inv[1]=1;//1的逆元是1fo(i,2,N){sum[i]=sum[i-1]+i;mul[i]=(mul[i-1]%mod)*i%mod;inv[i]=(mod-mod/i)*inv[mod%i]%mod;}
}
LL t,x,l,r,mid;
LL ans=0;
int main(){init();scanf("%d",&t);while(t--){scanf("%lld",&x);if(x<5){printf("%lld\n",x);continue;}l=2;r=N;while(l<r){mid=(l+r+1)>>1;if(sum[mid]<=x)l=mid;else r=mid-1;}LL res=x-sum[l];if(res==(l-1) || res==l)ans=(mul[l]*inv[2])%mod*(res+2)%mod;else ans=mul[l]*inv[l-res+1]%mod*(l+1)%mod;printf("%lld\n",ans);}return 0;
}

Detachment(数论)相关推荐

  1. 数论(一)——素数,GCD,LCM

    这是一个数论系列:) 一.素数 ×费马小定理 Theorem: 设 p 是一个素数,a 是一个整数且不是 p 的倍数,那么 很遗憾,费马小定理的逆定理是不成立的.对 a = 2,满足的非素数 n 是存 ...

  2. 【数论总结】-----励志写好一篇数论总结↖(^ω^)↗//正在施工...未完工

    近期学了学数论,来写一波总结吧. (1)排列组合,比较基础的东西了吧.//只写个概念吧,(逃: 概念:就是从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合: ...

  3. 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  4. 《算法竞赛中的初等数论》(五)正文 0x50筛法(ACM / OI / MO)(十五万字符数论书)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...

  5. 《算法竞赛中的初等数论》(四)正文 0x40反演(ACM / OI / MO)(十五万字符数论书)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...

  6. P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值) Problem Sol ...

  7. 《算法竞赛中的初等数论》(三)正文 0x30 积性函数(ACM / OI / MO)(十五万字符数论书)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...

  8. 《算法竞赛中的初等数论》(二)正文 0x20同余(ACM / OI / MO)(十五万字符数论书)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...

  9. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

最新文章

  1. RESTful服务最佳实践
  2. .NET中,字符串首字母大写的方法
  3. system-copy 和 ShellExecute 用法
  4. dedecms代码研究六
  5. 京东云 | AI人才联合培养计划
  6. linux pcre静态编译,Linux下,Nginx部署静态网站
  7. Linux运维面试题之--网页打开缓慢如何优化
  8. 管理端口_内网渗透 | 红蓝对抗:Windows利用WinRM实现端口复用打造隐蔽后门
  9. android百度地图定位自定义图标,百度地图SDK集成及根据坐标实现定位(android studio开发)...
  10. navicate 无法远程访问mysql数据库,设置用户
  11. Xcode字体新宠 Monoid
  12. Android-Adapter-View复用机制
  13. c++ 11 新特性讲解大全
  14. gg product
  15. SVM多分类问题例子+matlab代码
  16. 【java学习】多线程之高并发编程
  17. 用数学规划的方式求解优化问题
  18. php时间期间检测重叠,如何检查PHP中多个日期范围之间的重叠?
  19. 三周Java学习总结
  20. 【 Git错误记录(一)】Permissions 0755 for ‘/home/wwww/.ssh/id_rsa_github‘ are too open.

热门文章

  1. Grass Planting 题解
  2. php中import什么意思,Thinkphp中import的几个用法详细介绍
  3. Webrtc 多人视频会议系统 服务器 Licode 介绍
  4. 计算机音乐谱大全好汉歌,好汉歌简谱-刘欢-电视剧《水浒传》主题曲
  5. 嵌入式软件单元测试 的必要性和心得
  6. Codeforces 892A. Greed
  7. [DB2]DB2备份和恢复
  8. 海龟交易法则12_脚踏实地地测试
  9. 基因测序仪四十年:回顾、致敬与展望
  10. CSS 之 Flex布局