hdu 4944 FSF’s game(数论)

hdu 4944 FSF’s game(数论)

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

题目链接:hdu 4944 FSF’s game

题目大意:给定N,能够用不大于N的长a和宽b。组成N(N1)2种不同的矩形,对于每一个矩形ab要计算它的值,K为矩形a,b能够拆分成若干个KK的正方形。abgcd(a/k,b/k),输出全部矩形值的和。

解题思路:如果有边a和b。那么k肯定即使a的因子也是b的因子。

定义f(n)为矩形最长边等于n的情况下全部矩形值的和。那么f(n)=val(1n)+val(2n)++val(nn),枚举n的因子作为k,如今如果有因子k,使得n=ka:
g(k)=1knk+2knk++aknk

=1n+2n++an

=(1+a)a2n

f(n)=g(k)(k为n的因子)
然后用类似素数筛选法的方式处理处f(i)的值。相应再累加即使答案。

#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;
typedef unsigned long long ll;
const ll MOD = 1LL<<32;
const int maxn = 500000;

ll f[maxn+5], s[maxn+5];

void init () {
    memset(f, 0, sizeof(f));

    s[0] = f[1] = 0;
    for (int i = 1; i <= maxn; i++) {

        for (int k = 1; k * i <= maxn; k++) {
            f[k*i] += (1LL + k) * k / 2;
            f[k*i] %= MOD;
        }
        f[i] = f[i] * i % MOD;
    }

    for (ll i = 1; i <= maxn; i++)
        s[i] = (s[i-1] + f[i]) % MOD;
}

int main () {
    init();
    int cas, n;
    scanf("%d", &cas);
    for (int kcas = 1; kcas <= cas; kcas++) {
        scanf("%d", &n);
        printf("Case #%d: %I64u\n", kcas, s[n]);
        //printf("Case #%d: %lld\n", kcas, s[n]);
    }
    return 0;
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117711.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java解析JSON文件「建议收藏」

    Java解析JSON文件「建议收藏」这篇文章主要讲讲通过java去解析不同地方的json文件通常我们需要解析本地的json文件或者服务器上的json文件。我们用来解析json格式的jar包有很多,jackson,fastjson,gson都行。但本人喜欢用fastjson。所以本篇都是以fastjson来解析json文件。1.解析本地json文件随便把一个json文件存储在本地的一个文件夹下,然后通过文件流将json文件内容读取出来。然后转换成String,最后转json对象,然后再解析,获取自己想要的数据。首先我们这个json文

    2022年10月12日
    2
  • TFS2010安装部署

    TFS2010安装部署TFS2010安装过程TFS疑难问题解答TFS文档不能查看TFS报表不能查看

    2022年9月24日
    2
  • 散列冲突

    散列冲突概念:如果当一个元素被插入时与一个已经插入的元素散列到相同的值,那么就会产生冲突,这个冲突需要消除。解决这种冲突的方法有几种:本章介绍两种方法:分离链接法和开放定址法1.分离链接法    其做法就是将散列到同一个值得所有元素保留到一个表中。我们可以使用标准库的实现方法。如果空间很紧(因为表是双向链表的并且浪费空间)。为执行一次查找,我们使用散列函数来确定是那一个链表,然后我们在被确定的链表

    2022年5月14日
    56
  • bcp sqlcmd bulkinsert在unicode问题,Unexpected EOF encountered in BCP data-file

    bcp sqlcmd bulkinsert在unicode问题,Unexpected EOF encountered in BCP data-file

    2022年1月9日
    60
  • mybatis返回对象_存储过程不能返回结果

    mybatis返回对象_存储过程不能返回结果论MyBatis返回结果集_返回实体类还是Map在更多的了解mybatis后发现不单单通过实体类可以直接返回数据,还可以直接返回一个Map结果集(resultType="java.util.Map"),如果是多条数据则返回一个List&lt;Map&lt;String,Object&gt;&gt;结果集。很多人会觉得发现,直接返回一个Map的话太方便了,什么映射什么的全都不用管,只用在sql书…

    2022年10月4日
    2
  • ai怎么做出毛线的效果_怎么用ai做出毛边效果

    ai怎么做出毛线的效果_怎么用ai做出毛边效果AI绘制毛线的小技巧

    2022年4月21日
    105

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号