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;
}

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • centos7安装nexus3「建议收藏」

    centos7安装nexus3「建议收藏」1、下载nexuswgethttps://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/3/nexus-3.12.0-01-unix.tar.gz2、解压tar-zxvfnexus-3.12.0-01-unix.tar.gz-C/usr/local/nexus/3、启动cd/usr/local/…

  • ForkJoin使用「建议收藏」

    ForkJoin使用「建议收藏」Fork/Join框架是Java7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。Fork/Join框架要完成两件事情:  1.任务分割:首先Fork/Join框架需要把大的任务分割成足够小的子任务,如果子任务比较大的话还要对子任务进行继续分割  2.执行任务并合并结果:分割的子任务分别放到双端队列里,然后几个启动线程分别从双端队…

  • Angular 面试题汇总2-Component/Service (Angular v8+)

    Angular 面试题汇总2-Component/Service (Angular v8+)Angularv8+面试系列Angular面试题汇总1-基本知识.目录关于AngularComponentcss样式的作用域、ShadowDOM关于AngularService单例服务(singleton)forRoot()模式关于AngularComponentcss样式的作用域、ShadowDOMShadowDOM是HTML规范的一部分,它允许开发人员封装自己的HTML标记,CSS样式和JavaScript。创建样式Component时,可以通过设置,启用。@Com.

    2022年10月17日
  • C语言中int、long int、long long的区别

    C语言中int、long int、long long的区别1、关于int和longint(1)在VC下没有区别。两种类型均用4个字节存放数据。(2)VC是后出的编译器,之前有很多早期的C编译器,在早期编译器下longint占4个字节,int占2个字节。(3)之所以有“整型”和“长整形”两种不同类型,是C语言在诞生时发明者规定好的,前者存储的整数的值域小于后者。 这个问题不用牵肠挂肚,在VC下用谁都可以。

  • app测试用什么工具(目前软件测试工具)

    UI自动化测试工具1.uiautomator2 Github地址:https://github.com/openatx/uiautomator2 star:1.9k 介绍:openatx开源的ui自动化工具,支持android和ios。主要面向的编程语言是python,api设计简洁易用,在开源社区也是很受欢迎。 原理图: 与appium…

  • docker更换默认存储目录、默认存储目录磁盘剩余空间不足,采用软连、换目录、加容量解决

    docker更换默认存储目录、默认存储目录磁盘剩余空间不足,采用软连、换目录、加容量解决

发表回复

您的电子邮箱地址不会被公开。

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