七年级思维训练4.15-4.27

已结束 ACM/ICPC 开始于: 2024-4-15 18:45 300 小时 主持人: 4

比赛加时了 七年级的补补 —— 考虑到要期中考试了,题目想写就写

题解: Rudolf and the Ticket

#include<bits/stdc++.h>
#define int long long
using namespace std;
#define endl "\n"
const int maxn=2e5+5;
#define PII pair<int,int>
int b[maxn],c[maxn];
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    int t;
    cin>>t;
    while(t--){
        int n,m,k;
        cin>>n>>m>>k;
        for(int i=1;i<=n;i++){
            cin>>b[i];
        }   
        for(int i=1;i<=m;i++){
            cin>>c[i];
        }
        int cnt=0;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                if(b[i]+c[j]<=k)cnt++;
            }
        }
        cout<<cnt<<endl;
    }
}

Rudolf and 121 按照题目的要求如果要让所有的数字为0,那么至少得让a[1]为0,题目给的操作至少得从下标为2开始操作。也就是说为了让a[1]为0,我们得从a[2]开始操作
为了让a[2]为0我们得从a[3]开始操作...

#include<bits/stdc++.h>
#define int long long
using namespace std;
#define endl "\n"
const int maxn=2e5+5;
#define PII pair<int,int>
int a[maxn];
void op(int x,int k){
    //定义操作 输入下标x,和k
    //这个函数的作用是对下标为x处进行k次操作
    a[x-1]-=k;
    a[x]-=2*k;
    a[x+1]-=k;
}
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    int t;
    cin>>t;
    while(t--){
        int n;cin>>n;
        for(int i=1;i<=n;i++){
            cin>>a[i];
        }
        
        for(int i=2;i<n;i++){
            if(a[i-1]>0){
                op(i,a[i-1]);
            }
        }
        int f=1;
        for(int i=1;i<=n;i++){
            if(a[i]!=0)f=0;
        }
        // for(int i=1;i<=n;i++){
        //     printf("%d ",a[i]);
        // }
        // printf("\n");
        if(f){
            cout<<"YES\n";
        }
        else{
            cout<<"NO\n";
        }
    }
}

Rudolf and the Ugly String 考虑题目意思发现"map"与"pie"只有一种重叠,也就是说会出现“map..pie”如果p多余2个,应该删a和i。如果p只有一个也就是出现"mapie"这种情况删p。
得出答案思路,遇到“map”或“pie”删的次数++ 遇到"mapie"删的次数--

#include<bits/stdc++.h>
#define int long long
using namespace std;
#define endl "\n"
const int maxn=2e5+5;
#define PII pair<int,int>
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    int t;
    cin>>t;
    while(t--){
        int n;
        cin>>n;
        string a;
        cin>>a;
        a=" "+a;
        
        int ans=0;
        for(int i=1;i<=n;i++){
            if(n-i>=2){
                if(a[i]=='m'&&a[i+1]=='a'&&a[i+2]=='p')ans++;
                if(a[i]=='p'&&a[i+1]=='i'&&a[i+2]=='e')ans++;
            }
            if(n-i>=4){
                if(a.substr(i,5)=="mapie")ans--;
            }
            // printf("%d %d\n",i,ans);
        }
        cout<<ans<<endl;
    }
}
状态
已结束
规则
ACM/ICPC
题目
3
开始于
2024-4-15 18:45
结束于
2024-4-28 6:45
持续时间
300 小时
主持人
参赛人数
4