Hướng dẫn giải của Phép chia hết


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Lưu ý: Các code mẫu dưới đây chỉ mang tính tham khảo và có thể không AC được bài tập này

Code mẫu của flashmt

#include <iostream>
#include <algorithm>
#include <cstdio>
#define calc(a) ((a)/12+(a)/30-((a)/60)*2)
using namespace std;

int main()
{
    int test;
    long long a,b;
    cin >> test;
    while (test--)
    {
        scanf("%lld%lld",&a,&b);
        printf("%lld\n",calc(b)-calc(a-1));
    }
    return 0;
}

Code mẫu của happyboy99x

#include <algorithm>
#include <bitset>
#include <cctype>
#include <cfloat>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <deque>
#include <functional>
#include <iostream>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <utility>
#include <vector>
using namespace std;

typedef pair<int, int> ii;
typedef vector<ii> vii;
typedef vector<vii> vvii;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef unsigned long long LL;

#define sz(a) (int((a).size()))
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define all(c) (c).begin(), (c).end()
#define tr(c,i) for(typeof((c).begin()) i = (c).begin(), _e = (c).end(); i != _e; ++i)
#define present(c,x) ((c).find(x) != (c).end())
#define cpresent(c,x) (find(all(c),x) != (c).end())
#define rep(i,n) for(int i = 0, _n = (n); i < _n; ++i)
#define repd(i,n) for(int i = (n)-1; i >= 0; --i )
#define fo(i,a,b) for(int i = (a), _b = (b); i <= _b; ++i)
#define fod(i,a,b) for(int i = (a), _b = (b); i >= _b; --i)

#define INF 1000000000
#define N

int main() {
    int tc; scanf("%d",&tc);
    while(tc--) {
        LL a, b; scanf("%llu%llu", &a, &b);
        /*int res = 0;
        fo(i,a,b) if((i%4==0&&i%6==0&&i%15!=0)||(i%4==0&&i%6!=0&&i%15==0)||(i%4!=0&&i%6==0&&i%15==0)) res++;
        printf("%d\n",res);*/
        --a;
        printf("%llu\n", b/12-a/12 + b/30-a/30 - 2*(b/60-a/60));
    }
    return 0;
}

Code mẫu của ladpro98

program pbcdiv;
uses    math;
const   fi='';
var     a,b,m,n,p:int64;
        t,i:longint;
        inp:text;

function calc(i:longint):int64;
var     x,y:int64;
begin
        if a mod i = 0 then x:=a else
        x:=i-(a mod i)+a;
        if b mod i =0 then y:=b else
        y:=b - (b mod i);
        exit((y-x) div i +1);
end;

begin
        assign(inp,fi);
        reset(inp);
        readln(inp,t);
        for i:=1 to t do
        begin
                readln(inp,a,b);
                m:=calc(60);
                n:=calc(12);
                p:=calc(30);
                writeln(n+p-m-m);

        end;
        close(inp);
end.

Code mẫu của RR

#include <cstdio>
long long cnt(long long a){
    return a/30+a/12-a/60*2;
}
int main(){
    int t;scanf("%d",&t);
    long long a,b;
    while (t--){
        scanf("%lld%lld",&a,&b);
        printf("%lld\n",cnt(b)-cnt(a-1));
    }
    return 0;
}

Code mẫu của hieult

#include <cstdio>
//#include <conio.h>

long long xuly(long long n){
    return n/12+n/30-(n/60)*2;
}

int main(){
     int test;
     long long A,B;
     scanf("%d",&test);
     for(int itest = 1;itest<=test;itest++){
           scanf("%lld %lld",&A,&B);
           printf("%lld\n",xuly(B)-xuly(A-1));
     }
    // getch();
}

Code mẫu của skyvn97

#include<stdio.h>
typedef unsigned long long ull;
int t,c;
ull a,b,x,y,z;
int main(void) {
    scanf("%d",&t);
    for (c=1;c<=t;c=c+1) {
        scanf("%llu",&a);
        scanf("%llu",&b);
        x=b/12-(a-1)/12;
        y=b/30-(a-1)/30;
        z=b/60-(a-1)/60;
        printf("%llu\n",x+y-2*z);
    }
    return 0;
}

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.