A、组队比赛

最强和最弱一组,其余两个人一组,注意求绝对值,不要输出负数。。我就因为负数WA一发。


https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43475100

#include <bits/stdc++.h>
using namespace std;
#define js ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
typedef long long ll;

inline int read() {
    int s = 0, w = 1; char ch = getchar();
    while (ch < 48 || ch > 57) { if (ch == '-') w = -1; ch = getchar(); }
    while (ch >= 48 && ch <= 57) s = (s << 1) + (s << 3) + (ch ^ 48), ch = getchar();
    return s * w;
}

int a[5];

int main() {
    for (int i = 1; i <= 4; ++i) a[i] = read();
    sort(a + 1, a + 5);
    printf("%d\n", abs(a[1] + a[4] - a[2] - a[3])); //别出负数
    return 0;
}

B、每日一报

输入数据,对体温大于等于38.0的数据加个标记,后面按要求排序,在遍历一遍,标记过的输出。。
这里说一句一定一定要看提示,提示写了按大于等于38.0,就直接写,我按温度-38.0大于等于1e-6,不知道为什么一直WA,可能精度卡住了把。。


https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43483814

#include <bits/stdc++.h>
using namespace std;
#define js ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
typedef long long ll;

inline int read() {
    int s = 0, w = 1; char ch = getchar();
    while (ch < 48 || ch > 57) { if (ch == '-') w = -1; ch = getchar(); }
    while (ch >= 48 && ch <= 57) s = (s << 1) + (s << 3) + (ch ^ 48), ch = getchar();
    return s * w;
}

const double eps = 1e-6;

struct Node {
    int time;
    int id;
    double temp;
    bool flag;
}a[105];

bool cmp(Node a, Node b) {
    if (a.time != b.time)   return a.time > b.time;
    if (a.temp != b.temp)   return a.temp > b.temp;
    return a.id < b.id;
}

int main() {
    int n = read();
    int cnt = 0;
    for (int i = 1; i <= n; ++i) {
        scanf("%d %d %lf", &a[i].time, &a[i].id, &a[i].temp);
        if (a[i].temp >= 38.0)   a[i].flag = true, ++cnt;
        else        a[i].flag = false;
    }
    sort(a + 1, a + 1 + n, cmp);
    printf("%d\n", cnt);
    for (int i = 1; i <= n; ++i)
        if (a[i].flag)
            printf("%d %d %.1f\n", a[i].time, a[i].id, a[i].temp);
    return 0;
}

C、最长非公共子序列

简单思维题,如果两个字符串相等,输出-1,否则字符串长的一定不是字符串短的子串,输出A、B两串较长的那个


https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43485496

#include <bits/stdc++.h>
using namespace std;
#define js ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)

string a, b;

int main() {
    js;
    cin >> a >> b;
    int lena = a.size(), lenb = b.size();
    if (a == b)
        cout << "-1" << endl;
    else
        cout << max(lena, lenb) << endl;
    return 0;
}

D、最大字符集

图片说明

通过上面你会惊奇的发现直接在11直接插入0,都不是上面去头或者去尾的子串。在对1和2进行一下特判就可以A了


https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43490810

#include <bits/stdc++.h>
using namespace std;
#define js ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
typedef long long ll;

int n;
int main() {
    js;
    cin >> n;
    if (n == 1) {
        cout << 1 << endl << 1 << endl;
    }
    else if (n == 2) {
        cout << 2 << endl << "0" << endl << "11" << endl;
    }
    else {
        cout << n - 1 << endl;
        string ans = "11";
        cout << ans << endl;
        for (int i = 3; i <= n; ++i) {
            ans.insert(1, "0");
            cout << ans << endl;
        }
    }
    return 0;
}

E、美味的序列

根据题目要求,全部的都要吃,负数了也要吃进去,所以直接把输入的数据累加求和,减掉图片说明 项,公差是1的等差数列前图片说明 项和,就是答案。


https://ac.nowcoder.com/acm/contest/5278#submit/{%22onlyMyStatusFilter%22%3Atrue%2C%22problemIdFilter%22%3A%22205298%22}

#include <bits/stdc++.h>
using namespace std;
#define js ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
typedef long long ll;

inline int read() {
    int s = 0, w = 1; char ch = getchar();
    while (ch < 48 || ch > 57) { if (ch == '-') w = -1; ch = getchar(); }
    while (ch >= 48 && ch <= 57) s = (s << 1) + (s << 3) + (ch ^ 48), ch = getchar();
    return s * w;
}

ll sum;

int main() {
    ll n = read();
    for (int i = 1; i <= n; ++i) {
        int a = read();
        sum += a;
    }
    sum -= n * (n - 1) >> 1;
    printf("%lld\n", sum);
    return 0;
}

F、日期小助手

在快乐的百度只后我们可以知道1900年算星期的法子。
我们2020年的程序员默认知道1900年1月1日星期一,在这个前提下,算天数,就可以找到对应年份的母亲节和父亲节日期,记得判断一下闰年,多加一个1。
这样我们求得输入年份得母亲节,父亲节,还有明年得母亲节,因为如果下个节日在明年,一定只有母亲节。母亲节在图片说明 父亲节在图片说明 只有21是st,注意特判一下。。


https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43495856

#include <bits/stdc++.h>
using namespace std;
#define js ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
typedef long long ll;

inline int read() {
    int s = 0, w = 1; char ch = getchar();
    while (ch < 48 || ch > 57) { if (ch == '-') w = -1; ch = getchar(); }
    while (ch >= 48 && ch <= 57) s = (s << 1) + (s << 3) + (ch ^ 48), ch = getchar();
    return s * w;
}

int calcmother(int year) {
    int  n, whichday, motherday, s = 0;
    for (n = 1900; n < year; n++)
    {
        if ((n % 4 == 0 && n % 100 != 0) || (n % 400 == 0))
            s = s + 366;
        else
            s = s + 365;
    }
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
    {
        s = s + 121;
        whichday = s % 7;
        motherday = (14 - whichday);
        return motherday;
    }
    else
    {
        s = s + 120;
        whichday = s % 7;
        motherday = (14 - whichday);
        return motherday;
    }
}

int calcfather(int year) {
    int  n, whichday, fatherday, s = 0;
    for (n = 1900; n < year; n++)
    {
        if ((n % 4 == 0 && n % 100 != 0) || (n % 400 == 0))
            s = s + 366;
        else
            s = s + 365;
    }
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
    {
        s = s + 152;
        whichday = s % 7;
        fatherday = (21 - whichday);
        return fatherday;
    }
    else
    {
        s = s + 151;
        whichday = s % 7;
        fatherday = (21 - whichday);
        return fatherday;
    }
}

int main() {
    int T = read();
    while (T--) {
        int year = read(), mon = read(), day = read();
        int montherdaynow = calcmother(year);
        int montherdaynext = calcmother(year + 1);
        int fatherdaynow = calcfather(year);
        if (mon < 5 || mon == 5 && day < montherdaynow)
            printf("Mother's Day: May %dth, %d\n", montherdaynow, year);
        else if (mon < 6 || mon == 6 && day < fatherdaynow)
            if (fatherdaynow == 21)
                printf("Father's Day: June %dst, %d\n", fatherdaynow, year);
            else
                printf("Father's Day: June %dth, %d\n", fatherdaynow, year);
        else
            printf("Mother's Day: May %dth, %d\n", montherdaynext, year + 1);
    }
    return 0;
}

好了,签到完毕,后面自闭,不会写了。。。