思路:  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)的更多相关文章

  1. 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 ...

  2. HDU 6141 - I am your Father! | 2017 Multi-University Training Contest 8

    思路来自 FXXL 最小树形图模板用kuangbin的 /* HDU 6141 - I am your Father! [ 最小树形图 ] | 2017 Multi-University Traini ...

  3. HDU 4944 FSF’s game 一道好题

    FSF’s game Time Limit: 9000/4500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Tota ...

  4. HDU - 4944 FSF’s game

    Problem Description FSF has programmed a game. In this game, players need to divide a rectangle into ...

  5. 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到当前点被摘掉的桃子的 ...

  6. hdu 6319 Problem A. Ascending Rating (2018 Multi-University Training Contest 3 A)

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=6319 思路: 单调队列倒着维护,队列里面剩下的值的数量就是这一段区间的count值,如样例第一个区间:3 ...

  7. 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 ...

  8. HDU 6312.Game-博弈-签到题 (2018 Multi-University Training Contest 2 1004)

    2018 Multi-University Training Contest 2 6312.Game 博弈,直接官方题解,懒了. 考虑将游戏变成初始时只有2~n,如果先手必胜的话,那么先手第一步按这样 ...

  9. HDU 6105 - Gameia | 2017 Multi-University Training Contest 6

    /* HDU 6105 - Gameia [ 非平等博弈 ] | 2017 Multi-University Training Contest 6 题意: Bob 可以把一个点和周围所有点都染黑,还有 ...

随机推荐

  1. 渗透杂记-2013-07-13 Windows XP SP2-SP3 / Windows Vista SP0 / IE 7

    Welcome to the Metasploit Web Console! | | _) | __ `__ \ _ \ __| _` | __| __ \ | _ \ | __| | | | __/ ...

  2. sql-将字符串按指定字符分割插入指定表中

    CREATE PROC SPLIT( @STR VARCHAR(MAX), --截取字符串 ), --截取字符 ) --存放表名 ) AS BEGIN ) IF(OBJECT_ID(@TABLE) I ...

  3. C头文件

    #include<cstdio>#include<iostream>#include<cstdlib>#include<cmath>#include&l ...

  4. 常用js方法

    function dateGetter(name, size, offset, trim) { offset = offset || 0; return function (date) { var v ...

  5. C# 只移除最后一个字符

    string str = "|||"; Console.WriteLine(str.Substring(0, str.Length - 1)); Console.WriteLine ...

  6. 复利计算器(4)——jQuery界面美化、自动补全

    一.分工 这次终于可以跟小伙伴合作了,经过讨论,我负责界面的美化和输入框自动补全,小伙伴擅长安卓,于是将复利计算器弄成app的任务就交给了小伙伴.为了我们两人团队,我们都好奋斗哈哈哈!! 二.界面美化 ...

  7. iOS - AppStores App 上架

    前言 1.准备 开发者账号 完工的项目 2.上架步骤 1) 创建 App ID 2) 创建证书请求文件(CSR文件) 3) 创建发布证书(CER) 4) 创建 Provisioning Profile ...

  8. 安卓跳转到GPS设置界面

      /** * 监听GPS */ private void initGPS() { LocationManager locationManager = (LocationManager) this . ...

  9. js根据ID修改背景图片

    <SCRIPT language=javascript> function expand(el) { var childObj = document.getElementById(&quo ...

  10. java:同步和死锁

    多个线程共享一个资源的时候需要进行同步(否则会出现错误:如负数,重复数),但是过多的同步会造成死锁. synchronized(this) { } 非同步情况: public class SyncTh ...