摘要:
【B.Prime Matrix】 http://www.codeforces.com/contest/271/problem/B 题目大意:n×m的格子,每次操作可以将一个格子中的数字加1,问最少操作次数使得存在一行或一列全为质数。 预处理出每个格子需要多少次操作成为质数,然后求最小行、列和即可。素数筛表即可,注意多筛一些。 一开始没打素数表,直接+1 +1的判断,导致超时...然后就有了上一篇文章... 1 #include <iostream> 2 #include <cmath> 3 #define min(a,b) (((a)<(b))? (a) 阅读全文
摘要:
最简单的筛素数法方法就是从2开始,将所以2的倍数去掉,然后从3开始,将3的倍数去掉.... 同样任何一个数与其它所有素数的乘积必然也不是素数(这是因为每个合数必有一个最小素因子)。 为了试验这种想法,先用2到10之间的数来验证下。 2,3,4,5,6,7,8,9,10 初始时所以flag都是无标记的。第一步 访问2,flag[2]无标记所以将2加入素数表中,然后将2与素数表中的所有数相乘得到的数必定不是素数,2*2=4因此标记flag[4]。 2,3,4,5,6,7,8,9,10第二步 访问3,flag[3]无标记所以将3加入素数表中,将3与素数表中的所有数相乘得到的数必定不是素数,3... 阅读全文