博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LA 3521 Joseph's Problem
阅读量:5340 次
发布时间:2019-06-15

本文共 1195 字,大约阅读时间需要 3 分钟。

题意:给你正整数n和k,然后计算从i到n k%i的和;

思路;如果n小于1000000,直接暴力计算,然后大于1000000的情况,然后在讨论n和k的大小,根据k%i的情况,你会发现规律,是多个等差数列,然后你把这些等差数列加上就是答案。

1 #include 
2 #include
3 #include
4 #define ll long long 5 using namespace std; 6 7 ll n,k; 8 ll Getsum(ll n) 9 {10 ll sum=0;11 for(ll i=1; i<=n; i++)12 {13 sum+=k%i;14 }15 return sum;16 }17 18 int main()19 {20 while(scanf("%lld%lld",&n,&k)!=EOF)21 {22 if(n<=1000000)23 {24 printf("%lld\n",Getsum(n));25 continue;26 }27 ll ans=0;28 ans+=max((ll)0,n-k)*k;29 for(int i=2; i<=10000; i++)30 {31 if(i>k) break;32 ll x1=k/(i-1)-k/i;33 if(k/i>n)continue;34 int s=k%(k/(i-1)),e=k%(k/i+1);35 if(k/(i-1)>n)36 { s=k%n;37 x1=n-k/i;38 }39 ans+=(s+e)*x1/2;40 }41 if(k>10000)42 {43 ll m=k/10000;44 ans+=Getsum(m);45 }46 printf("%lld\n",ans);47 }48 return 0;49 }
View Code

 

转载于:https://www.cnblogs.com/fanminghui/p/4238813.html

你可能感兴趣的文章
Lucene 学习之二:数值类型的索引和范围查询分析
查看>>
软件开发工作模型
查看>>
Java基础之字符串匹配大全
查看>>
面向对象
查看>>
lintcode83- Single Number II- midium
查看>>
移动端 响应式、自适应、适配 实现方法分析(和其他基础知识拓展)
查看>>
selenium-窗口切换
查看>>
使用vue的v-model自定义 checkbox组件
查看>>
[工具] Sublime Text 使用指南
查看>>
Hangfire在ASP.NET CORE中的简单实现方法
查看>>
Algorithm——何为算法?
查看>>
Web服务器的原理
查看>>
小强升职计读书笔记
查看>>
常用的107条Javascript
查看>>
#10015 灯泡(无向图连通性+二分)
查看>>
忘记root密码,怎么办
查看>>
linux设备驱动归纳总结(三):1.字符型设备之设备申请【转】
查看>>
《黑客与画家》 读书笔记
查看>>
bzoj4407: 于神之怒加强版
查看>>
mysql统计一张表中条目个数的方法
查看>>