摘要:
题意:给定一个序列,a1, a2, a3 ..., an 还有一个序列是 b1, b2, b3 .. bm,问你有多个 q,使得 aq, aq+p, aq+2p, ... aq+(m-1)p。 析:很容易看出来,就是每隔 p算一个序列有多少个匹配。KMP 裸版。 代码如下: 阅读全文
摘要:
题意:给你 n 和 m,求一个1-n的排列,使得∑gcd(Ai,Ai+1) 恰为第 m 小. 析:可以想到最小的就是相邻都互质,然后依次,第 m 小就可以有一个是gcd为 k,然后其他的为1喽。 那么我们就可以想到把 m 和2*m 拿出来,然后让其他的都相邻,那么就一定是gcd为1. 代码如下: 阅读全文
摘要:
题意:给你一个长度为 n 的木棒,求至少拿掉几根使得剩余的木棒构成不了三角形。 析:为了保证不形成三角形,所以保证两边之和等于最大边是最优,这不就是Fibnacci 数么,由于 n 很小,if-else 就好。 代码如下: 阅读全文
摘要:
题意:给定一个分式,让你化简。 析:从分母开始模拟分数的算法,最后约分。 代码如下: 阅读全文
摘要:
题意:给定 n 个数,然后每次破坏一个位置的数,那么剩下的连通块的和最大是多少。 析:用并查集来做,从后往前推,一开始什么也没有,如果破坏一个,那么我们就加上一个,然后判断它左右两侧是不是存在,如果存在,那么就合并起来, 然后不断最大值,因为这个最大值肯定是不递减,所以我们一直更新就好。 代码如下: 阅读全文
摘要:
题意:统计元音,这里多加一个元音,y。 析:直接统计就好了。 代码如下: 阅读全文
摘要:
题意:给定一个时间,然后改最少的数字,使得它成为12进制或者24进制。 析:24进制主要判是不是大于23,如果是把第一位变成0,12进制判是不是大于12,如果是再看第二位是不是0,是0,第一位变成1,不是第一位变成0, 如果等于0,第一位变成1,至于分钟,只要判是不是大于59,是把第一位变成0. 代 阅读全文