上一页 1 ··· 75 76 77 78 79 80 81 82 83 ··· 182 下一页
摘要: 题意:给出n,k,求k%1 + k%2 + …… + k%n;分析:当k/i = 1 时, k%i = k - i,随着i不断减小1,k-i每次减小1,即k%i每次减小1。当k/i=2时,i减小1,k%i减小2。我们要求k%i的和,可以划分为许多等差数列的和。View Code #include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>using namespace std;long long n, k;int main(){ //freopen("t 阅读全文
posted @ 2011-09-13 16:01 undefined2024 阅读(263) 评论(0) 推荐(0)
摘要: 题意:给出m,k,求第k小的与m互质的数。分析:根据gcd的求法,我们可知,求最大公约数的第一步是用大数对小数取余。gcd(a,b)==gcd(a%b,b),进一步推出gcd(a,b)==gcd(a+b, b)。也就是说,当求出了1~m间与m互质的数之后,把这些数加上m就可以得到m~2m间的与m互质的数。而且m~2m间不会有某个与m互质的数被漏掉。因为如果m<=a<=2m,且gcd(a, m)==1,那么gcd(a - m, m)必然等于1。也就是必然有个在1~m间的数a-m,可以通过加m的方式得到a。所以与m互质的数是有周期性的。我们只需要求出第一个周期即可。View Code 阅读全文
posted @ 2011-09-13 10:05 undefined2024 阅读(574) 评论(0) 推荐(0)
摘要: 简单dpView Code #include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>using namespace std;#define maxn 50char map[maxn][maxn];long long f[maxn][maxn];int n;void input(){ for (int i = 0; i < n; i++) scanf("%s", map[i]);}void work(){ memset(f, 0, si 阅读全文
posted @ 2011-09-13 09:21 undefined2024 阅读(126) 评论(0) 推荐(0)
摘要: 递推+高精度java做View Code import java.util.*;import java.math.*;import java.io.*;public class Main { public static void main(String[] args) { Scanner cin = new Scanner(new BufferedInputStream(System.in)); BigInteger f[] = new BigInteger[1005]; f[0] = new BigInteger("0"); ... 阅读全文
posted @ 2011-09-13 08:28 undefined2024 阅读(176) 评论(0) 推荐(0)
摘要: 暴力题注意vector用法,erase函数返回的是删除后的下一个元素的指针。迭代器的写法是:vector< >::iterator i;View Code #include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>#include <vector>using namespace std;#define maxn 100005#define eps 1e-10struct Point{ double x, y;};struct Line{ 阅读全文
posted @ 2011-09-09 10:21 undefined2024 阅读(540) 评论(0) 推荐(0)
上一页 1 ··· 75 76 77 78 79 80 81 82 83 ··· 182 下一页