2018

题目链接:http://exam.upc.edu.cn/problem.php?cid=1374&pid=10

题意:容斥原理求1    2    1009    2018

让两个的乘积是2018的倍数。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef struct point{
    ll L,R;
}node;
node t[4]={0};
int main()
{

    while(~scanf("%lld%lld%lld%lld",&t[1].L,&t[1].R,&t[2].L,&t[2].R))
    {
        ll a[5]={0},b[5]={0},c[5]={0};

        a[0]=t[1].R-(t[1].L-1);
        a[1]=t[1].R/2-(t[1].L-1)/2;
        a[3]=t[1].R/2018-(t[1].L-1)/2018;
        a[2]=t[1].R/1009-(t[1].L-1)/1009-a[3];

        b[0]=t[2].R-(t[2].L-1);
        b[1]=t[2].R/2-(t[2].L-1)/2;
        b[3]=t[2].R/2018-(t[2].L-1)/2018;
        b[2]=t[2].R/1009-(t[2].L-1)/1009-b[3];

        ll ans=0;
        ans=b[0]*a[3]+a[0]*b[3]+b[2]*(a[1]-a[3])+a[2]*(b[1]-b[3])-b[3]*a[3];


        printf("%lld\n",ans);
    }

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值