【数学】At Coder 091 D题
【深夜题解】
题目链接: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题的更多相关文章
- 2018年数学建模国赛B题 智能RGV的动态调度策略
第一种情况大致思路: 每秒判断各个CNC的状态,若工作完成或者是出于空闲状态下则向RGV发出一个请求.同时,RGV每秒判断自己的状态(上下料.移动.闲置.清洗等),如果是处于闲置状态,则启用调度算法, ...
- 2017 年“认证杯”数学中国数学建模网络挑战赛 C题思路讲解
之前有小伙伴私信我叫我说说这次比赛C题的思路,怎么写的,我就写篇博客说说吧,仅供参考! 针对C题,该题目比较综合,是一个成熟的数模赛题,与国赛的相似性较高.一般而言,第一问难度较低,题目要求进行数据挖 ...
- 【BZOJ4173】数学 欧拉函数神题
[BZOJ4173]数学 Description Input 输入文件的第一行输入两个正整数 . Output 如题 Sample Input 5 6 Sample Output 240 HINT N ...
- 集训第六周 数学概念与方法 J题 数论,质因数分解
Description Tomorrow is contest day, Are you all ready? We have been training for 45 days, and all g ...
- Codeforces Beta Round #2B(dp+数学)
贡献了一列WA.. 数学很神奇啊 这个题的关键是怎么才能算尾0的个数 只能相乘 可以想一下所有一位数相乘 除0之外,只有2和5相乘才能得到0 当然那些本身带0的多位数 里面肯定含有多少尾0 就含有多少 ...
- 【最短路】【数学】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), ...
- 【数学】CSU 1810 Reverse (2016湖南省第十二届大学生计算机程序设计竞赛)
题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1810 题目大意: 一个长度为N的十进制数,R(i,j)表示将第i位到第j位翻转过来后的 ...
- 【BZOJ2134】单位错选(数学期望,动态规划)
[BZOJ2134]单位错选(数学期望,动态规划) 题面 BZOJ 题解 单独考虑相邻的两道题目的概率就好了 没了呀.. #include<iostream> #include<cs ...
- 复旦高等代数 I(17级)每周一题
本学期将继续进行高等代数每周一题的活动.计划从第二教学周开始,到第十六教学周为止(根据法定节假日安排,中间个别周会适当地停止),每周的周末将公布1-2道思考题,供大家思考和解答.每周一题通过“谢启鸿高 ...
随机推荐
- Chrome工具使用
(1) Chrome插件的使用 本来还想说FQ了,结果实验半天没成功,最后才知道公司已经邮件通知了,郁闷,FQ后我把我的插件重新装了一遍,觉得好像又懂了好多,记载下来我装的一些东西和有关PostMan ...
- npm 的使用指南
npm 使用指南 因为有写关于node.js的配置的博客,还有node和gulp的前端信息配置使用,其中有很多命令都用到了npm.所以这里要着重介绍一下npm. 1 npm介绍 npm(mode pa ...
- Python学习笔记 (十二)偏函数
摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318447438 ...
- PHP扩展--opcache安装及配置
简介 Optimizer+ 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,是第一个也是最快的 opcode 缓存工具.现在,Zend 科技公司将 Optimizer+ 在 PHP L ...
- [转]C/C++作用域详解
原文地址:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777433.html 作用域规则告诉我们一个变量的有效范围,它在哪儿创建,在 ...
- 使用asp.net改变图片颜色
最近奇葩经理提出了奇葩的需求,要能在网站上改变图片的颜色,比如灰色的变成彩色,彩色的变成灰色,尼玛楼主的感受你们不懂!于是有了下面的代码... 用法:调用update_pixelColor方法并传参数 ...
- 【BZOJ】3039: 玉蟾宫 悬线法
[题意]给定01矩阵,求最大全1子矩阵.n,m<=1000. [算法]动态规划(悬线法) [题解]★对于01矩阵中的任意一个全1极大子矩阵,都可以在其上边界遇到的障碍点处悬线到下边界的点x,则点 ...
- 【BZOJ】1040: [ZJOI2008]骑士 环套树DP
[题意]给定n个人的ai和bi,表示第i个人能力值为ai且不能和bi同时选择,求能力值和最大的选择方案.n<=10^6. [算法]环套树DP(基环树) [题解]n个点n条边——基环森林(若干环套 ...
- IntelliJ Idea key shortcuts
>Default explaination Official IntelliJ Idea 常用快捷键列表 Shortcuts Ctrl+Shift + Enter,语句完成 "!&qu ...
- gitlab使用 —— 多人协同工作(重要技能)
gitlab使用 —— 多人协同工作(重要技能) 学习链接: http://herry2013git.blog.163.com/blog/static/219568011201341111240751 ...