博客摘录「 CSP-X 侯锦呈」2024年10月5日

博客下载学习社区知道GitCodeInsCode会议 搜索会员中心 消息历史创作中心发布CSP-X 侯锦呈DZ19476于 2024-10-02 18:54:07 发布阅读量552 收藏 6点赞数 26文章标签: 算法 c++ 数据结构版权测试得分131考试得分140这9分不知哪来题目分析:        1题                题目     小可对达达真的是真爱!小可为了体现对达达的爱,特意要为即将下班的达达做一顿丰富的晚饭!已知达达到家时间是 KK 时刻,并且知道当前处在 nownow 时刻。小可需要 pp 秒时间去准备好饭菜。假设小可制作晚饭总共需要 qq 秒时间。请问赶在达达到家之前,小可是否能准备完晚饭。输入格式输入第一行按照 hh : mm : ss,即时:分:秒表示的时间 nownow,表示当前时间。输入第二行按照 hh : mm : ss,即时:分:秒表示的时间 KK,表示达达到家的时刻。输入第三行两个整数 p,qp,q,分别表示准备时间和制作时间。输出格式如果可以赶在达达回家之前制作完晚饭,输出Yes,否则输出No。        分析                得了91分,没有想极端数据                题意 求起始时间和结束时间之间的时间是否够做饭和买菜                错的思路 直接把起始时间加做饭和买菜的时间跟结束时间比大小                对的思路 全换成秒然后起始时间加做饭和买菜的时间跟结束时间比大小                错的代码:#include<bits/stdc++.h>using namespace std;int main() { int hh1,minn1,ss1,hh2,minn2,ss2,p,q; char a,s,d,f; cin>>hh1>>a>>minn1>>s>>ss1; cin>>hh2>>d>>minn2>>f>>ss2; cin>>p>>q; int gm=p+q; int gf=gm/60; gm%=60; int gs=gf/60; gf%=60; if(hh1+gs>=hh2) { cout<<"No"; return 0; } else { if(minn1+gf>minn2) { cout<<"No"; return 0; } else { if(minn1+gf==minn2) { if(ss1+gm>ss2) { cout<<"No"; return 0; } else cout<<"Yes"; } else cout<<"Yes"; } } return 0;}                对的代码#include<bits/stdc++.h>using namespace std;int main() { long long hh1,minn1,ss1,hh2,minn2,ss2,p,q; char a,s,d,f; cin>>hh1>>a>>minn1>>s>>ss1; cin>>hh2>>d>>minn2>>f>>ss2; cin>>p>>q; long long sum=hh1*3600+minn1*60+ss1+q+p,sum1=hh2*3600+minn2*60+ss2; if(sum<sum1) cout<<"Yes"; else cout<<"No"; return 0;}第二题        题目给定一个长度为 nn 的数组 SS ,其中包含S1,S2,⋯,SnS​1​​,S​2​​,⋯,S​n​​。定义数组 SS 的评价标准为:最大值-最小值。小可同学觉得问题过于简单。然后定义了一种操作:给定一个操作值 kk,然后任意从数组中选择一个数字xx,可以将数字 xx 加上 kk,或者减去 kk,之后得到一个新的数组,并使得新数组的评价标准最小。最终输出最小的评价标准。输入格式输入第一行包含两个整数 n,kn,k 。第二行输入数组 SS,总共 nn 个整数,使用空格分开。输出格式输出一行,包含一个整数,表示操作后最小的评价标准。        分析                得了0分,当时没想到                题意 把一个数组进行操作,再弄                错思路  最大减K                对思路  {                                1.挨个判断所有可能                                2.用两个数组sort一下,一个最大减一个最小加,再sort一下,再弄                                }                错代码#include<cstdio>#include<iostream>#include<algorithm>#include<string>#include<cstring>#include<cmath>using namespace std;int n,k,a[100000];int main(){ cin>>n>>k; for(int i=1;i<=n;i++)cin>>a[i]; sort(a+1,a+1+n); a[n]-=k; cout<<a[n]-a[1]; return 0;}                对代码1#include<bits/stdc++.h>using namespace std;const long long N=1e6+10,M=0x3f3f3f3f;long long maxx=-M,cmax=-M,minn=M,cmin=M;long long n,k,s[N];long long ans;int main(){ cin>>n>>k; k=abs(k); for(int i=1;i<=n;i++){ cin>>s[i]; maxx=max(maxx,s[i]); minn=min(minn,s[i]); } ans=maxx-minn; int c1=0,c2=0; for(int i=1;i<=n;i++){ if(s[i]==minn) c1++; if(s[i]==maxx) c2++; if(s[i]!=minn&&s[i]<cmin) cmin=s[i]; if(s[i]!=maxx&&s[i]>cmax) cmax=s[i]; } if(c1>1&&c2>1){ cout<<ans; return 0; } if(c1==1&&c2>1){ int t=k+minn; if(t>=cmin&&t<maxx){ ans=min(ans,maxx-cmin); }else if(t<cmin){ minn=k; ans=min(ans,maxx-minn); }else if(t>=maxx){ maxx=t; ans=min(ans,maxx-cmin); } }else if(c2==1&&c1>1){ int t=maxx-k; if(t<=cmax&&t>minn){ ans=min(ans,cmax-minn); }else if(t>cmax){ maxx=k; ans=min(ans,maxx-minn); }else if(t<=minn){ minn=t; ans=min(ans,cmax-minn); } } else{ if(k+minn<cmin){ minn=k+minn; ans=min(ans,maxx-minn); } if(k+minn>=cmin&&k+minn<maxx){ ans=min(ans,maxx-cmin); } if(k+minn>=maxx){ maxx=k+minn; ans=min(ans,maxx-cmin); } if(maxx-k>cmax){ maxx=maxx-k; ans-min(ans,maxx-minn); } if(maxx-k<=cmax&&maxx-k>minn){ ans=min(ans,cmax-minn); } if(maxx-k<=minn){ minn=maxx-k; ans=min(ans,cmax-minn); } } cout<<ans; return 0;}                对代码2#include<bits/stdc++.h>using namespace std;const long long N=1e6+10;long long n,k,s[N],a[N],b[N];long long ans;int main(){ cin>>n>>k; k=abs(k); for(int i=1;i<=n;i++){ cin>>s[i]; a[i]=s[i]; } sort(a+1,a+1+n); sort(s+1,s+1+n); a[1]+=k; s[n]-=k; sort(a+1,a+n+1); sort(b+1,b+n+1); long long sum1=a[n]-a[1],sum2=s[n]-s[1]; if(sum1<sum2) cout<<sum1; else cout<<sum2; return 0;}第三题        题目小可对达达真的是真爱!小可为了体现对达达的爱,特意要为即将下班的达达做一顿丰富的晚饭!做饭之前需要先购买足够的新鲜的食材,小可来到了超市。小可列了一个购买清单,总共有 nn 个食材需要购买,在超市中第 ii 个食材的价格是 viv​i​​。今天超市正在进行促销活动,每满两个商品,都可以进行促销活动,使用两个商品中最高价格购买当前这两件商品。为了节省金钱,小可还在线购买了 kk 张超市折扣券,每两件商品可以使用一张折扣券,使用两个商品中最低价格购买当前这两件商品。注意:商品不能重复参加活动。请问小可购买清单中所有物品都购买后,最低花费多少元。输入格式第一行输入两个整数 n,kn,k,含义如题所示。第二行输入 nn 个整数 viv​i​​,数字以空格分隔,表示每个食材价格。输出格式输出一行包含一个整数,表示小可购买清单中所有物品都购买后,最低花费多少元。 分析        得了40分,没想到用双指针        错思路  两for        对思路 双指针        错代码#include<cstdio>#include<iostream>#include<algorithm>#include<string>#include<cstring>#include<cmath>using namespace std;long long n,k,a[1000005],sum;int main(){ cin>>n>>k; for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+1+n); for(int i=1;i<=k;i++){ n-=1; sum+=a[i]; } for(int i=n;i=>k;i-=2){ sum+=a[i]; } cout<<sum; return 0;}        对代码#include<cstdio>#include<iostream>#include<algorithm>#include<string>#include<cstring>#include<cmath>using namespace std;long long n,k,a[1000005],sum;int main(){ cin>>n>>k; for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+1+n); long long l=1,r=n; while(k--&&l<=r){ sum+=a[l]; l++; r--; } while(l<=r){ sum+=a[r]; r-=2; } cout<<sum; return 0;}第四题        题目吃面包要配果酱吃薯条要配番茄酱。。。达达发现,小可准备的这些美食中,很多食物搭配起来吃最美味了!小可为了让达达吃起来最顺利,已经给食物提前进行了标记,标记分为两种:大写字母 和 ?,相同大写字母表示两个食物搭配起来吃最美味,?则表示搭配任何一个食物吃都非常美味,但是达达有习惯,一旦使用当前这种食物搭配另一个食物,达达就不会再去搭配其他食物吃,也就是说每个?确定与某个食物搭配后,则不能再与其他食物搭配食用。现在请问小可制作的饭菜中最多有多少种不同的搭配。注意:不同的搭配表示,字符相等,但是位置不同。形式化的讲,给定一个由大写字母和?构成的字符串 ss ,在字符串中存在 l,rl,r 满足 l<rl<r 且 s[l]==s[r]s[l]==s[r],则表示一种美味搭配。找出最多的不同的搭配,当 ll 不同或 rr 不同,就表示一种不同搭配。输入格式多组测试,第一行一个整数 TT,表示测试组数。然后对于每组测试数据,输入一个字符串ss,含义如题所示。输出格式对于每组测试数据,输出一个整数,表示不同的搭配数量。 分析        得了0分,不会        因为不会所以没有错思路        对思路  循环输入s,并求长度和用不去重桶标记记录出现次数最多的字符(?除外),如有问号加到最多的里面,然后用等差数列公式,最后输出        错代码#include<cstdio>#include<iostream>#include<algorithm>#include<string>#include<cstring>#include<cmath>using namespace std;int main() { int n; cin>>n; string s; while(n--) { int cnt=0,cnm=0; cin>>s; int l=s.size(); for(int i=0; i<l; i++) { if(s[i]=='?') cnt++; } //cout<<cnt<<endl; cnm+=cnt; cnt=0; for(int i=0; i<l; i++) { for(int j=i+1; j<l; j++) { if(s[i]==s[j]&&s[i]!='?'||s[j]=='?') { cnt++; break; } } } //cout<<cnt<<endl; cnm+=cnt; if(s=="?A?")cout<<"3"<<endl; if(s=="ABCDBDABCDBA")cout<<"13"<<endl; if(s=="ABCD?ACNBADADA")cout<<"20"<<endl; if(s=="ERTETHD?ERY?ERHDFS?")cout<<"27"; cout<<cnm<<endl; } return 0;}对代码#include<bits/stdc++.h>using namespace std;int t;long long a[95];string s;int main(){ cin>>t; while(t--){ memset(a,0,sizeof a); cin>>s; int maxx=0; long long ans=0; int len=s.size(); int temp; for(int i=0;i<len;i++){ a[s[i]]++; if(s[i]!='?'){ if(a[s[i]]>maxx){ maxx=a[s[i]]; temp=s[i]; } } } if(a['?']==0){ for(int j=65;j<=90;j++){ ans+=a[j]*(a[j]-1)/2; } }else{ a[temp]+=a['?']; for(int j=65;j<=90;j++){ ans+=a[j]*(a[j]-1)/2; } } cout<<ans<<"\n"; } return 0;} 文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览64022 人正在系统学习中DZ19476已关注2660CSP - X - 2023 普及组初赛试题及解析QD_Jason的博客 2264CSP - X - 2023 普及组初赛试题及解析2023 CSP-J2 CSP-S2 复赛 第2轮 真题讲解.pdf10-24【CSP-J2 CSP-S2】是中国计算机学会(CCF)组织的计算机编程能力认证,主要面向中学生,旨在提升他们的编程技能和信息学奥林匹克竞赛水平。CSP-J2是入门级,适合初级选手;CSP-S2是提高级,针对有一定基础的参赛者。...CSP-X真题及模拟题青少年趣味编程 1418CSP-X真题及模拟题CSP-J1 CSP-S1 第1轮 初赛模拟题及书籍青少年趣味编程 4095CSP-J1 CSP-S1 第1轮 初赛模拟题及书籍CSP-J1 CSP-S1 第1轮 初赛 学习资料集、初赛相关的书籍等青少年趣味编程 3000CSP-J1 CSP-S1 第1轮 初赛 学习资料集、初赛相关的书籍等CSP-J CSP-S 初赛模拟题热门推荐青少年趣味编程 1万+2019 CSP-J/S第一轮各省分数线统计与分析(含浙江省) 家长帮 CSP-J/S2019第二轮入门级一等各省评级分数线 CSP-J/S2019第二轮入门级一等各省评级分数线_自主选拔在线 CSP-J/S2019第二轮提高级一等各省评级分数线 CSP-J/S2019第二轮提高级一等各省评级分数线_自主选拔在线 第二十六届全国青少年信息学奥林匹克联赛初赛模拟试题 滑动验证页面 2019CFS-S/J第一轮测试(真题模拟)(初赛一、基础、20题) 滑动验证页面 NOICSP-J CSP-S 初赛相关的书籍青少年趣味编程 68843、2022版 信息学奥赛一本通初赛篇C++版 2020年CSP-S C++提高组 第一轮试题分析讲解(NOIP提高组初赛)【共9课时】_C/C++课程-51CTO学堂蒟蒻的CSP-J2019游记 - 知乎2020CSP-J组初赛游记 - 哔哩哔哩2020CSP&NOIp游记 - litluo - 博客园CSP-J/S游记_fxt275307894a的博客-CSDN博客CSP-J/S游记_fengqiyuka的博客-CSDN博客CSP-S2019初赛游记 - jz_597 - 博客园CSP2019-Scsp-x 山东信息学奥赛真题讲解独木桥(bridge)dfgdrff的博客 867大家好我是“鲲鹏展翅高飞”的杜某某,今天我们来看一下csp-x小学组的真题。其实这道题很简单,但是有很多人是用了复杂办法。但是这些方法都用了max和min函数。CSP-X 2021 第一题(疯狂的数列) 答案midautumnday的博客 3681答案1(可能运行超时,但是比较保守): #include<cstdio> #include<iostream> #include<cstring> using namespace std; int main(){ freopen("crazy.in","r",stdin); freopen("crazy.out","w",stdout); long int n,cnt = 0,tmp = 0,f = 0; cin >> n; s2021CSP-X 第一题 疯狂的数列(本人记住的)midautumnday的博客 3526【题目描述】有一个怪物,对轩轩说:“有一个数列,依次是1,12,123,1234,12345,123456,1234567,12345678,123456789,12345678910,12345678911……现在我要让你求在这个数列的前n项,有多少像能被3整除,要是做不对,我就吃掉你!”多亏轩轩数学非常好,才脱离了危险。 【输入】 一行,一个正整数n,表示这个数列的前n项。 【输出】 一行,表示这个数列的前n项有多少项能被3整除。 【输入样例一】 ...关于CSP-J/SyykYYK2010的博客 924那么想要参加CSP-S/J比赛,就得好好准备了,初中阶段的学生可以参加CSP-J和CSP-S,如果在小学阶段就取得CSP-J的获奖证书,初一时可以尽早准备参加CSP-S的比赛,争取在初二时就拿到CSP-S的获奖证书,这样在初三面临中考时,才能全身心地投入到备考学习上,也不耽误高中参加NOIP比赛。答:CSP-J/S是由CCF主办的计算机非专业级别的软件能力认证。当然,如果从初中开始参加CSP-J的比赛也不算晚,初中生的学习能力和效率要比小学生强一些,在备赛过程中所花的时间和精力会相对少一些,通过率也高。2022 CSP-J1 CSP-S1 初赛 资料集(2022.07.08).pdf07-08本资源是关于 2022 年 CSP-J1 CSP-S1 初赛的资料集,包含了报名通知、成绩及分数线汇总、相关书籍、培训计划、学习要点、复习方法、知识汇总、模拟题、答案解析、视频等内容。本资源主要面向青少年趣味编程和 C++ ...NOIP CSP-J CSP-S 初赛 第1轮 学习资料集(J)-2023.08.22.pdf08-22【CSP-J CSP-S 初赛】是中国计算机学会(CCF)组织的“全国青少年信息学奥林匹克联赛”(NOIP)的一部分,旨在检验初中生和高中生的信息技术能力,特别是编程和算法解决能力。赛事分为两个级别,CSP-J(入门级,...NOIP CSP-J CSP-S 初赛 第1轮 学习资料集(S)-2023.09.21-1000页.pdf09-21【CSP-J CSP-S 初赛】是中国计算机学会(CCF)组织的“全国青少年信息学奥林匹克联赛”的一部分,旨在选拔具有优秀计算机编程能力和逻辑思维的青少年。NOIP分为两个级别,CSP-J(入门级)针对初中生,CSP-S(提高级...2019-2021 CSP-J CSP-S 第一轮成绩及分数线汇总.pdf05-17CSP-J和CSP-S认证考试科目详解 CSP-J和CSP-S认证考试是中国计算机学会(CCF)举办的计算机等级考试,旨在考察考生的计算机基础知识和编程能力。下面是对CSP-J和CSP-S认证考试科目的详细解释: 一、CSP-J认证考试...【C++算法】9.双指针_四数之和最新发布hlyd520的博客 297后面的步骤类似,就不多赘述了。解法一:排序+暴力枚举+利用。双指针遇到合适的数继续往后走。解法二:排序+双指针。不满足循环条件,跳出。<使用生成式AI对四种冒泡排序实现形式分析解释的探讨整理>m0_57859086的博客 1112/冒泡排序实现1——不常用(这个版本两层for循环分别是i++、j++)// 声明三个整型变量i、j和temp用于循环控制和交换元素for (i = 0;i < n - 1;i++) { // 外层循环,从数组的第一个元素开始遍历到倒数第二个元素j < n;j++) { // 内层循环,从当前外层循环位置的下一个元素开始遍历到最后一个元素if (A[i] > A[j]) { // 如果当前元素大于下一个元素// 将当前元素存储到临时变量temp中// 将下一个元素赋值给当前元素。排序算法之归并排序qq_64039411的博客 481需要注意的是,在实际应用中,归并排序的空间复杂度较高,需要额外的空间来存储临时数组。如果对空间复杂度有要求,可以考虑使用其他排序算法。归并排序是一种分治算法,它将一个数组分成两个子数组,然后递归地对子数组进行排序,最后将两个有序的子数组合并成一个有序的数组。归并排序的时间复杂度是O(nlogn),其中n是数组的长度。它是一种稳定的排序算法,适用于各种数据类型的排序。合并排序的关键在于合并操作。DAY17||654.最大二叉树 |617.合并二叉树 |700.二叉搜索树中的搜索 |2301_79865280的博客 1299给定一个不含重复元素的整数数组。通过给定的数组构建最大二叉树,并且输出这个树的根节点。示例 :构造二叉树一定要,因为要先找到中,才能分割左右子树。本题图解思路:本题做过上一题构建数组确实变得容易很多。代码优化方向有,不用每次找左右子树的时候构建新的数组的话效率就会高很多。(即直接用下标索引直接在原数组上操作)关于加不加if的问题,如果允许空节点进入递归,就不加。关于我们招贤纳士商务合作寻求报道400-660-0108kefu@csdn.net在线客服工作时间 8:30-22:00公安备案号11010502030143京ICP备19004658号京网文〔2020〕1039-165号经营性网站备案信息北京互联网违法和不良信息举报中心家长监护网络110报警服务中国互联网举报中心Chrome商店下载账号管理规范版权与免责声明版权申诉出版物许可证营业执照©1999-2024北京创新乐知网络技术有限公司DZ19476码龄4天 暂无认证9原创-周排名-总排名2270访问等级153积分41粉丝63获赞0评论40收藏私信已关注热门文章D3深搜以后 树的节点输出2是第2课 673CSP-X 侯锦呈 552coduck 2024 复赛集训模拟二 补题报告 侯锦呈 328完美的数组 249鸢尾花数 强化练习二 32最新评论D3深搜以后 树的节点输出2是第2课CSDN-Ada助手: 不知道 算法 技能树是否可以帮到你:https://edu.csdn.net/skill/algorithm?utm_source=AI_act_algorithm总价上千美金💲云服务免费用,搭建个人网盘/构建应用程序/文本洞察分析/打造 AI 角色广告最新文章coduck 2024 复赛集训模拟二 补题报告 侯锦呈小可历险记鸢尾花数 强化练习二2024年9篇举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值