CSDN第28期编程竞赛活动经验

好久没参加了,这次比较幸运吧,题目比较简单,还有的是原题,这里简单分析下

第一题:小Q的鲜榨柠檬汁

团建活动是大家所想要的。小Q给大家准备了鲜橙汁。现在有n个朋友买回了k瓶饮料,每瓶有l毫升的饮料,同时还买回了c个柠檬,每个柠檬可以切成d片,p克盐。已知每个朋友需要nl毫升的饮料,一片柠檬,以及np克盐。小Q想知道每个朋友最少可以喝多少杯饮料。
输入描述:输入整数n,k,l,c,d,p,nl,np。所有数据小于1000的正整数。
输出描述:所有朋友中最少喝多少杯。

看着数据很多,其实很简单,从三个维度判断取最小值
饮料可以分多少杯
柠檬有多少片
盐可以分多少份
一杯饮料由一片柠檬和一份盐共同组成,所以最少的决定份数
除以小朋友个数就得到最后结果了

第二题:三而竭

一鼓作气再而衰三而竭。小艺总是喜欢把任务分开做。小艺接到一个任务,任务的总任务量是n。第一天小艺能完成x份任务。第二天能完成x/k。。。。第t天能完成x/(k^(t-1))。小艺想知道自己第一天至少完成多少才能完成最后的任务。
输入描述:第一行输入整数n,k。(1<=n<=1e9,2<=k<=10)
输出描述:输出x的最小值。

老题目,思路很简单,用暴力破解的方式,从1开始判断符不符合条件。
当然数据量大时,就会超时,暴力破解会了理解了,改用二分法就行了。
这里理解上有个注意点,x+x/k…可以大于n,x/k是向下去整。
验证x满不满足条件方式
先求出x+x/k…x/(k^(t-1)),
当x/(k^(t-1))=0时计算结束,如果当前和大于等于N,就说明当前X是满足条件的。
结合二分法快速得到最小值

第三题:隧道逃生

小海豚喜欢打游戏,现在它在操纵游戏人物小C逃脱废弃的隧道,逃生装置在小C的前方 X 米远的位置。但是游戏机只有两个按钮:前进和后退,按前进,小C会前进 m 米,按后退,小C会后退 n 米。小海豚必须设法把小C送到逃生装置上,方能逃离隧道,请你帮帮小海豚,告诉它至少要操作多少次,才能通关。
输入描述:输入三个正整数X、m和n
输出描述:输出一个整数,表示小海豚通关需要操作的次数

暴力破解,目标X写成 -X,
变成负数后,令这个值变成0就行
如目标是5米,设当前位置为-5,执行下面逻辑
当前位置<0 前进
当前位置>0 后退
当前位置=0 结束,得到操作次数

第四题:收件邮箱

已知字符串str,str表示邮箱的不标准格式。其中”.”会被记录成”dot”,”@”记录成”at”。写一个程序将str转化成可用的邮箱格式。(可用格式中字符串中除了开头结尾所有”dot”,都会被转换,”at”只会被转化一次,开头结尾的不转化)
输入描述:输入字符串str.(1<=strlen(str)<=1000)
输出描述:输出转化后的格式。

老题目了,以前写过见
https://blog.csdn.net/bener2008zj/article/details/127017413
比较入门的字符串处理,直接从数组下标1开始遍历

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值