第十二届湖南省赛--2016

原创 2016年08月31日 11:37:09

给出正整数 n 和 m,统计满足以下条件的正整数对 (a, b) 的数量:

  1. 1 ≤ a ≤ n, 1 ≤ b ≤ m;

  2. a × b 是 2016 的倍数。

输入包含不超过 30 组数据。

每组数据包含两个整数 n, m (1 ≤ n, m ≤ 109 ).
Output

对于每组数据,输出一个整数表示满足条件的数量。
Sample Input
32 63
2016 2016
1000000000 1000000000
Sample Output
1
30576
7523146895502644

#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<queue>
#include<vector>
#include<map>
#include<stack>
#include<set>
using namespace std;

#define pi acos(-1.0)
#define EPS 1e-6    
#define e exp(1.0); //2.718281828//log(x)
#define mod 1000000007
#define INF 0x7fffffff
#define inf 0x3f3f3f3f
#pragma comment(linker,"/STACK:102400000,102400000")
typedef long long LL;

#define debug(x) cout<<x<<" ";
#define debug2(x) cout<<x<<endl;
LL n,m;

LL cnta[2222],cntb[2222];
void geta(){
    LL temp=n/2016;
    LL cnt=n%2016;
    cnta[0]=temp;
    for(int i=1;i<=cnt;i++) cnta[i]=temp+1;
    for(int i=cnt+1;i<2016;i++) cnta[i]=temp;
}
void getb(){
    LL temp=m/2016;
    LL cnt=m%2016;
    cntb[0]=temp;
    for(int i=1;i<=cnt;i++) cntb[i]=temp+1;
    for(int i=cnt+1;i<2016;i++) cntb[i]=temp;
}

int main(){
    while(scanf("%I64d %I64d",&n,&m)!=EOF){
        geta();
        getb();
        LL ans=0;
        for(int i=0;i<2016;i++){
            for(int j=0;j<2016;j++){
                if((i*j)%2016==0) ans+=cnta[i]*cntb[j];
            }
        }
        printf("%lld\n",ans);
    }
    return 0;
}


/*
                   _ooOoo_
                  o8888888o
                  88" . "88
                  (| -_- |)
                  O\  =  /O
               ____/`---'\____
             .'  \\|     |//  `.
            /  \\|||  :  |||//  \
           /  _||||| -:- |||||-  \
           |   | \\\  -  /// |   |
           | \_|  ''\---/''  |   |
           \  .-\__  `-`  ___/-. /
         ___`. .'  /--.--\  `. . __
      ."" '<  `.___\_<|>_/___.'  >'"".
     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
     \  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======
                   `=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         I have a dream!A AC deram!!
 orz orz orz orz orz orz orz orz orz orz orz
 orz orz orz orz orz orz orz orz orz orz orz
 orz orz orz orz orz orz orz orz orz orz orz

*/
版权声明:本文为博主原创文章,未经博主允许不得转载。

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

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

贪心+数学——2016 (湖南省第十二届大学生计算机程序设计竞赛 A)

题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1803 分析: 给出连个数n,m(数据范围十亿),求1-n中的数a乘以1-m中的数b...
  • FeBr2
  • FeBr2
  • 2016年09月03日 22:00
  • 687

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

题目链接:   http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1810 题目大意:   一个长度为N的十进制数,R(i,j)表...

【最短路】【STL】CSU 1808 地铁 (2016湖南省第十二届大学生计算机程序设计竞赛)

题目链接:   http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1808 题目大意:   N个点M条无向边(N,M5),每条边属...

【贪心】CSU 1809 Parenthesis (2016湖南省第十二届大学生计算机程序设计竞赛)

题目链接:   http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1809 题目大意:   给一个长度为N(N5)的合法括号序列。...

CSU Problem 1803 2016(同余定理)——湖南省第十二届大学生计算机程序设计竞赛

CSU Problem 1803 2016(同余定理)——湖南省第十二届大学生计算机程序设计竞赛

【模拟】CSU 1807 最长上升子序列~ (2016湖南省第十二届大学生计算机程序设计竞赛)

题目链接:  http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1807题目大意:  给你一个长度为N的数列,数列中的0可以被其他数字替换,最终形成一个...

2016湖南省第十二届大学生程序设计竞赛(题解)

B.有向无环图(CSU 1804)Time Limit: 5 Sec Memory Limit: 128 MB Submit: 291 Solved: 136 [Submit][Status]...

【拓扑】【宽搜】CSU 1084 有向无环图 (2016湖南省第十二届大学生计算机程序设计竞赛)

题目链接:   http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1804 题目大意:   一个有向无环图(DAG),有N个点M条...

2016年湖南省第十二届大学生计算机程序设计竞赛(重现) A 2016

Description给出正整数 n 和 m,统计满足以下条件的正整数对 (a,b) 的数量:1. 1≤a≤n,1≤b≤m;2. a×b 是 2016 的倍数。 Input输入包含不超过 30 组数据...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第十二届湖南省赛--2016
举报原因:
原因补充:

(最多只允许输入30个字)