【深夜题解】

题目链接:https://arc091.contest.atcoder.jp/tasks/arc091_b

题目大意:给出两个正整数N、K,找出所有的不大于N的正整数对(a,b)使b%a>=K,求数对总数。

解题思路:

解这道题的历程很纠结……倒不是题目问题而是心理问题,值得反思,应该克服浮躁畏难情绪。

回归题目,首先对于b%a>=K,我们可以想到a>K这一必须条件,当a==K+1时,b==d*a+K;当a==K+2时,b==d*a+K+1或d*a+K。

d可以从0开始取值,只要满足b不大于N即可,那么其实每个d的最大值都十分好求,d==(N-K-x)/a;(a>x+K>=K)

但是如果枚举每个x和a的话时间复杂度是N^2,,会T。于是我们根据此题的特殊条件,寻求只枚举a的解法。

对于每一个a,b%a的值都有(a-k)种可能,如果每种可能的d都一样,那我们就可以省略枚举d了。

那么每种可能的d到底一不一样呢?答案是否定的。

但是,我们可以发现对于确定的a,每种可能的d最多只会相差1。

我们来仔细分析d的组成:

(N-K-x)/a==(N/a*a+N%a-K-x)/a==N/a+(N%a-K-x)/a。

对于每个x,最终种数是d+1(从0开始取值),所以ans+=N/a+(N%a+a-K-x)/a;

而K+x是小于a的,所以后边那一团恒正,且小于2*a,只需要判断是否大于a(商为1还是0)就行了。

那么商为1的到底有多少个?N%a+a-K-x>=a=====N%a-K-x>=0=====N%a-K>=x。我们可以o(1)求出能提供格外贡献的x有多少个了,答案就是N%a-K+1(x也从0开始取)。

所以对于一个a,它提供的贡献是(N/a)*(a-k)+max(0,N%a-K+1)。

另外此题还有一个trick,要求a,b是正整数,当k==0的时候,b==0在本算法中也是合理解,必须排除,所以特判一下(ans-N)。

下面放1msAC代码:

#include<stdio.h>

int _max(int a,int b){return a>b?a:b;}

int main(){

    long long ans=;
int n,k,i,a;
scanf("%d%d",&n,&k);
for(i=k+;i<=n;i++){
ans+=(long long)(n/i)*(i-k);
ans+=(long long)_max(,n%i-k+);
}
if(k==)ans-=(long long)n;
printf("%lld",ans);
return ;
}

【数学】At Coder 091 D题的更多相关文章

  1. 2018年数学建模国赛B题 智能RGV的动态调度策略

    第一种情况大致思路: 每秒判断各个CNC的状态,若工作完成或者是出于空闲状态下则向RGV发出一个请求.同时,RGV每秒判断自己的状态(上下料.移动.闲置.清洗等),如果是处于闲置状态,则启用调度算法, ...

  2. 2017 年“认证杯”数学中国数学建模网络挑战赛 C题思路讲解

    之前有小伙伴私信我叫我说说这次比赛C题的思路,怎么写的,我就写篇博客说说吧,仅供参考! 针对C题,该题目比较综合,是一个成熟的数模赛题,与国赛的相似性较高.一般而言,第一问难度较低,题目要求进行数据挖 ...

  3. 【BZOJ4173】数学 欧拉函数神题

    [BZOJ4173]数学 Description Input 输入文件的第一行输入两个正整数 . Output 如题 Sample Input 5 6 Sample Output 240 HINT N ...

  4. 集训第六周 数学概念与方法 J题 数论,质因数分解

    Description Tomorrow is contest day, Are you all ready? We have been training for 45 days, and all g ...

  5. Codeforces Beta Round #2B(dp+数学)

    贡献了一列WA.. 数学很神奇啊 这个题的关键是怎么才能算尾0的个数 只能相乘 可以想一下所有一位数相乘 除0之外,只有2和5相乘才能得到0 当然那些本身带0的多位数 里面肯定含有多少尾0 就含有多少 ...

  6. 【最短路】【数学】CSU 1806 Toll (2016湖南省第十二届大学生计算机程序设计竞赛)

    题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1806 题目大意: N个点M条有向边,给一个时间T(2≤n≤10,1≤m≤n(n-1), ...

  7. 【数学】CSU 1810 Reverse (2016湖南省第十二届大学生计算机程序设计竞赛)

    题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1810 题目大意: 一个长度为N的十进制数,R(i,j)表示将第i位到第j位翻转过来后的 ...

  8. 【BZOJ2134】单位错选(数学期望,动态规划)

    [BZOJ2134]单位错选(数学期望,动态规划) 题面 BZOJ 题解 单独考虑相邻的两道题目的概率就好了 没了呀.. #include<iostream> #include<cs ...

  9. 复旦高等代数 I(17级)每周一题

    本学期将继续进行高等代数每周一题的活动.计划从第二教学周开始,到第十六教学周为止(根据法定节假日安排,中间个别周会适当地停止),每周的周末将公布1-2道思考题,供大家思考和解答.每周一题通过“谢启鸿高 ...

随机推荐

  1. spring mvc入门配置

    现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...

  2. (2.1)windows下Nutch1.7的安装

    酒店评论情感分析系统(二)——Nutch安装 一.需求部分 Nutch是Java开发的所以需要下载Java JDK. 下载地址http://java.sun.com/javase/downloads/ ...

  3. 初学者必看:.NET 中的静态与非静态的异同

    对于初学者来说,.NET 的静态和非静态一直比较难掌握,这里做一个总结,介绍静态类和普通类,静态方法和实例方法,静态构造函数和实例构造函数,静态字段和非静态字段的区别. 静态类 vs 普通类 静态类与 ...

  4. [php]referer应用--http防盗链技术

    1.防盗链的理解 所谓防盗链是防止其他的网站引用自己网站的资源连接,比如图片.视频等等,但是并不会阻碍从自己网站上享受资源的用户,这就要求能够将其他网站的连接请求阻止 2.防盗链的原理 其实从自己网站 ...

  5. 关于Http协议、ASP.NET 核心知识(2)

    简介HTTP (对于http协议的描述我前部分有写,但基于保证文档独立完整性的原则,我再写一遍.反正又不花钱.) 这货的学名叫:超文本传输协议 英文名字:(HTTP,HyperText Transfe ...

  6. form表单token错误

    添加一段代码试试: <input type="hidden" name="_token" value="{{ csrf_token() }}&q ...

  7. 洛谷 Sorting a Three-Valued Sequence 三值的排序

    Description 排序是一种很频繁的计算任务.现在考虑最多只有三值的排序问题.一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌序的时候. 在这个任务中可能的值只有三种1,2和3.我们用交换的 ...

  8. 2017ACM暑期多校联合训练 - Team 6 1011 HDU 6106 Classes (容斥公式)

    题目链接 Problem Description The school set up three elective courses, assuming that these courses are A ...

  9. 48、面向对象中super的作用?

    什么是super? super() 函数是用于调用父类(超类)的一个方法. super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序( ...

  10. SVM问题再理解与分析——我的角度

    SVM问题再理解与分析--我的角度 欢迎关注我的博客:http://www.cnblogs.com/xujianqing/ 支持向量机问题 问题先按照几何间隔最大化的原则引出他的问题为 上面的约束条件 ...