2014 HDU多校弟八场H题 【找规律把】

看了解题报告,发现看不懂 QAQ

比较简单的解释是这样的:

可以先暴力下达标,然后会发现当前数 上一个数 的差值是一个 固定值

而且等于当前数与i(第i个数)的商,

于是没有规律的部分暴力解决,有规律的套公式

 
//#pragma comment(linker, "/STACK:16777216") //for c++ Compiler

#include <stdio.h>

#include <iostream>

#include <cstring>

#include <cmath>

#include <stack>

#include <queue>

#include <vector>

#include <algorithm>

#define ll long long

#define Max(a,b) (((a) > (b)) ? (a) : (b))

#define Min(a,b) (((a) < (b)) ? (a) : (b))

#define Abs(x) (((x) > 0) ? (x) : (-(x)))

using namespace std;



const int INF = 0x3f3f3f3f;

const int MAXN = 8000;

const double eps = 1e-8;



int main()  {

   ll k, i, y, x, a, b, cnt = 1, z;

    while(cin >> x >> k)  {

        if(x == 0 && k == 0)   break;

        cout << "Case #" << cnt++ << ": ";

        for(i = 2; i <= k; ++i)  {

        y = x;

        if(x % i != 0){

            z = x / i;

            ++z;

            x = z * i;

        }

        a = x - y;

        b = x / i;

        if(a == b) break;

        }

        if(i <= k)

        x += (k - i) * b;

        cout << x << endl;

   }

   return 0;

}

 

你可能感兴趣的:(HDU)