1. 程式人生 > 其它 >《春季每日一題2022》

《春季每日一題2022》

AcWing 3346. 你知道你的ABC嗎

題目連結
https://www.acwing.com/problem/content/3349/

解析*
大小比較,推理。排序後首先得A和A+B+C,然後得B + C,剩餘數中最小的為B,作差求得C.

Ac程式碼

點選檢視程式碼
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 10;

int a[N];
bool st[N];

int main()
{
    for(int i = 0; i < 7; i ++) scanf("%d", &a[i]);
    sort(a, a + 7);
    int A = a[0]; int sum = a[6];
    st[0] = true; st[6] = true;
    for(int i = 0; i < 7; i ++){
        if(a[i] == a[6] - a[0]) st[i] = true;
    }
    
    int B;
    for(int i = 0; i < 7; i ++){
        if(!st[i]){
            B = a[1];
            break;
        }
    }
    printf("%d %d %d", A, B, sum - A - B);
    
    return 0;
}

3358. 放養但沒有完全放養

題目連結
https://www.acwing.com/problem/content/3361/

解析
理解題意就可以寫。

Ac程式碼

點選檢視程式碼
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <map>

using namespace std;

const int N = 1010;

char s[N];
char ss[N];

map<char, int> mp;

int main()
{
    scanf("%s", s + 1);
    scanf("%s", ss);
    
    for(int i = 1; i <= 26; i ++) mp[s[i]] = i;
    
    int len = strlen(ss), cnt = 1;
    for(int i = 1; i < len; i ++){
        if(mp[ss[i]] <= mp[ss[i -1]]) cnt ++;
    }
    printf("%d\n", cnt);
    
    return 0;
}