求各位大佬赞一下,顶一下
求精华帖+置顶
前言————————————————————————————————————————————————————————
这是我Molly第1145140114514^01145140次写题解。。。
正文—————————————————————————————————————————————————————————
难度:红红红红红黄
T1:50!
本题超级无敌简单, 只考输出
Python:因为这里是考多行输出,所以使用:Python:因为这里是考多行输出,所以使用:Python:因为这里是考多行输出,所以使用:
code:code:code:
(我认为PythonPythonPython 更简单,于是我就只呈现PythonPythonPython 代码)
T2:农场修缮
本题是数学题,因为题目说要求得剩余面积最大值 =>=>=> 竖直道路宽度要最小 =>=>=> 求数组最小值
伪代码:(求数组最小值)
要求得剩余面积,使用公式 :S剩=S总−S路=n×m−(S竖+S横−S重)=n×m−(min×n+a×m−a×min)S_剩=S_总-S_路=n×m-(S_竖+S_横-S_重)=n×m-(min×n+a×m-a×min)S剩 =S总 −S路 =n×m−(S竖 +S横 −S重 )=n×m−(min×n+a×m−a×min)
code:code:code:
T3:赛马大会
本题就是考分支结构,分别进行比较——输了sum−3sum-3sum−3,赢了sum+3sum+3sum+3,平局sumsumsum不变
(此题无需多说)
code:code:code:
T4:小明和藏宝库
此题可以使用stlstlstl容器来做——
①:输入个整数n和m,n表示集合数量,m表示每个集合的元素个数
②:初始化第一个集合st,读取m个元素并存入set中(set会自动去重和排序)
③:对于后续n-1个集合,每个集合都先存入临时set cut中
④:通过遍历当前交集集合st,检查元素是否存在于cut中(使用count()方法),将共同元素存入new_st
⑤:用new_st更新st作为新的交集集合
⑥:如果中途发现交集集合为空(st.empty()),提前终止循环
⑦:最终输出交集集合的大小st.size()
code:code:code:
T5:指针夹角
①:读取两个整数a(小时)和b(分钟)
②:计算分角度:
(每分钟分针走6度)
③:计算时针角度:
(每小时时针走30度,每分钟走0.5度)
④:计算角度差绝对值:
⑤:取最小角度:
(因为时钟是圆形,超过180度时取反向角度)
⑥:输出:
(保留两位小数输出结果)
code:code:code:
T6:小明的ACM罚时
①:输入处理:
1o1^o1o:首先读取参赛人数n
2o2^o2o:为每个参赛者初始化id、解题数(solved)和罚时(penalty)数组
②:解题记录处理:
1o1^o1o:对每个参赛者,读取其解题记录数m
2o2^o2o:使用first_ac数组记录每道题首次AC的时间
3o3^o3o:使用wrong_count数组记录每道题在首次AC前的错误提交次数
③:计算得分:
1o1^o1o:遍历13道题目(b从1到13)
2o2^o2o:如果某题有AC记录(first_ac[b] != -1),则:
3o3^o3o:解题数solved[i]加1
4o4^o4o:罚时penalty[i]增加AC时间first_ac[b]和错误提交次数*15
④:排序逻辑:
· 使用自定义排序规则:
1o1^o1o:优先按解题数降序
2o2^o2o:解题数相同则按罚时升序
3o3^o3o:都相同则按id升序
⑤:输出结果:
按照排序后的顺序输出参赛者id,用空格分隔
code:code:code:
谢谢观看以后尽量继续写
别忘了点赞+关注哦