“科林明伦杯”哈尔滨理工大学第十届程序设计竞赛Part1(BCEFHJ)

“科林明伦杯”哈尔滨理工大学第十届程序设计竞赛Part1(BCEFHJ)

太菜了先写写签到题,按做题顺序的

C.面积(签到题)

题意:

求正方形周围接四个半圆的图形的面积。

思路:

推一下公式就可以了。假设正方形边长是x,π为PI。则
化简就是
注意PI=3.14。

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43862364

H.直线(公式+大数)

题意:

n条直线在平面上最多存在多少交点 。

思路:

公式是
其实也很好理解,两条非平行直线有且只有一个交点,其中一条直线与其他直线都有n-1个交点,那么n条直线之间的交点就是n *(n-1).这样的话,每个交点都计算了两次,所以答案要再/2.

因为n的范围是1e15,所有要用大数,也可以用python,JAVA……

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43863149

E.赛马(贪心)

题意:

每匹马都有一个战力值,战力值大的获胜,问小明最多可以赢多少场。

思路:

证明有点麻烦但是不是很难想的贪心思路。

网上有一篇证明很详细的博客,可以参考一下

先说思路:我们肯定是想尽可能的赢得比赛,所以对于对方的战力值小的马,都要尽可能的战胜,不然后面的战力值大的马取胜更加困难。

所以可以设两个指针i,j,分别表示用自己的第i匹马和对方的第j匹马比赛,如果当前这场比赛可以赢的话,就i++,j++,res++;否则,就用自己战斗力更大的马来比,即i++;

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43867206

B.减成1(差分)

题意:

存在n个数,每次操作可以任选一个区间使得区间内的所有数字减一。问最少多少次操作,可以让所有数都变成1。

思路:

做过加强版弱化版的。

用每一个都跟前一个比较,如果后者比前者大的话,就计算进答案。

因为要求最后都变为1,所以可以在输入时就全部-1,这样按照题目的要求就相当于是都变为0.
代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43873512

J.最大值(二分)

题意:

有一个字符串s,对于字符串中一个非前缀子串恰好为字符串的前缀我们称之为ac串。
请问给出一个字符串他的ac串最大长度为多少

思路:

二分最大长度,对于每一个长度,看非前缀的子串里是否有与前缀相等的字符串,如果有,说明该长度符合题意,接下来可以试试更长的;反之,接下来就只能试更短的。

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43875020

F.三角形(思维+斐波那契)

题意:

把一个数分为若干个数,使得从中任意取三个都不能构成三角形,求最多可以分成多少个数。

思路:

按照斐波那契数列来分一定是最优的,斐波那契的前几项为1,1,2,3,5

比如5的话,就可以分为1,1,3。

题意就转化为了找斐波那契的前res项,使得这些项的和<=a;

要注意求和的过程会爆ll,要用ull.

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43880755

全部评论

相关推荐

2025-12-08 07:42
门头沟学院 Java
27届末九,由于是女生,身边人几乎没有就业导向的,自学只能跟着网课,没人指导,很迷茫。下图是我目前的简历,不知道有需要修改的地方吗?求拷打。下面是目前的学习情况:目前算法过完了一遍力扣100和代码随想录,不过不是很熟,面经看了小林coding、JavaGuide,有一些没用过的技术看得不是很明白,掌握得不是很扎实。再加上常年跟黑马网课听思路,真正自己动手写代码的时间很少,这让我一直不敢投简历,总觉得内里空虚。项目没准备好面试相关的问题,简历上相应的考点不熟。如此种种。。。看到很多很多学长学姐大佬们的面经,愈发觉得面试可怕,自己没准备好,总担心自己是不是无望后端开发了。看到牛客很多同届以及更小一届的同学都找到实习了,很希望自己也能找到实习。而自己又好像摸不到后端学习的门路,只能不断赞叹黑马虎哥写的代码真优雅!微服务架构实在巧妙!消息队列、redis、sentinel、nacos、mybatisplus等等的引入都会让我赞叹这些工具的设计者的巧思,以及包括但不限于Java语言的优雅。然而只是停留在了解的程度,并不熟练。我是很希望能够继续深入探索这些知识的,只不过有一大部分时间都花在学校课程上了。我感觉我被困住了,我一方面必须保证我能够有个不错的学业分使我能有我几乎不想选择的读研退路(还有个原因是复习不全我会焦虑考试挂科,因此我会做好全面的准备,而这一步很费时间),一方面在B站学习各种网课,一方面得考虑提升自己并不扎实的算法基础,另一方面还得准备八股面经。这让我有点苦恼,我好像没那么多时间,因为绝大部分时间都花在了复习学校科目中了。我好像处处用时间,但收效甚微。想问问各位大佬是怎么平衡时间的呢?算法、项目和八股是怎么准备的呢?有什么高效的方法吗?谢谢您们花时间阅读我的稿件!
菜菜狗🐶:大胆投,我当时也是害怕面试,投多了发现根本约不到面🤡
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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