codeforces round #613

codeforces round #613

A. Mezo Playing

题目大意

机器人初始位置为0,给了一串指令告诉机器人是往左走一格还是右走一格,部分指令可能会丢失,问机器人最终可能的位置的情况数。

解题思路

见代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    char s[100010];
    scanf("%s",s);
    int n1=0;
    int n2=0;
    for(int i=0;i<strlen(s);i++){
        if(s[i]=='L'){
            n1++;
        }
        else n2++;
    }
    cout<<n1+n2+1<<endl;
    return 0;
}

B. Just Eat It! (CF 1285 B)

题目大意

给定一个数列,问整个区间和以及部分区间和哪个大。

解题思路

求最大子序列和即可,注意不能取整个区间,直接从左到右,从右到左求俩次最大子序列和即可

AC代码:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll a[100010];
ll dp[100010];

int main(){
    ll t,n,sum;
    cin>>t;
    while(t--){
        sum=0;
        cin>>n;
        memset(a,0,sizeof(a));
        memset(dp,0,sizeof(dp));
        for(int i=1;i<=n;i++){ cin>>a[i]; sum+=a[i];}
        dp[1]=a[1];
        for(int i=2;i<n;i++){
            dp[i]=max(dp[i-1]+a[i],a[i]);
        }
        ll maxn=dp[1];
        for(int i=1;i<n;i++){
            maxn=max(dp[i],maxn);
        }
        dp[2]=a[2];
        for(int i=3;i<=n;i++){
            dp[i]=(max(dp[i-1]+a[i],a[i]));
        }
        ll max2=dp[2];
        for(int i=3;i<=n;i++){
            max2=max(max2,dp[i]);
        }
        ll pos=max(max2,maxn);
        //cout<<sum<<" "<<maxn<<" "<<max2<<" "<<pos<<endl;
        if(pos>=sum){
            cout<<"NO"<<endl;
        }
        else cout<<"YES"<<endl;
    }
}

C. Fadi and LCM (CF 1285 C)

题目大意

给数x,找出 l c m ( a , b ) = x lcm(a,b)=x m a x ( a , b ) max(a,b) 最小即可

解题思路

贴一下大佬的,参考自lanly大佬
在这里插入图片描述

AC代码:
#include<iostream>
#include<cstdio>
using namespace std;
typedef long long LL;

LL X, A, B;
LL gcd(LL a, LL b){
    if(b != 0) return gcd(b, a % b);
    else return a;
}

int main()
{
    A = B = 1000000000007;
    int a = 10, b = 5;
    scanf("%I64d", &X);
    for(LL a = 1; a * a <= X; a++){
        if(X % a == 0){
            LL b = X / a;
            if(gcd(a, b) == 1){
                LL c = a > b ? a : b;
                LL ans = A > B ? A : B;
                if(c < ans){
                    A = a; B = b;
                }
            }
        }
    }
    printf("%I64d %I64d\n", A, B);
    return 0;
}

发布了9 篇原创文章 · 获赞 0 · 访问量 279

猜你喜欢

转载自blog.csdn.net/sakuyu_10/article/details/103946953