2018 Nowcoder Girl第二屆挑戰賽——題解

記錄一下自己打得如此渣渣還是進了前120,希望面試能順利,要求不高,第60名就好,我想要獎品😜順便求獎狀啊我要獎學金加分(有錢)

題目暫時還沒有,就憑着記憶來吧

第一題

 這是一道坑題,題意理解錯了,是歌曲已經下載的秒數不是從下載到開始過了多少秒。。。

其實就算是一道追及問題吧,求一下下一次重頭播放的時候是第幾秒

代碼等有題目了再更

 

第二題

唔。。這也是坑題一道啊,我看了半天,快1.5小時的時候才改過來,超級浪費時間。。。

求D(x)

這就是一道數學題,求\left ( \frac{x}{y} \right ) ^{y}的最大值,其實就是求導。

至於{\left (\left ( \frac{x}{y} \right ) ^{y} \right )}'\geq 0 怎麼求,這就是高數的知識了,對原式先取對數,也就是對y\ln \left ( \frac{x}{y} \right )求導

推導過程就不寫了,不會的話翻高數書吧(可能某些地區的高考知識。。)

最後求得x\geq e*y

所以在代碼裏直接y=x/e就好

判斷是有限小數還是無限小數

其實對於有限小數,就是要整除10^n,因此當且僅當分母只是2和5的倍數時才行。

不過有一個小坑在於記得分子分母需要先約分一下,用gcd求一下就好

#include <bits/stdc++.h>

using namespace std;

int gcd(int a, int b) {return a%b==0?b:gcd(b,a%b);}

//判斷是不是有限小數
bool yes(int n){
    while (n%2 == 0) n /= 2;
    while (n%5 == 0) n /= 5;
    if (n == 1) return true;
    return false;
}

int main()
{
    double n, i;
    double e = exp(1);
    long long s;
    cin >> n;
    if (n < 5) {
        cout << 0 <<endl;
        return 0;
    }
    s = 0;
    for (i = 5; i <=  n; i++) {
        int k = int(i/e+0.5);
        int x = gcd(int(i),k);
        k /= x;
        bool ok = yes(k);
        if(ok) s -= int(i);
        else s += int(i);
    }
    printf("%lld\n", s);
    return 0;
}

 

第三題

第三題題意又有點坑。。需要所有連續x個都滿足才行。。。

感覺讀懂題其實就沒什麼難點了

求出最壞情況就好

這個代碼好像本地保存有一點問題,可能最後是在網上直接修改的,我稍微修改了一下,不能保證一定是對的,等題目出來了再檢查一下,但思路是沒問題的。

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

int a[1000005];

int main()
{
    ll n, x, c, m, i, j, s, k;
    cin >> n >> x >> c >> m;
    memset(a, 0, sizeof(a));
    for (i = 0; i < m; i++) {
        scanf("%lld", &j);
        a[j-1]++;
    }
    s = 0;
    j = 0;
    for (i = 0; i < x-1; i++) {
        j += a[i];
    }
    for (i = x-1; i < n; i++) {
        j += a[i];
        k = i;
        while (j < c) {
            while (a[k]==1) {
                k--;
            }
            a[k]++;
            j++;
            s++;
            k--;
        }
        j -= a[i-x+1];
    }
    cout << s << endl;
    return 0;
}

其他未完待續。。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章