HDU5976 Detachment
/*
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的更多相关文章
- hdu 5976 Detachment
Detachment Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
- HDU 5976 Detachment 打表找规律
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5976 Detachment Time Limit: 4000/2000 MS (Java/Other ...
- hdu5976贪心乘法逆元
hdu 5976 Detachment题目连接 题意: 给定一个自然数x,让你给出一种拆分方式n=a1+a2+...(ai≠aj),使得每个小部分的乘积s=a1*a2*...最大 解题思路: 我们要乘 ...
- HDU 5976 Detachment(拆分)
HDU 5976 Detachment(拆分) 00 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem D ...
- 2016 ACM/ICPC亚洲区大连站 F - Detachment 【维护前缀积、前缀和、二分搜索优化】
F - Detachment In a highly developed alien society, the habitats are almost infinite dimensional spa ...
- HDU 5976 Detachment 【贪心】 (2016ACM/ICPC亚洲区大连站)
Detachment Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
- 2016 ICPC大连站---F题 Detachment
题意:输入一个x,将x拆分成一些小的数(这些数不能相同,即x=a1+a2+...... ai!=aj when i!=j),然后这些数相乘得到一个成积(s=a1*a2*......),求最大的乘积 ...
- 【HDOJ5976】Detachment(贪心)
题意:给定n,要求构造若干个各不相同且和为n的正整数使得它们的乘积最大 T<=1e6,1<=n<=1e9 思路:From https://blog.csdn.net/qq_34374 ...
- hdu 5976 Detachment 脑洞题 猜结论
题目链接 题意 将\(x\)拆成\(a_1+a_2+...+\)的形式,且\(a_1\lt a_2\lt...\),使得\(a_1*a_2*...\)取到最大值 思路 大胆猜结论. 首先拆分的形式中肯 ...
随机推荐
- VC++玩转Native Wifi API 2---Wifi on与wifi off
有心栽花花不开,无心插柳柳成排. 今天要说的这个wifi on\off是在软件层面控制无线网卡的开和关. 问题听起来简单,调查起来复杂.但解决起来却也简单.关键函数便是Native wifi a ...
- 0x61 最短路
终于会dij了原来我以前写的也是堆优化spfa-_-! poj3662DP 通过spfa来放缩(可怜我去年NOIP的day1t3啊) #include<cstdio> #include&l ...
- Cache操作类
封装类: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...
- 2.2Shiro架构
- Mysql数据的增删改
插入数据 INSERT 更新数据 UPDATE 删除数据 DELETE 再来回顾一下之前我们练过的一些操作,相信大家都对插入数据.更新数据.删除数据有了全面的认识.那么在mysql中其实最重要的不 ...
- CI中的分页
根据MVC的思想,分页是需要传数据到模型中,把页码传过去,在模型中根据页码分配: 更多分页类函数可以通过CI手册的分页类查看: $this -> load ->library('pagin ...
- [OpenWrt]安装mjpg-streamer
安装mjpg-streamer 远程监控基本上是wifi小车的一个必备功能了.摄像头我用的是奥尼百脑通 D881,这个要100左右. 确认安装了以下软件: kmod-usb2 kmod-video-u ...
- 解决java float double 浮点型参与计算失精度
本人前段时间做一个社区电商应用,发现了一个 天坑 ...................让我哭会 . 下面听听我的踩坑之路吧 ,电商肯定跟¥打交道了,计算少不了的.由于本人太菜 单纯的以为 fl ...
- postgreSQL格式化时间的函数详解
数据类型格式化函数: PostgreSQL格式化函数提供一套有效的工具用于把各种数据类型(日期/时间.integer.floating point和numeric)转换成格式化的字符串以及反过来 ...
- bootstrap modal 一闪
原因可能是因为bootstrap.min.js(bootstrap.js) 和modal.js重复引用导致的,而且重复引用还会引致bootstrap的js事件失效.