「题解」:Simple

Posted xingmi-weiyouni

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了「题解」:Simple相关的知识,希望对你有一定的参考价值。

问题 A: Simple

时间限制: 1 Sec  内存限制: 256 MB

题面


题面谢绝公开。

题解


不算数学的数学题??

直接枚举会重。$60%$两种算法:1.无脑$vis$数组记录。2.$exgcd$解方程判定是否有解。

$100%$:首先考虑特殊情况:$n$、$m$互质。

我们设$n*x+m*y=z$,考虑枚举$y$和$x$,不难发现,当$y>=x$的时候均能找到一个$y‘$使得$n|(y-y‘)$。

于是会出现重复。因此只需枚举$y([0,n-1])$,计算贡献即可。

对于一般情况,可以先化成互质。y筛到[0,n/gcd_{a,b}-1]即可。

 

技术图片
#include<bits/stdc++.h>
#define rint register int
using namespace std;
int T;
long long n,m,q,ans;
inline long long gcd(long long A,long long B){return (B==0)?A:gcd(B,A%B);}
int main()
{
    scanf("%d",&T);
    while(T--)
    {
        ans=0;
        scanf("%lld %lld %lld",&n,&m,&q);
        long long g=gcd(n,m);
        for(rint i=0;i<(n/g);++i)
        {
            long long z=q-i*m;
            if(z<0)break;
            ans+=z/n+1;
        }
        printf("%lld
",q-ans+1);
    }
}
View Code

 

以上是关于「题解」:Simple的主要内容,如果未能解决你的问题,请参考以下文章

CF 11D A Simple Task 题解

「题解」:Simple

Simple Final Test 题解

题解 CF11D A Simple Task

[AGC024F]Simple Subsequence Problem

EmberJS - Ember Simple Auth Oath2'grant _type'未定义