1001 hdu 4320 http://acm.hdu.edu.cn/showproblem.php?pid=4320
题意:
V写下一个A进制的任意有限小数,如果S能将其翻译成B进制的有限小数,则S赢,输出Yes 否则V赢输出No;
思路:
只要A的所有质因子都包含在B中,S就能赢(证明没看懂!!求指教)
这里注意:
(N表示A,B的极限值)
1:一个数i的质因子,至多只会存在一个大于sqrt(i)的。所以这里我们只要枚举出小于sqrt(N)的所有质数即可,然后用所有小于sqrt(j)的质数来查找j的质因子,同时j也要做相应的除法把枚举道德质因子除去,当枚举完所有小于sqrt(j)质数时,j如果>1说明存在大于sqrt(j)的质因子,这时的质因子也就是j本身看了,所以要检查一下B是否还包含这个质因子,因为当存在大于sqrt(N)的质数时,我们没有枚举出来,所以必须在后边要算。
View Code
还有一个解法:首先明确每一个大于1的整数都能分解成质因数乘积的形式,还要要知道两个数的最大公约数就是这两个数的公共质因子的乘积,所以我们只要不断取他们的公共质因子的乘积,直到a只剩下1时,说明a的所有质因子都包含在b中,就是不断地取a,b的最大公约数,然后a再除去最大公约数。
1004:hdu 4232 http://acm.hdu.edu.cn/showproblem.php?pid=4323
给出n个数字字符串,然后给出m个询问,每个询问包括一个数字字符串和一个最大值,要求在n个字符串里寻找与查询字符串的字符串编辑距离小于最大值的字符串个数。
直接利用dp求查询字符串与n个字符串的编辑距离,求解即可。
1005: hdu 4324 http://acm.hdu.edu.cn/showproblem.php?pid=4324
给定n个人的爱情图,如果a爱b那么b一定不爱a,而且题目保证任意两点都存在一条边(there is love between any of two people, if A don’t love B, then B must love A)
关系矩阵map[i][j] = 1表示i爱j,那么j一定不爱i,让你找出是否存在三角恋,即:A loves B, B loves C and C loves A.
按照官方解题报告的第二种方法做的,不是好理解;当第i个点加入时,(0 --- i - 1)里面肯定有i喜欢的将他们分到左边,那剩下的就是i不喜欢的了,也即喜欢i的了,(这里保证每条边i都会和其他n-1条变有关系,要么喜欢要么不喜欢),对于每次枚举i,我们在(0~i-1)的范围看下有多少个i指向的点(剩下的就是指向i的点),同时算下i指向的点的出度和。就可以知道这些 i指向的点 指向 指向i的点(剩下的点)的数目,如果 num * (num - 1) / 2 < sumout 那么就是被指向的点有指出去了,这样就形成了3元环。 否则,剩下的就是更新下出度即可,继续执行下一个节点。
1006 hdu 4325 http://acm.hdu.edu.cn/showproblem.php?pid=4325
给出每朵花的开花时间段[si,ti],存在又在同一时间段开花的,询问每个时间点pi几朵花在开放;
本来一道很简单的线段数的成端更新+单点询问+离散化的题目,可是我在离散化的时候只离散化了输入的时间段的端点,在询问时就出了问题,跳了很长时间很是不对,后来把所有的点都离散化后建树,做操作就简单的跟屎似的了,没有构思好就看似是敲代码。不行啊。。