CSP-X模拟赛一史贵源补题报告 日期:2024.10.2 学号:S12750

一.

1.题目大意-----做饭(cook)

小可为了体现对达达的爱,特意要为即将下班的达达做一顿丰富的晚饭!已知达达到家时间是K时刻,并且知道当前处在now时刻。
小可需要p秒时间去准备好饭菜。
假设小可制作晚饭总共需要q秒时间。
请问赶在达达到家之前,小可是否能准备完晚饭?

2.解析

先把达达到家的时刻和当前时间都变成秒数,再把达达到家的时刻和当前时间相减的时间和准备时间+制作时间的和比较,大于就输出No,否则输出Yes.

3.代码

1.题目大意-----评价标准(criterion)

给定一个长度为n的数组S ,其中包含S1,S2.......Sn;
定义数组S的评价标准为: 最大值-最小值 。
小可同学觉得问题过于简单。然后定义了一种操作:给定一个操作值k ,然后任意从数组中选择一个数字x ,x可以将数字k 加上 ,或者减去 k,之后得到一个新的数组,并使得新数组的评价标准最小。最终输出最小的评价标准。

2.解析

给定一个操作值 k,然后任意从数组中选择一个数字x,可以将数字 x 加上 k,或者减去 k,之后得到一个新的数组,并使得新数组的评价标准最小。最终输出最小的评价标准。

3.代码

1.题目大意-----小可买菜(buy)

小可对达达真的是真爱!
小可为了体现对达达的爱,特意要为即将下班的达达做一顿丰富的晚饭!做饭之前需要先购买足够的新鲜的食材,小可来到了超市。
小可列了一个购买清单,总共有 n个食材需要购买,在超市中第i个食材的价格是vi。
今天超市正在进行促销活动,每满两个商品,都可以进行促销活动,促销活动
为了节省金钱,小可还在线购买了k 张超市折扣券,每两件商品可以使用一张折扣券,使用两个商品中最低价格购买当前这两件商品。
注意:商品不能重复参加活动。
请问小可购买清单中所有物品都购买后,最低花费多少多少元?

2.解析

小可可以使用折扣券使用两个商品中最低价格购买当前两件商品,再用商场的促销活动,使用两个商品中最低价格购买当前这两件商品。,最后算出花费多少多少元?

3.代码

#include<bits/stdc++.h>
using namespace std;
long long n,k,a[1000010];
int main(){
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    int l=1,r=n;
    long long sum=0;
    while(l<=r){
        if(k>0){
            k--;
            sum+=a[l];
            ++l,--r;
        }else{
            sum+=a[r];
            --r;
            --r;
        }
    }
    cout<<sum<<endl;
    return 0;

1.题目大意-----美味佳肴(cuisine)

吃面包要配果酱
吃薯条要配番茄酱
。。。
达达发现,小可准备的这些美食中,很多食物搭配起来吃最美味了!
小可为了让达达吃起来最顺利,已经给食物提前进行了标记,标记分为两种: 大写字母 和 ? ,相同大写字母表示两个食物搭配起来吃最美味, ? 则表示搭配任何一个食物吃都非常美味,但是达达有习惯,一旦使用当前这种食物搭配另一个食物,达达就不会再去搭配其他食物吃,也就是说每个 ? 确定与某个食物搭配后,则不能再与其他食物搭配食用。
现在请问小可制作的饭菜中最多有多少种不同的搭配。注意:
不同的搭配表示,字符相等,但是位置不同。
形式化的讲,给定一个由 大写字母 和 ? 构成的字符串s ,在字符串中存在l,r 满足l<r 且s[l]==s[r],则表示一种美味搭配。找出最多的不同的搭配,当l不同或r不同,就表示一种不同搭配。

2.解析

先循环k次,最小与最大值结合,累加最小值并删除最小值与最大值,循环用双指针再累积.

3.代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值