2019 ACM训练计划——( 每天5题 ) 训练计划14
发布日期:2021-06-29 14:25:59 浏览次数:2 分类:技术文章

本文共 1929 字,大约阅读时间需要 6 分钟。

A


题目大意

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


题解

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

#include
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
st; st.clear(); st.insert(a),st.insert(b),st.insert(c),st.insert(d); if(st.size()==4){
cout<
<

B


题目大意

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


题解

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

#include
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<
<

C


题目大意

求最长不递减序列的长度


题解

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

#include
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
>a[i]; int ans=0; int mm=0; for(int i=1;i
=a[i-1]){
mm++; ans=max(ans,mm); }else mm=0; } cout<<++ans<

D


题目大意

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


题解

用数组解决

#include
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<
<<" "; return 0;}

E


题目大意

数学公式找规律


题解

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

偶数位的结果为n/2

#include
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<
<
学如逆水行舟,不进则退

转载地址:https://chocolate.blog.csdn.net/article/details/102470206 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:2019 ACM训练计划——( 每天5题 ) 训练计划15
下一篇:HNUCM 19级ACM训练计划【题解模板】

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月19日 06时33分04秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章