/*
HDU5976 Detachment
http://acm.hdu.edu.cn/showproblem.php?pid=5976
数论 等差数列
*
*
*/
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
const int mod=;
const int Nmax=;
vector<long long> v;
long long f[Nmax];
long long g[Nmax];
long long qpow(long long base,int n)
{
long long ans=1LL;
base=base%mod;
while(n>)
{
if(n&)
ans=ans*base%mod;
base=(base*base)%mod;
n>>=;
}
while(ans<)
ans+=mod;
return ans;
} int main()
{
//freopen("3.in","r",stdin);
int t;
scanf("%d",&t);
long long x;
f[]=1LL; f[]=0LL;
f[]=2LL;
g[]=1LL;
g[]=2LL;
v.push_back(f[]);
v.push_back(f[]);
for(int i=;i<Nmax;i++)
{
g[i]=1LL*i*g[i-]%mod;
f[i]=1LL*i+f[i-];
v.push_back(f[i]);
}
//printf("%lld\n",f[Nmax-1]);
while(t--)
{
long long ans=1LL;
scanf("%lld",&x);
int j=;
int k=;
for(int i=;i<Nmax;i++)
{
if(x>=f[i] && x<f[i+])
{
j=i;
break;
}
}
//printf("bj:%d\n",j);
j=lower_bound(v.begin(),v.end(),x)-v.begin();
while(!(x>=f[j]&& x<f[j+]))
j++;
//printf("j:%d\n",j);
long long remain=x-f[j];
if(remain)
{
if(remain==j)
k=;
else
k=j+-remain;
//printf("j:%d k:%d\n",j,k);
ans=g[j];
ans=ans*qpow(1LL*k, mod- )%mod;
ans=ans*(k+remain)%mod;
}
else
{
ans=g[j];
}
while(ans<)
ans+=mod;
printf("%lld\n",ans);
}
return ;
}

HDU5976 Detachment的更多相关文章

  1. hdu 5976 Detachment

    Detachment Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

  2. HDU 5976 Detachment 打表找规律

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5976 Detachment Time Limit: 4000/2000 MS (Java/Other ...

  3. hdu5976贪心乘法逆元

    hdu 5976 Detachment题目连接 题意: 给定一个自然数x,让你给出一种拆分方式n=a1+a2+...(ai≠aj),使得每个小部分的乘积s=a1*a2*...最大 解题思路: 我们要乘 ...

  4. HDU 5976 Detachment(拆分)

    HDU 5976 Detachment(拆分) 00 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)   Problem D ...

  5. 2016 ACM/ICPC亚洲区大连站 F - Detachment 【维护前缀积、前缀和、二分搜索优化】

    F - Detachment In a highly developed alien society, the habitats are almost infinite dimensional spa ...

  6. HDU 5976 Detachment 【贪心】 (2016ACM/ICPC亚洲区大连站)

    Detachment Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

  7. 2016 ICPC大连站---F题 Detachment

    题意:输入一个x,将x拆分成一些小的数(这些数不能相同,即x=a1+a2+......   ai!=aj when i!=j),然后这些数相乘得到一个成积(s=a1*a2*......),求最大的乘积 ...

  8. 【HDOJ5976】Detachment(贪心)

    题意:给定n,要求构造若干个各不相同且和为n的正整数使得它们的乘积最大 T<=1e6,1<=n<=1e9 思路:From https://blog.csdn.net/qq_34374 ...

  9. hdu 5976 Detachment 脑洞题 猜结论

    题目链接 题意 将\(x\)拆成\(a_1+a_2+...+\)的形式,且\(a_1\lt a_2\lt...\),使得\(a_1*a_2*...\)取到最大值 思路 大胆猜结论. 首先拆分的形式中肯 ...

随机推荐

  1. Object对象具体解释(二)之clone

    clone方法会返回该实例对象的一个副本,通常情况下x.clone() != x || x.clone().getClass() == x.getClass() || x.clone().equals ...

  2. jquery 页眉单行信息滚动显示

    JSP: 下面是控制滚动的样式.将滚动的内容查询出来.放在一个div 或者别的容器里面,我这里使用的是<dt> <style> #newCglist{width:300px;h ...

  3. HTML5的data-*自己定义属性

    HTML5添加了一项新功能是自己定义数据属性.也就是data-*自己定义属性.在HTML5中我们能够使用以data-为前缀来设置我们须要的自己定义属性,来进行一些数据的存放.当然高级浏览器下可通过脚本 ...

  4. Swift - 可编辑表格样例(可直接编辑单元格中内容、移动删除单元格)

    (本文代码已升级至Swift3)   本文演示如何制作一个可以编辑单元格内容的表格(UITableView). 1,效果图 (1)默认状态下,表格不可编辑,当点击单元格的时候会弹出提示框显示选中的内容 ...

  5. 杂项:DS(目录服务)

    ylbtech-杂项:DS(目录服务) 1.返回顶部 1. DS(目录服务). 目录服务管理概述: 目录服务是扩展计算机系统中最重要的组件之一.虽然用户和管理通常不知道他们感兴趣对象的确切名称,但他们 ...

  6. thymeleaf 引入js css 无效

    转自:https://blog.csdn.net/qq_33833327/article/details/81388502

  7. java网络通信编程

    网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴.在发送和接收数据时,大部分的程序设计语言都设 ...

  8. Queue 与List、LinkedList与 ArrayList 区别

    List 是一个接口,不能实例化,通过实例化ArrayList 或者LinkedList来调用:List list = new ArrayList(); |--List: 元素是有序的(怎么存的就怎么 ...

  9. 学习java的方式

  10. C#缓存

    最近在学习缓存的知识,博客园中的 缓存资料 觉得信息不错值得学习