HDU 4944 FSF’s game(2014 Multi-University Training Contest 7)
思路: ans[n]= ans[n-1] + { (n,1),(n,2).....(n,n)} 现在任务 是 计算 { (n,1),(n,2).....(n,n)}(k=n的任意因子)
很明显 所有能取的k均为n的因子可以 sqrt(n) 内枚举。 若 p 为n的因子 那么 d(n,p) =p*p * {(n/p,1) ,(n/p,2) 。。。(n/p,n/p)}(后面这部分 k 取 1) 那么任务就转化成求 f(n) f(n)表示 {(n,1),(n,2) ....(n,n)}当k等于1时候的值。 k等于1 相当于 枚举每个因子 p 。。求 sum*n 这边的sum表示与n/p互质的所有数之和。 sum=phi(n/p)*n/p ;
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<vector>
#include<queue>
#include<map>
#include<set>
#include<time.h>
#include<string>
#define REP(i,n) for(int i=0;i<n;++i)
#define REP1(i,a,b) for(int i=a;i<=b;++i)
#define REP2(i,a,b) for(int i=a;i>=b;--i)
#define MP make_pair
#define LL long long
#define X first
#define Y second
#define MAXN 500005
using namespace std;
LL MOD;
LL f[MAXN];
LL sum[MAXN];
LL phi[MAXN];
LL ans[MAXN];
void getphi()
{
for(int i=; i<MAXN; i++) phi[i]=i;
for(int i=; i<MAXN; i+=) phi[i]>>=;
for(int i=; i<MAXN; i+=)
if(phi[i]==i)
{
for(int j=i; j<MAXN; j+=i)
phi[j]=phi[j]/i*(i-);
}
}
void init()
{
MOD=;
REP(i,)MOD*=;
getphi();
for(int i=;i<MAXN;++i)
sum[i]=(phi[i]*i/)%MOD;
for(int i=;i<MAXN;++i)
{
int j;
f[i]=i;
for(j=;j*j<i;++j)
{
if(i%j==)
{
f[i]=(f[i]+sum[j]*i)%MOD;
f[i]=(f[i]+sum[i/j]*i)%MOD;
}
}
if(j*j==i)
{
f[i]=(f[i]+sum[j]*i)%MOD;
}
} ans[]=;
for(int i=;i<MAXN;++i)
{
ans[i]=(ans[i-]+f[i]);
if(ans[i]>MOD)ans[i]-=MOD;
int j;
for(j=;j*j<i;++j)
if(i%j==)
{
ans[i]=(ans[i]+((f[i/j]*j)%MOD)*j)%MOD;
ans[i]=(ans[i]+((f[j]*(i/j))%MOD)*(i/j))%MOD;
}
if(j*j==i)
{
ans[i]=(ans[i]+((f[j]*j)%MOD)*j)%MOD;
}
ans[i]=(ans[i]+(LL)i*i)%MOD;
} } int main() {
init(); int tt,ri=;
scanf("%d",&tt);
while(tt--)
{
int n;
scanf("%d",&n);
printf("Case #%d: %I64d\n",++ri,ans[n]);
}
return ;
}
HDU 4944 FSF’s game(2014 Multi-University Training Contest 7)的更多相关文章
- hdu 4944 FSF’s game(数论)
题目链接:hdu 4944 FSF's game 题目大意:给定N,能够用不大于N的长a和宽b.组成N∗(N−1)2种不同的矩形,对于每一个矩形a∗b要计算它的值,K为矩形a,b能够拆分成若干个K∗K ...
- HDU 6141 - I am your Father! | 2017 Multi-University Training Contest 8
思路来自 FXXL 最小树形图模板用kuangbin的 /* HDU 6141 - I am your Father! [ 最小树形图 ] | 2017 Multi-University Traini ...
- HDU 4944 FSF’s game 一道好题
FSF’s game Time Limit: 9000/4500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Tota ...
- HDU - 4944 FSF’s game
Problem Description FSF has programmed a game. In this game, players need to divide a rectangle into ...
- hdu 6406 Taotao Picks Apples (2018 Multi-University Training Contest 8 1010)(二分,前缀和)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=6406 思路: 暴力,预处理三个前缀和:[1,n]桃子会被摘掉,1到当前点的最大值,1到当前点被摘掉的桃子的 ...
- hdu 6319 Problem A. Ascending Rating (2018 Multi-University Training Contest 3 A)
链接: http://acm.hdu.edu.cn/showproblem.php?pid=6319 思路: 单调队列倒着维护,队列里面剩下的值的数量就是这一段区间的count值,如样例第一个区间:3 ...
- HDU 5775 Bubble Sort(线段树)(2016 Multi-University Training Contest 4 1012)
原址地址:http://ibupu.link/?id=31 Problem Description P is a permutation of the integers from 1 to N(ind ...
- HDU 6312.Game-博弈-签到题 (2018 Multi-University Training Contest 2 1004)
2018 Multi-University Training Contest 2 6312.Game 博弈,直接官方题解,懒了. 考虑将游戏变成初始时只有2~n,如果先手必胜的话,那么先手第一步按这样 ...
- HDU 6105 - Gameia | 2017 Multi-University Training Contest 6
/* HDU 6105 - Gameia [ 非平等博弈 ] | 2017 Multi-University Training Contest 6 题意: Bob 可以把一个点和周围所有点都染黑,还有 ...
随机推荐
- 解决小米、红米及其他 Android 手机无法在 Mac 下进行真机调试的问题(转)
转自:http://ju.outofmemory.cn/entry/103522 Begin iOS 2014-08-19 271 阅读 手机 Android 小米 mac 调试 在 Mac OSX ...
- 微信web开发者工具
http://mp.weixin.qq.com/wiki/10/e5f772f4521da17fa0d7304f68b97d7e.html#.E4.B8.8B.E8.BD.BD.E5.9C.B0.E5 ...
- 超炫数字特效动画AE模板
下载方式: 网盘地址+迅雷地址+迅雷地址+备份地址 <ignore_js_op> 本AE模板是由Videohive机构出品的超炫数字特效动画AE模板,Videohive The Numbe ...
- winpcap抓包原理
winpcap抓包原理 WinPcap 是由伯克利分组捕获库派生而来的分组捕获库,它是在Windows 操作平台上来实现对底层包的截取过滤.WinPcap 是 BPF 模型和 Libpcap 函数库在 ...
- socket.io 中文手册 中文文档
服务端 io.on('connection',function(socket));//监听客户端连接,回调函数会传递本次连接的socket io.sockets.emit('String',data) ...
- 解决redhat 没注册的情况下yum无法使用的问题
官网下载的rhel,安装后是没有配置yum源的,需要自己配置yum源.网络上的很难找到rhel的yum源,但是在ISO镜像里面有很多redhat提供的软件包,也是正版软件,我们可以把这个拷贝出来 ...
- 【java基础】面向对象的三大特征---多态
java的引用变量有两种类型,编译时类型和运行时类型,如果编译时类型和运行时类型不一致,就会出现多态. 多态分为: 运行时多态 java运行时系统根据调用该方法的实例的类型来决定选择调用哪个方法则被称 ...
- 前端静态资源版本更新与缓存之——gulp自动化添加版本号
公司项目每次发布后,偶尔会有缓存问题,然后看了下gulp,发现gulp还能给js,css自动化添加版本号,可解决缓存的问题,所以自动化实现静态资源的版本更新才是正道.通过网上的资料试过了两种办法: 1 ...
- 无法删除对象 '产品',因为该对象正由一个 FOREIGN KEY 约束引用。
在删除northwindcs表时,发生报错,消息 3726,级别 16,状态 1,第 2 行,无法删除对象 '产品',因为该对象正由一个 FOREIGN KEY 约束引用.此时判断是因为有其他表的外键 ...
- AWS EC2首次使用VPS
看到AWS有免费一年的试用期,就申请了一个账号.想搭建一个自己的网站.申请之前,你还需要有一张信用卡. 申请AWS账号,登陆控制台 进入AWS官网即可申请账号,进入控制台后,就可以新建一个AWS EC ...