【题解】山东财经大学新生赛暨天梯赛选拔赛

A 骆驼拼写法

嘟噜噜,这个题目很简单啊
用getchar()一个一个的读入字符
第一个单词都小写后面的单词都首字母大写
空格过滤掉输出答案就可以啦

B 流浪地球

这个题目要看图片
图片里一个v速度的小星体绕一个u速度的星体速度变成了2u+v
题目中 一个超级大球向右运动 有n个小球向左运动 其中每个小球的质量都远小于其左边的球
问的是 需要进行图片中的加速多少次  会产生一个达到光速百分之一的小星体
答案就是 进行图片里那个式子的过程  记录一下加速了多少次就可以啦

C Retina

很简单的模拟题
主要注意好最后 山的一横 后面没有空格就好啦

D 流星雨

简单dp题
这个题目就是给我们好多段线段让我们求最长段
开一个一维dp 设dp[i]是末尾为i的连续段的最长长度
从前面往后面跑一遍  到i的时候  用从i开始的线段接到i的后面更新一下后面的dp值
因为我们走到i的时候 可以保证到达i的之前的线段都更新过 所以dp[i]就是那个i为末尾的最优值
再扫一遍dp[I]找到最大长度就可以了

E 旅行商问题

一个树  从根开始走过所有点的最短距离长度
有的边要走2次 有的边要走1次
走一次的边就是从根开始的一个简单路径
我们把所有的边权求个和再乘2  减去距离树根最远距离就可以出答案啦

F 简单排序

实际上就是求这个序列的最长上升子序列的长度。 简略证明:
假设最长上升子序列长度为 K’,则其中任意两辆个数不会进入同一个队列,因此 K≥K’。至 于 K=K’可由数学归纳法详细证明。
用二分法或树状数组(线段树)优化 DP,时间复杂度 O(NlogN)。

G 武林秘籍

dfs序的模板题,先差分,求点到根的路径和,再计算每个修改的贡献。对于单点修改可以转化为子树加,将链求和转化为在链的底端单点求和。
对于节点u的子树修改w,对u的子结点v的贡献为w*dep(v-u),可以转化为 w*dep v-w*dep u,其中后一项是不随查询节点的变化而改变的,
可以理解为w节点的权值不是增加了w而是增加了w*dep u,这样就可以存储在上一问的树状数组里。
同时新增一个树状数组存储w*dep v的w,在每次查询时计算w*depv,复杂度O(nlogn)




#题解#
全部评论

相关推荐

07-11 13:16
湖南工学院 Java
坚定的芭乐反对画饼_...:谁也不知道,毕竟现在的互联网和十年前已经完全不同了,谁都无法预测未来
点赞 评论 收藏
分享
湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
06-15 20:57
已编辑
门头沟学院 Java
CARLJOSEPH...:年轻人有傲气很正常,但是建议工作前洗净傲气。 说实在的,什么奖学金什么奖项的都很一般。尊重你的老师,在有时间的时候去上课,真遇到走不开的事,请态度端正地向你的老师说明情况,请求请假。我相信任何一个有师德的老师都会允许的(我的老师就是这样)。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务