zoukankan      html  css  js  c++  java
  • 紫书 习题 10-6 UVa 1210(前缀和)

    素数筛然后前缀和

    看代码

    #include<cstdio>
    #include<vector>
    #include<cstring>
    #include<map>
    #define REP(i, a, b) for(int i = (a); i < (b); i++)
    using namespace std;
    
    const int MAXN = 11234;
    bool is_prime[MAXN];
    vector<int> prime;
    int a[MAXN];
    map<int, int> f;
    
    void init()
    {
    	memset(is_prime, true, sizeof(is_prime));
    	is_prime[0] = is_prime[1] = false;
    	REP(i, 2, MAXN)
    	{
    		if(is_prime[i]) prime.push_back(i);
    		REP(j, 0, prime.size())
    		{
    			if(i * prime[j] >= MAXN) break;
    			is_prime[i * prime[j]] = false;
    			if(i % prime[j] == 0) break;
    		}
    	}
    }
    
    int main()
    {
    	init();
    	
    	a[0] = prime[0];
    	REP(i, 1, prime.size())
    		a[i] = a[i-1] + prime[i];
    	
    	REP(i, 0, prime.size())
    		REP(j, i, prime.size())
    		{
    			if(i == 0) f[a[j]]++;
    			else f[a[j] - a[i-1]]++;
    		}
    		
    	int n;
    	while(~scanf("%d", &n) && n)
    		printf("%d
    ", f[n]);
    		
    	return 0;
    }
  • 相关阅读:
    VBA.replace替换单引号或双引号
    读取文件
    UPDATE
    alter update
    SQL日期格式
    python map的用法
    python os模块用法
    python re.I compile search
    python 正则匹配
    通过list中值得名称查询索引号
  • 原文地址:https://www.cnblogs.com/sugewud/p/9819485.html
Copyright © 2011-2022 走看看