s06510 周宸辉
今天10月2号
我来发个补题报告
一、解题报告
1、题目描述
问题描述
小可对达达真的是真爱!
小可为了体现对达达的爱,特意要为即将下班的达达做一顿丰富的晚饭!
已知达达到家时间是 K 时刻,并且知道当前处在 now 时刻。
小可需要 p 秒时间去准备好饭菜。
假设小可制作晚饭总共需要 q 秒时间。
请问赶在达达到家之前,小可是否能准备完晚饭。
输入格式
输入第一行按照 hh : mm : ss
,即时:分:秒
表示的时间 now,表示当前时间。
输入第二行按照 hh : mm : ss
,即时:分:秒
表示的时间 K,表示达达到家的时刻。
输入第三行两个整数 p,q,分别表示准备时间和制作时间。
输出格式
如果可以赶在达达回家之前制作完晚饭,输出Yes
,否则输出No
。
这道题有些不会 (?) 就直接奉上解题代码吧
这是AC代码(由于太懒了,就不打代码了)
小提示:(不要上了作者的当),关键词加粗了,是之前,好好分析吧
分析:
“:”输入,可以用char 或用scanf(我用的scanf,简单点) 然后把小时化成秒,把分钟也化成秒
t就是达达回来的时间 ,现在的时间+上做饭的时间就是达达回来的时间
然后输出yes no 就OK(第一个字母大写)
第一题 完事
接着看第二题
2、评价标准
问题描述
给定一个长度为 n 的数组 S ,其中包含1,2,⋯,S1,S2,⋯,Sn。
定义数组 S 的评价标准为:最大值-最小值
。
小可同学觉得问题过于简单。然后定义了一种操作:给定一个操作值 k,然后任意从数组中选择一个数字x,可以将数字 x 加上 k,或者减去 k,之后得到一个新的数组,并使得新数组的评价标准最小。最终输出最小的评价标准。
输入格式
输入第一行包含两个整数 n,k 。
第二行输入数组 S,总共 n 个整数,使用空格分开。
输出格式
输出一行,包含一个整数,表示操作后最小的评价标准。
正解奉上~
震撼吧(打这个代码是手都麻了,快写出残影了)
有点神经病的可可嫌太简单,加了个K
数字x要加上k或减去k 会出现一个新的数组,最小的是哪一个,就输出什么
记住 这个数不管是减还是加都要增加max和min的值(有可能加上K就比最大的还要大,比最小的还要小) 算完了输出
第二题 完事!~
第三题
时间限制:1秒 内存限制:256M
3、小可买菜
问题描述
小可对达达真的是真爱!
小可为了体现对达达的爱,特意要为即将下班的达达做一顿丰富的晚饭!
做饭之前需要先购买足够的新鲜的食材,小可来到了超市。
小可列了一个购买清单,总共有 n 个食材需要购买,在超市中第 i 个食材的价格是 vi。
今天超市正在进行促销活动,每满两个商品,都可以进行促销活动,使用两个商品中最高价格购买当前这两件商品。
为了节省金钱,小可还在线购买了 k 张超市折扣券,每两件商品可以使用一张折扣券,使用两个商品中最低价格购买当前这两件商品。
注意:商品不能重复参加活动。
请问小可购买清单中所有物品都购买后,最低花费多少元。
输入格式
第一行输入两个整数 n,k,含义如题所示。
第二行输入 n 个整数 vi,数字以空格分隔,表示每个食材价格。
输出格式
输出一行包含一个整数,表示小可购买清单中所有物品都购买后,最低花费多少元。
(看看错的多离谱,当个乐子就行了🤡🤡🤡)
来吧 正解
(苦练20分钟,做出来的,太不容易了😭😭)
可可家(穷还是富) 买了k个优惠卷(估计是114514个)
商场里有促销,两个只用付便宜的 若有优惠卷 就支付那个最便宜的
这道题的思路不大会,只是把正确的抄上 所以,这道题过
不会的 我还会分析一下
没有优惠卷的话就是付最贵的 有的话就付最便宜的
过!
最后一道题
4、美味佳肴
时间限制:1秒 内存限制:256M
问题描述
吃面包要配果酱
吃薯条要配番茄酱
……
达达发现,小可准备的这些美食中,很多食物搭配起来吃最美味了!
小可为了让达达吃起来最顺利,已经给食物提前进行了标记,标记分为两种:大写字母
和 ?
,相同大写字母表示两个食物搭配起来吃最美味,?
则表示搭配任何一个食物吃都非常美味,但是达达有习惯,一旦使用当前这种食物搭配另一个食物,达达就不会再去搭配其他食物吃,也就是说每个?
确定与某个食物搭配后,则不能再与其他食物搭配食用。
现在请问小可制作的饭菜中最多有多少种不同的搭配。
注意:
不同的搭配表示,字符相等,但是位置不同。
形式化的讲,给定一个由大写字母
和?
构成的字符串 s ,在字符串中存在 l,r 满足 l<r 且 s[l]==s[r],则表示一种美味搭配。找出最多的不同的搭配,当 l 不同或 r 不同,就表示一种不同搭配。
输入格式
多组测试,第一行一个整数 T,表示测试组数。
然后对于每组测试数据,输入一个字符串s,含义如题所示。
输出格式
对于每组测试数据,输出一个整数,表示不同的搭配数量。
输入样例
4
?A?
ABCDBDABCDBA
ABCD?ACNBADADA
ERTETHD?ERY?ERHDFS?
SZD?S
输出样例
3
13
20
27
此题没错 肢解放正解
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<algorithm>
using namespace std;
long long t,maxx,id;
long long a[400],ans;
string s;
int main(){
scanf("%lld",&t);
while(t--){
memset(a,0,sizeof a);
maxx=0,id=0,ans=0;
cin>>s;
for(int i=0;i<s.size();i++){
a[s[i]]++;
}
for(int i=0;i<300;i++){
if(char(i)!='?'&&a[i]>maxx){
maxx=a[i];
id=i;
}
}
a[id]+=a['?'];
a['?']=0;
for(int i=0;i<300;i++){
if(a[i]!=0){
ans+=a[i]*(a[i]-1)/2;
}
}
printf("%lld\n",ans);
}
return 0;
}
这就是正解
这道题要用公式 等差数列 (由于才上六年级,就先不放了) (头+尾)×项数/2
然后慢慢配对 得出正解
是n-1,n-2,n-3……一直到1
完事!(别急,底下还有)
其实这些题都可以用枚举解决 但都会时间超限 大家根据情况来做
我只是小学生 可能分析的不准 不喜勿喷 谢谢!
(不知小可和达达他俩是什么关系)