手机版学校入驻客服中心网站导航

欢迎来到茂名童程童美少儿编程培训机构!

咨询热线

童程童美信息学奥赛周赛题解

来源:茂名童程童美少儿编程培训机构    时间:2024/4/12 17:14:04

  童程童美信息学奥赛周赛是面向C++和信奥赛学员的专题比赛,包含竞赛考点、知识点;学习-检验-复盘的周赛训练模式让选手坚持训练节奏、巩固所学知识,能更突破、提前找到比赛竞技的感觉。为坚持参加的选手们点赞!

  巩固知识:一周一赛开放式挑战

  学习交流:同阶段选手相互鼓励

  备赛训练:坚持训练答题的感觉

  水平自测:动态了解自我水平试题详解

  T1:9074 整除

  本题重点在于对于循环结构的基础语法格式的理解,首先从题面来看,循环范围可以确定下来为从 1 循环至 N,然后在循环过程中对循环到的每个数字进行判断,判断条件为 i%7==0,因为 i 是表示 1-N 中的每个数字,所以当判断条件成立时,输出 i 即可,同时需要注意一下输出格式,每个数字后需要输出一个空格。

  T2:9034 较终载重

  本题考察的是循环结构的应用-循环求和,通过阅读题目我们会发现,循环次数为 N 次,每次需要将每个站点的货物重量累加起来,需要注意求和时将变量的初始值赋值为 0。

  本题考察同学们的数学思维,首先在选择使用循环时,由于循环次数未知,但我们能够分析得到循环条件应该为:当目前的饮料瓶子小于 k 时结束兑换,所以这里我们可以选择使用 while 循环,循环条件为n>=k ;当可以继续兑换时将重复进行兑换的动作,在循环体中,我们需要计算能够喝到多少饮料,童童较开始是买了 n 瓶饮料,然后以 k 个空瓶子兑换 1 瓶新饮料的条件进行换取,所以当我们的循环能够成立时,说明 n 是大于等于 k 的,所以我们计算能够兑换的饮料数量为 n/k ;兑换之后剩余的瓶子数量为:n/k+n%k ;在循环中将每次兑换得到的饮料数累加起来即可。

  T4:爬楼梯的较小代价

  设 dp[i] 为爬到第阶累计付出的代价,由于第阶只可能从 i-1 阶或 i-2 阶走来,因此 dp[i] 只可 能等于 dp[i-1] +cost[i] 或者 dp[i-2] +cost[i] 为了尽可能减少代价,我们应该选择两者中较小 的那一个: dp[i]=min(dp[i-1],dp[i-2])+cost[i]

  #includeusing namespace std;int n;int dp[5001]; //dp[i]:站在i阶上的较小花费int cost[5001];//花费数组int main() { cin >> n; for(int i=1; i<=n; i++) cin>>cost[i]; //1.初始状态:较小子问题的解 dp[1] = cost[1]; dp[2] = cost[2];//直接站在2阶上明显代价更小 //2.状态转移:从较小子问题逐步求解较大子问题 for(int i=3; i<=n; i++){ // 选择较优的子问题并加上i阶的花费 【较优子结构】 dp[i] = min(dp[i-1], dp[i-2]) + cost[i]; //3.状态转移方程 } //4. cout << dp[n]; return 0;}

相关推荐
联系方式

选择专业时,如果犹豫不定,不知道选择哪个比较好,敬请致电,专业的咨询老师会为你解答。

  • 报名热线:400-6263-721
  • 咨询老师:吴老师
  • 点击咨询:

常见问题

没有想要的答案?马上提问

电脑版|手机版

版权所有: 郑州天华信息技术有限公司