CQOI余数之和

2024-04-10 04:08
文章标签 余数 cqoi

本文主要是介绍CQOI余数之和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

                            CQOI余数之和

给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值,其中k mod i表示k除以i的余数。
  例如j(5, 3)=3 mod 1 + 3 mod 2 + 3 mod 3 + 3 mod 4 + 3 mod 5=0+1+0+3+3=7

输入格式:

输入仅一行,包含两个整数n, k。

输出格式:

输出仅一行,即j(n, k)。

样例输入:

5 3

样例输出:

7

数据范围:

50%的数据满足:1<=n, k<=1000
100%的数据满足:1<=n ,k<=109

时间限制:

1000

空间限制:

512000
#include<bits/stdc++.h>
using  namespace  std;
long  long  n,k;
long  long  ans;
int  main()
{
     cin>>n>>k;
     if (n>k)
     {
         ans+=(n-k)*k;
         n=k;
     }
     for ( int  i=1;i<=n;i++)
     {
         if (i==n)
         {
             ans+=k%i; continue ;
         }
         long  long  pd=k/i; long  long  pd1=k/(i+1);
         if (pd!=pd1) ans+=k%i;
         else
         {
             long  long  ll=k/pd; long  long  r=k-pd*ll,l=k-i*pd;
             ans+=(l+r)*(ll-i+1)/2;
             i=ll;
         }
     }
     cout<<ans;
}
根据相同除得的结果,余数为等差数列的性质即可解决本题。attention!
min用longlong和int两个min时容易出错

这篇关于CQOI余数之和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/890034

相关文章

【舍入,取整,取小数,取余数丨Excel 函数】

数学函数 1、Round函数 Roundup函数 Rounddown函数 取整:(Int /Trunc)其他舍入函数: 2、Mod函数用Mod函数提取小数用Mod函数 分奇偶通过身份证号码判断性别 1、Round函数 Roundup函数 Rounddown函数 Round(数字,保留几位小数)(四舍五入) Roundup (向上舍入) 在x轴上向正负无穷大靠近 Roun

探索 MATLAB 中的 rem 函数:余数计算与应用

在 MATLAB 中,rem 函数用于计算除法的余数,这是一个非常实用的函数,尤其在需要处理循环、周期性数据或判断整除关系时。本文将深入探讨 rem 函数的用法、常见的应用场景以及与其他相关函数的比较。 1. rem 函数的基本语法 rem 函数的基本语法如下: r = rem(a, b); a:被除数,可以是标量、向量或矩阵。b:除数,可以是标量、向量或矩阵,通常与 a 的尺寸相同或为

余数-奇偶校验

1.什么是奇偶校验? 1.根据传递信息号的奇偶性来做决定。 2.怎么传递奇偶信息? 3.怎么计算概率?

CF888E - 最大余数[适合难度:普及+,提高-],知识点:折半枚举,二分查找

CF888E - 最大余数[适合难度:普及+,提高-],知识点:折半枚举,二分查找 子集就是某一个组合 暴力枚举所有组合的复杂度为 2 35 2^{35} 235,不可接受 所以用上了折半枚举。。。。。。 折半枚举 + 二分查找,时间复杂度不超过 2 18 2^{18} 218 。 折半枚举: 吧所有的数字拆成两半,暴力前一半数的所有组合,最多为 2 18 2^{18} 218,

(c语法百题7)求两数的整数商 和 余数

 知识点: 求商和求余 /   和 % 的用法。 注意 /  中,两个%d的值为整数,即取整。有%f类的,就是商了,带小数的。   内容: 求两数的整数商 和 余数 输入说明: 一行两个整数 输出说明: 一行两个整数 输入样例: 若题目没有特别说明,则应该以多组测试数据方式读取,或者参考a001。 18 4   输出样例 : 4 2 #

一个余数问题的思考

刚刚在贴吧上看到一个很简单的算法小问题,顺便看到了很多人不同的思路。我觉得很有意思,所以也来研究一下。 问题如下: 一筐鸡蛋: 1个1个拿,正好拿完。 2个2个拿,还剩1个。 3个3个拿,正好拿完。 4个4个拿,还剩1个。 5个5个拿,还差1个。 6个6个拿,还剩3个。 7个7个拿,正好拿完。 8个8个拿,还剩1个。 9个9个拿,正好拿完。 问:筐里最少有几个鸡蛋?

nyoj-205--求余数--(大整数取模)

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=205 #include<stdio.h>#include<string.h>int main(){int n,l,i,sum;char s[1000000];scanf("%d",&n);getchar();while(n--){gets(s);l=strlen(s);sum=

PHP中余数、取余的妙用

转自:http://www.jb51.net/article/68567.htm 这篇文章主要介绍了PHP中余数、取余的妙用,这个是在WEB开发中一个经常使用的小技巧,不管是在表格、ul、li或者是换行等HTML处理中,需要隔几行换行,隔几行加入ul或li的结束标记等时候,特别的有用,需要的朋友可以参考下 <?php$ary=array("name","egineer","sonny"

hdu1420(求余数)

#include<iostream>using namespace std;int main(){__int64 a,b,c,mod,n;cin>>n;while(n--){cin>>a>>b>>c;if(c==1)mod=0;elseif(b==0&&c>1)mod=1;else{mod=1;while(b--){mod*=a;mod%=c;}}cout<<mod<<endl;}}

JavaScript余数运算符

console.log(5 % 2); //5 = 2 * 2 + 1console.log(8 % 3); //8 = 2 * 3 + 2console.log(6 % 2); //6 = 2 * 3 + 0console.log(7 % 2); //7 = 2 * 3 + 1 ● 我们可以利用这个特性来判断一个数是奇数还是偶数 const isEven = n =>n