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 可以把一个点和周围所有点都染黑,还有 ...
随机推荐
- eclipse添加easyExport插件,打开本地文件
下载地址:https://github.com/samsonw/OpenExplorer/downloads 官方:http://sourceforge.net/projects/easystruts ...
- Swift高级语法学习总结(转)
Swift高级语法学习总结 1.函数 1.1 func funcNmae()->(){} 这样就定义了一个函数,它的参数为空,返回值为空,如果有参数和返回值直接写在两个括号里就可以了 1.2 参 ...
- PHP性状的使用
<?php trait Geocodable{ /** @var string */ protected $address; /** @var \Geocoder\Geocoder */ pro ...
- C++Builder XE8_upd1破解安装成功纪要
1.先下载XE8,安装失败.2.后下载XE8U1(delphicbuilder_xe8_upd1_subscription.iso),安装,选择DelPhi.C++builder,输入系列号:3.安装 ...
- HTLM5第一天的内容
网页的本质就是超级文本标记语言:Hyper Text Markup Language 网页的组成:结构(HTML) 样式(CSS) 行为(JavaScript) 万维网联盟:W3C:World W ...
- spring-事物-jdbc-hibernate
- 记SpannableString设多少span时注意事项
public void setSpan(Object what, int start, int end, int flags) { } 这个方法里的第一个参数,也就是一些span的对象,不能重复使用. ...
- 16-网易-intership
1.多选 //HTML <p>很长的一段文字,很长的一段文字,很长的一段文字,特别长的文字</p> //CSS p{ width:100px; white-space:nowr ...
- php 资源
ThinkPHP http://www.thinkphp.cn/ 小案例 http://www.helloweba.com/php.html Github上的PHP资源汇总大全 http://www. ...
- unreal slate 创建 window
testWindow = SNew(SWindow) .Title(LOCTEXT("Asset Window", "Asset Window")) .Clie ...