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为未知数。

只要上式存在整数解,则两青蛙能相遇,否则不能。

那个方程就是扩展欧几里得的标准方程了,然后百度拓展欧几里得即可得

posted @ 2012-12-22 20:24  Felix_F  阅读(150)  评论(0)    收藏  举报