牛客小白月赛94

A.map的简单应用

点击查看代码
#include<bits/stdc++.h>
using  namespace  std;
int   main()
{
    int n=9;
    map<int,int> s1;
    for(int i=1;i<=n;i++)
    {
        int  x;
        cin>>x;
        s1[i]=x;
    }
    string  s;
    cin>>s;
    for(int i=0;i<s.length();i++)
    {
        int c=s[i]-'0';
        cout<<s1[c];
    }
}

B.一个简单的思维问题

点击查看代码
#include<bits/stdc++.h>
#define  int  long long
const  int N=2e5+10;
using  namespace  std;
int a[N];
signed  main()
{
    bool  flag=false;
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    if(n==1)
    {
        cout<<0;
        return 0;
    }
    else{
        for(int i=1;i<n;i++)
        {
            if(a[i]<a[i-1])
            {
                flag=1;
                break;
            }
        }
    }
    if(flag)
    {
        cout<<n;
        return 0;
    }
    else{
        cout<<0;
        return 0;
    }
}

c.数组的前缀和与后缀和极差

点击查看代码
#include<bits/stdc++.h>
using namespace std;
const  int N=2e5;
int  b[N],a[N];
int  main()
{
 int n; cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        b[i]=b[i-1]+a[i];
    }
    int maxn=0;
    for(int i=1;i<n;i++){
        maxn=max(maxn,max(b[i]-a[i+1],b[n]-b[i]-a[i]));
    }
    cout<<maxn<<endl;
}
这里要注意的1就是i的取值范围为1到n(前闭后闭区间),但是当比较的时候却是 为1到n(前开后闭区间,这里取不到n); 这里要思考的是什么时候开始开Long Long;

D.数论问题

posted @ 2024-05-28 18:56  ruo_feng  阅读(19)  评论(0)    收藏  举报
-->