• 超氧化钾


    Description
    作为一个化学小考只有77分的同学,小W感觉很有压力,所以他决定搞化学。今天他开始研究超氧化钾,这是一种很神奇的离子化合物,在高温下空间结构是立方体,如下图所示。有一天教黄交给了小W一个任务:根据教黄多年淘金的经验,他发现超氧化钾有一个神奇的性质就是如果一组有序的整数(x,y,z)满足z=x mod 1+x mod 2+…+x mod y,那么对于超氧化钾来说这个位置上的离子就是一个关键离子。通过用回旋加速器得到高速粒子来攻击这个离子,他就可以获得铜铝制金法的催化剂。现在教黄想知道对于一个给定的x和y对应的z值是多少。
    在这里插入图片描述

    Input
    两个整数x,y。

    Output
    一个整数z。

    Sample Input
    1 1

    Sample Output
    0

    Data Constraint
    40%的数据,y<=10^5。
    100%的数据,1<=x,y<=10^9。

    .
    .
    .
    .
    .
    .
    分析
    对于一段连续的i…j,如果除k的商相同,那么除k的余数是一个等差数列。这样每一段都可以O(1)求出。
    这样问题就变成了对于k/i=p,找到最大的j,使n/j=p。不难发现,若p=0,则j=n。否则j=k/p。

    .
    .
    .
    .
    .

    程序:

    #include<iostream>
    #include<cstdio>
    using namespace std;
    
    int x,y,j,x1,y1;
    long long ans;
    
    int main()
    {
    	scanf("%d%d",&x,&y);
    	for (int i=1;i<=y;i=j+1)
    	{
    		int p=x/i;
    		if (p==0) j=y; else j=min(x/p,y);
    		x1=x%i;
    		y1=x%j;
    		ans+=(long long)(x1+y1)*(j-i+1)/2;
    	}
    	printf("%lld
    ",ans);
    	return 0;
    }
    
  • 相关阅读:
    AutoFac
    MEF 基础简介 四
    MEF 基础简介 三
    MEF 基础简介 二
    MEF 基础简介 一
    Ioc原理理解
    .NET里面 abstract class和Interface有什么区别以及用法的展现?
    .NET-ORM框架EF-Code First代码优先
    SQL SERVER PIVOT与用法解释
    SQL Server 中的 NOLOCK 到底是什么意思?
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/10458947.html
Copyright © 2020-2023  润新知