This page looks best with JavaScript enabled

ABC108 C-Triangular Relationship

 ·   ·  ☕ 1 min read  ·  ✍️ reud · 👀... views

全くわからなくて草生えたので、

AtCoder ARC 102 C - Triangular Relationship (300 点) - けんちょんの競プロ精進記録

けんちょんさんのこの記事を読むついでにブログを書きつつ理解していきたいと思います。

今回は解法2でいきます。

ほぼ先ほどの記事と同じですが考察はこんな感じになります(えっ難しい・・・難しくない?)

kami

コーディングをば

#include <bits/stdc++.h>
#define INF 1e9
using namespace std;

#define REPR(i,n) for(int i=(n); i >= 0; --i)
#define FOR(i, m, n) for(int i = (m); i < (n); ++i)
#define REP(i, n) for(int i=0, i##_len=(n); i<i##_len; ++i)
#define ALL(a)  (a).begin(),(a).end()

template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return true; } return false; }
template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return true; } return false; }
int gcd(int a,int b){return b?gcd(b,a%b):a;}
typedef long long ll;
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}

int main() {
    ll N,K;
    cin >> N >> K;
    ll x = N/K;
    if (K%2==1) {
        cout << x*x*x << endl;
        exit(0);
    }
    ll y = (N+(K/2))/K;
    cout << x*x*x + y*y*y << endl;
    return 0;
}

考察にかかる時間長過ぎて辛くなりそうな問題でした・・・

Share on

reud
WRITTEN BY
reud
Stundent