HUT_CSUST 新生友谊赛题解CSUST版本
所有的题目百度都有,问问题前先百度,这是黄金定律
所有题都给个思路:具体代码都可百度
A:
把素数筛出来,先构造原矩形,就是一个一个往下推,然后构造被挖掉合数的矩形
遍历原矩形找到起点和终点,然后后构造的矩形中的素数就相当于障碍物,整个问题就化成一个迷宫问题了
用BFS一搜就能得出最短距离
B:
具体证明:
http://www.doc88.com/p-792551521271.html
直接代最后的海伦公式
C:
分成左右两块,左边两列数枚举,右边两列数哈希
构造哈希表O(n^2),枚举O(n^2)
根据左边枚举的情况找右边的hash值就行了,hash用链表
哈希不懂就百度,寒假一定要搞懂哈希
下半年也会开哈希专题
D:
水题比a+b还简单
E:
暴力枚举,一共就那么几个1,2,5,10,20,25,50,100,125,250,500,然后就是枚举后面四个红色的*10,一直到上限
F:
题目大意:
密文翻译,密文由小写字母构成,现给出a-z的对应密文字符。
现有一段密文和明文,但是被打断了,仅知道密文在前,明文在后,
让你输出最短的密文+明文序列。
解题思路:取原串后面半截,同原串译文匹配,记录下能匹配到的最大长度即为答案。
G:
贪心, 血少的攻击高的优先被干掉,所以就用dps/hp作为排序的元素 ,如果相等,血少的优先被干掉
H:
具体思路就是横坐标排序一遍,纵坐标排序一遍后预处理前缀和
I:
拓展欧几里得算法
设过s步后两青蛙相遇,则必满足以下等式:
(x+m*s)-(y+n*s)=k*l(k=0,1,2....)
稍微变形可得:
(n-m)*s+k*l=x-y
令n-m=a,l=b,x-y=c,即
a*s+b*k=c //关键
此处a,b,c为常数,s,k为未知数。
只要上式存在整数解,则两青蛙能相遇,否则不能。
那个方程就是扩展欧几里得的标准方程了,然后百度拓展欧几里得即可得

浙公网安备 33010602011771号