2019 ACM训练计划——( 每天5题 ) 训练计划14

A

Codeforces Round #166 (Div. 2), problem: (A) Beautiful Year


题目大意

给你一个四位数,问从这个数开始(不包括这个数)每一位都不相同的最小的数字是多少


题解

把这四位数的每一位都取出来,然后放入set中判断是否长度为4即可

#include<bits/stdc++.h>
using namespace std;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin>>n;
    while(1){
        n++;
        int a=n%10;
        int b=n/10%10;
        int c=n/100%10;
        int d=n/1000%10;
        set<int> st;
        st.clear();
        st.insert(a),st.insert(b),st.insert(c),st.insert(d);
        if(st.size()==4){
            cout<<n<<endl;
            break;
        }
    }
    return 0;
}

B

Codeforces Round #274 (Div. 2), problem: (A) Expression


题目大意

给定三个数 不能交换位置 你可以在两个数字之间插入运算符,然后需要求出最大的结果值


题解

根据题意,共有5中加和乘的方式 直接算出来5中结果 然后求最大值即可

#include<bits/stdc++.h>
using namespace std;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    int a,b,c;
    cin>>a>>b>>c;
    int k1=a+b*c;
    int k2=a*(b+c);
    int k3=a*b*c;
    int k4=(a+b)*c;
    int k5=a+b+c;
    int ans=0;
    ans=max(k1,max(k2,max(k3,max(k4,k5))));
    cout<<ans<<endl;
    return 0;
}

C

Codeforces Round #321 (Div. 2), problem: (A) Kefa and First Steps


题目大意

求最长不递减序列的长度


题解

直接从头扫到尾扫一遍即可

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
int n,a[maxn],dp[maxn];
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>a[i];
    int ans=0;
    int mm=0;
    for(int i=1;i<n;i++){
        if(a[i]>=a[i-1]){
            mm++;
            ans=max(ans,mm);
        }else
            mm=0;
    }
    cout<<++ans<<endl;
    return 0;
}

D

Codeforces Beta Round #97 (Div. 2), problem: (A) Presents


题目大意

送礼物,先告诉你你收到了谁的礼物,然后你需要输出你送给了谁礼物


题解

用数组解决

#include<bits/stdc++.h>
using namespace std;
const int maxn=110;
int n,a[maxn];
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin>>n;
    for(int i=1;i<=n;i++){
        int x;
        cin>>x;
        a[x]=i;
    }
    for(int i=1;i<=n;i++)
        cout<<a[i]<<" ";
    return 0;
}

E

Codeforces Round #277 (Div. 2), problem: (A) Calculating Function


题目大意

数学公式找规律


题解

分奇偶进行判断,奇数位的结果为 n / 2 - n

偶数位的结果为n/2

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    ll n;
    cin>>n;
    ll ans=0;
    if(n&1)
        ans=n/2-n;
    else
        ans=n/2;
    cout<<ans<<endl;
    return 0;
}
学如逆水行舟,不进则退
一百个Chocolate CSDN认证博客专家 CSDN博客专家 博客之星 前端开发攻城狮
JS,TS,LeetCode,Vue,React,算法爱好者。
主要分享前端知识,立志成为优秀前端博主。
座右铭:学如逆水行舟,不进则退!
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值