FSF has programmed a game.
In this game, players need to divide a rectangle into several same squares.

The length and width of rectangles are integer, and of course the side length of squares are integer.

After division, players can get some coins.

If players successfully divide a AxB rectangle(length: A, width: B) into KxK squares(side length: K), they can get A*B/ gcd(A/K,B/K) gold coins.

In a level, you can’t get coins twice with same method.

(For example, You can get 6 coins from 2x2(A=2,B=2) rectangle. When K=1, A*B/gcd(A/K,B/K)=2; When K=2, A*B/gcd(A/K,B/K)=4; 2+4=6; )

There are N*(N+1)/2 levels in this game, and every level is an unique rectangle. (1x1 , 2x1, 2x2, 3x1, ..., Nx(N-1), NxN)

FSF has played this game for a long time, and he finally gets all the coins in the game.

Unfortunately ,he uses an UNSIGNED 32-BIT INTEGER variable to count the number of coins.

This variable may overflow.

We want to know what the variable will be.

(In other words, the number of coins mod 2^32)

InputThere are multiply test cases.

The first line contains an integer T(T<=500000), the number of test cases

Each of the next T lines contain an integer N(N<=500000).OutputOutput a single line for each test case.

For each test case, you should output "Case #C: ". first, where C indicates the case number and counts from 1.

Then output the answer, the value of that UNSIGNED 32-BIT INTEGER variable.Sample Input

3
1
3
100

Sample Output

Case #1: 1
Case #2: 30
Case #3: 15662489

HinIn the second test case, there are six levels(1x1,1x2,1x3,2x2,2x3,3x3)Here is the details for this game:

1x1: 1(K=1); 1x2: 2(K=1); 1x3: 3(K=1);  2x2: 2(K=1), 4(K=2); 2x3: 6(K=1); 3x3: 3(K=1), 9(K=3);
1+2+3+2+4+6+3+9=30

网上题解坑人,本来有点清楚了看了一会还把自己看懵了。重新理顺一下
根据题意写出式子,ans[n]=ans[n-1]+∑ n*i*k/gcd(n,i)

∑ n*i*k/gcd(n,i) //gcd(n,i)/k 为n的因子,
=n∗(1/a1+2/a2+⋯+n/an)  //gcd(n,i)/k =ai,ai为n的因子 也就是说每个n的值对应了n的所有因子的贡献值之和。
比如n=2,因子1,2.
1的贡献  2  4
2的贡献     2
设mi为ai的因子 ∑ n*i*k/gcd(n,i)=n*[(1*m1/m1+2*m1/m1+...n/m1) +(1*m2/m2+2*m2/m2+...n/m2) +........+(1*mn/mn+2*mn/mn+...n/m)] //主要想清楚k/gcd()的值,k的变化对应mi的值
设sum(mi)=(1*mi/mi+2*mi/mi+...n/mi)=(n/m)*(n/m+1)/2
ans[n]=ans[n-1]+sum(mi)*mi

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
typedef long long LL;
#include<algorithm>
using namespace std;
#define N 500005
const LL mod=1LL<<32;
LL ans[N];
LL num[N];
int main()
{
//freopen("i.txt","r",stdin);
//freopen("o.txt","w",stdout);
for(int i=1;i<N;i++)
{
for(LL j=i;j<N;j+=i)
{
num[j]+=(j/i)*(j/i+1)/2;
//cout<<j<<" "<<num[j]<<endl;
}
}
ans[1]=1;
for(LL i=2;i<=500000;i++)
{
ans[i]=ans[i-1]+num[i]*i%mod;
ans[i]%=mod;
//cout<<ans[i]<<endl;
}
int t;
scanf("%d",&t);
for(int l=1;l<=t;l++)
{
int n;
scanf("%d",&n);
cout<<"Case #"<<l<<": "<<ans[n]<<endl; }
}

  

hdu_4944_FSF’s game的更多相关文章

随机推荐

  1. Entity Framework中IQueryable, IEnumerable, IList的区别[转]

    使用工具追踪EF生成的SQL 使用Entity Framework等ORM框架的时候,SQL对于使用者来说是透明的,往往很多人也不关心ORM所生成的SQL,然而系统出现性能问题的时候就必须关注生成的S ...

  2. linux创建用户与删除用户及问题解决(ubuntu)

    创建的用户不正确,一直在删除创建,发现了挺多问题也学到了一些东西如下是我的总结. (root用户设置: 由于ubtun系统默认是没有激活root用户的,需要我们手工进行操作,在命令行界面下,或者在终端 ...

  3. maven课程 项目管理利器-maven 2-2第一个maven案例hellomaven

    maven 目录结构 pom.xml src -main -java -package -test -java -package -resources

  4. (一)Hybrid app混合开发模式

    hybrid app是什么? 这里我们先看一下词条上的定义 Hybrid App:Hybrid App is a mobile application that is coded in both br ...

  5. window下隐藏apache版本和PHP脚本等敏感信息

    隐藏Apache信息 1.1 主配置中启用httpd-default.conf 文件: conf/httpd.Conf 找到httpd-default.conf,删除前面的注释“#”,改成如下 Inc ...

  6. [SVN]TortoiseSVN工具培训2─SVN的基本概念和工作模式

    1.SVN是什么? TortoiseSVN,属于集中式版本控制工具,是Subversion版本控制系统的一个免费SVN开源客户端,可以对文件版本进行统一管理和控制:文件保存在中央版本库,您可以将文件恢 ...

  7. Html + JS : 点击对应的按钮,进行选择是隐藏还是显示(用户回复功能)

    例如: 当我点击按钮1时,点击第一下进行显示This is comment 01,点击第二下隐藏This is comment 01 当我点击按钮2时,点击第一下进行显示This is comment ...

  8. Arduino-串口函数Serial

    串口是Arduino与其它设备进行通信的接口,我们需要很好的掌握它的使用.Arduino串口使用相关的函数共有10个(随着版本的升级,新版本加入了更多,具体请参见官网:http://www.ardui ...

  9. android+nutz后台如何上传和下载图片

    android+nutz后台如何上传和下载图片  发布于 588天前  作者 yummy222  428 次浏览  复制  上一个帖子  下一个帖子  标签: 无 最近在做一个基于android的ap ...

  10. Edmonds-Karp算法,最大流POJ(1459)

    题目链接:http://poj.org/problem?id=1459 解题报告: 电力调度站不涉及流的产生和消耗,不用考虑,Edmonds-Karp算法,就是利用剩余网络和增广路来解决,网络中的最大 ...