1803: 2016

Time Limit: 5 Sec  Memory Limit: 128 MB
Submit: 565  Solved: 364
[Submit][Status][Web Board]

Description

 给出正整数 n 和 m,统计满足以下条件的正整数对 (a,b) 的数量:
1. 1≤a≤n,1≤b≤m;
2. a×b 是 2016 的倍数。

Input

输入包含不超过 30 组数据。
每组数据包含两个整数 n,m (1≤n,m≤109).

Output

对于每组数据,输出一个整数表示满足条件的数量。

Sample Input

32 63
2016 2016
1000000000 1000000000

Sample Output

1
30576
7523146895502644 总感觉这个题特别可惜,做出来就是金奖了,余数分类 ,刚开始就想歪了 ,这锅我的背,这个题我一直都在考虑...我把2016给分解了...起码浪费了3小时在这个题,不然别的题也不至于看都没看,可能还可以多A一些题. a*b%2016 = (a%2016*b%2016)%2016 所以它们的余数都在 [0,2015] ,按照余数分类,在 2016*2016 的时间内就可以解出来了.a的循环节是2016,b也是2016. 所以所有的余数个数都是 a/2016,b/2016,多出来的那一截再去补上+1,然后根据乘法原理算即可.
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int mod1[],mod2[]; ///按照余数分类
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF){
int c = a/,d = b/;
for(int i=;i<;i++){
mod1[i] = c,mod2[i] = d;
}
c = a%,d = b%;
for(int i=;i<=c;i++){
mod1[i]++;
}
for(int i=;i<=d;i++){
mod2[i]++;
}
LL ans = ;
for(int i=;i<;i++){
for(int j=;j<;j++){
if(i*j%==){
ans += (LL)mod1[i]*mod2[j];
}
}
}
printf("%lld\n",ans);
}
return ;
}

最新文章

  1. VOC2007检测任务的评估标准
  2. 架构系列:ASP.NET 项目结构搭建
  3. Python + OpenCV2 系列:1 - 配置
  4. AngularJS开发指南4:指令的详解
  5. Oracle数据库中文乱码问题
  6. Content Providers详解
  7. The-ith-Element
  8. 数据库版本管理工具Flyway(4.0.3)---介绍(译文)
  9. C#初步接触
  10. OSG+Python
  11. maven工程莫名其妙只在项目名称那里有一个红叉
  12. spring 面向切面(AOP)
  13. 百度地图android studio导入开发插件
  14. 复仇者联盟3热映,我用python爬取影评告诉你它都在讲什么
  15. python--ModuleFoundError
  16. 不能ping通主机名
  17. How To Do Master Record Mass Maintenance
  18. .NET-记一次架构优化实战与方案-底层服务优化
  19. swap扩展
  20. ios10兼容问题

热门文章

  1. 万圣节后的早晨&amp;&amp;九数码游戏——双向广搜
  2. form, table表示表格的时候有什么区别?
  3. socket--粘包
  4. duilib 修复padding属性导致其他控件自动计算宽高度错误的bug和导致自己宽高度错误的bug
  5. [吴恩达机器学习笔记]12支持向量机5SVM参数细节
  6. [DeeplearningAI笔记]卷积神经网络1.2-1.3边缘检测
  7. Vue.js随笔四(方法的声明和使用)
  8. 免密码登录服务器python脚本
  9. (知识扩展)R运用领域一览表
  10. sylk文件