Loading

AtCoder Beginner Contest 101

A - Eating Symbols Easy

大意:

一开始是0,四个符号,-是-1,+是+1

#include<bits/stdc++.h>

using namespace std;

const int N = 1e6 + 5;
typedef long long LL;
string s;
int main() {
    cin >> s;
    int res = 0;
    for (int i = 0; i < 4;i++)
        if (s[i] == '-') res--;
        else
            res++;
    cout << res << endl;
    return 0;
}

B - Digit Sums

大意:

数位和能不能整除这个数

#include<bits/stdc++.h>

using namespace std;

const int N = 1e6 + 5;
typedef long long LL;
int n,tmp,sum;
int main(){
    cin >> n;
    tmp = n;
    sum = 0;
    while(tmp){
        sum += tmp % 10;
        tmp /= 10;
    }
    if (n % sum==0) cout << "Yes" << endl;
    else
        cout << "No" << endl;
    return 0;
}

C - Minimization

大意:

给出一个n的全排列,每次可以选择k个数,将这k个数用k个数里面的最小值替换,问操作多少次可以将n个数变为相等的数

思路:

直接从左到右顺着变换即可,注意分类讨论一下k=2的情况

#include <bits/stdc++.h>

using namespace std;

const int N = 1e6 + 5;
typedef long long LL;
int n, k, x;
int main() {
    cin >> n >> k;
    for (int i = 0; i < n; i++) cin >> x;
    if (k >= n)
        cout << 1 << endl;
    else if(k==2)
        cout << n - 1 << endl;
    else if (n % (k - 1) == 1 || n % (k - 1) == 0)
        cout << n / (k - 1) << endl;
    else
        cout << n / (k - 1) + 1 << endl;
    return 0;
}

D - Snuke Numbers

大意:

定义Snuke number n为对于所有大于n的数m,都有:n/n的数位和<=m/m的数位和

输入一个数k,输出前k小的Snuke number

思路:

打表,然后发现基本后面的位都是9,但是最高位可能是1-9,也有可能是10-99,再往后就没打出来了,所以只能根据这个不是规律的规律进行构造,然后判断再输出即可。

p为最高位,q为位数:

#include <bits/stdc++.h>

using namespace std;

const int N = 1e6 + 5;
typedef long long LL;
LL n;

LL get(LL x) {
    LL sum = 0;
    while (x) {
        sum += x % 10;
        x /= 10;
    }
    return sum;
}
LL num = 0;
int main() {
    cin >> n;
    LL p = 2, q = 1;
    while (n) {
        LL now = p * q - 1;
        LL ne = ceil(1.0 * p / 10) * q * 10 - 1;
        if (now * get(ne) > ne * get(now)) {
            p = ceil(1.0 * p / 10);
            q *= 10;
        } else {
            cout << now << endl;
            n--;
            p++;
        }
    }
    return 0;
}
posted @ 2021-02-01 09:21  dyhaohaoxuexi  阅读(111)  评论(0编辑  收藏  举报