poj2739(尺取模型)-程序员宅基地

技术标签: 尺取模型  =====杂题模型=====  

/*
translation:
	给出一个数,求有多少种用连续的素数之和来表示该数的方法。
solution:
	尺取法。
	预处理筛出数据范围内的所有素数,然后将其存进数组里面,在这个数组的基础上使用尺取即可。
note:
date:
	2016.11.13
*/
#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;
const int maxn = 10000 + 5;

int prime[maxn], p;
bool is_prime[maxn];
int n;

void init()
{
	int p = 0;
	for(int i = 0; i < maxn; i++)	is_prime[i] = true;
	is_prime[0] = is_prime[1] = false;
	for(int i = 2; i < maxn; i++){
		if(is_prime[i]){
			prime[p++] = i;
			for(int j = i*2; j < maxn; j += i)	is_prime[j] = false;
		}
	}
}

int main()
{
	//freopen("in.txt", "r", stdin);
    init();
    while(~scanf("%d", &n) && n){
		int sum = 0, l = 0, r = 0;
		int len = 0;
		while(prime[len] <= n)	len++;

		int ans = 0;
		while(l <= len && r <= len){
			if(sum < n)	sum += prime[r++];
			else if(sum > n)	sum -= prime[l++];
			else{
				ans++;
				sum += prime[r++];
			}
			if(r == l)	r++;
		}

		printf("%d\n", ans);
    }
    return 0;
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_29169749/article/details/53152941

智能推荐

什么是机器学习?(上)-程序员宅基地

什么是机器学习?在搜索框内输入“机器学习”,检索出了这样的解释:“机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度等多门学科。机器学习专门研究计算机怎么模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能”。机器真的可以像人一样学习吗?1959年,美国的Samuel设计了一款下棋程序,这个程序具有学习能力,可以在对弈中不断改善...

疫情席卷全球,Fraternity慈善在行动_fraternity公益团队-程序员宅基地

随着冠状病毒(COVID-19)大流行在全球蔓延,它引起了广泛的关注,恐惧和压力,所有这些都是对每个人都陷入困境的不断变化和不确定状况的自然和正常反应。对于我们所有人来说,这确实是前所未有的时期,尤其是对于面临巨大生命破坏的儿童而言。儿童可能会感到担心,焦虑和恐惧,其中可能包括与成年人经历的恐惧非常相似的恐惧,例如对死亡的恐惧,对亲属死亡的恐惧或对恐惧的恐惧。12月,Fraternity正式进入亚洲市场,开启亚洲慈善行动。自从2013年至2020年,“幸运草”公益已走过了7个年头,募集超过61000本_fraternity公益团队

vc操作wshshell对象-程序员宅基地

以前在vb和vbs下wscript.shell这个玩意是很有用的,到了vc下这玩意几乎绝迹了,不过我不甘心,决定要将它重新挖掘出来。#include #import "wshom.ocx" rename("FreeSpace","LFreeSpace")#include #include using namespace IWshRuntimeLibrary;

C#中用session实现的用户登录代码与退出登录代码_c#退出登录-程序员宅基地

点击登录按钮Button时protected void denglu_Click(object sender, EventArgs e) { SqlConnection cn = conn.CreateConnection(); SqlCommand com = new SqlCommand(); com.Connection =_c#退出登录

如何解决TypeError: this.getOptions is not a function at Object.loader及webpack对应loader版本问题_锦鲤儿的博客-程序员宅基地

前言:在使用webpack时总是出现类似TypeError: this.getOptions is not a function at Object.loader的错误,查找相关资料,是说webpack和要安装的loader版本不匹配的问题,但是都没有说如何找到webpack对应的loader版本。如何找到webpack对应的loader版本?1、进入gitHubhttps://github.com/webpack/webpack/2、在Tags中选择不同的版本...

SpringMVC中的异步请求-跨域访问_html发送异步请求给springmvc-程序员宅基地

SpringMVC中异步请求与响应、跨域访问环境搭建与使用@CrossOrigin注解开启跨域访问支持_html发送异步请求给springmvc

随便推点

Flume-ng禁用自动加载配置文件功能-程序员宅基地

默认情况下,Flume中的PollingPropertiesFileConfigurationProvider会每隔30秒去重新加载Flume agent的配置文件,如果监听到配置文件变化了,Flume会试图重新加载变化的配置文件。判断配置文件是否变化主要是基于文件的最后修改时间来的,代码片段如下://////////////////////////////////////////////

使用mybatis的ScriptRunner执行sql文件-程序员宅基地

最近有需要通过java执行sql文件(进行数据库、表的创建),使用的mybatis的ScriptRunner工具类,现在记录下。 pom.xml主要jar org.mybatis mybatis 3.3.0 mysql mysql-connector-java 5.1.36

Python 读取 PGM 格式图片,RGB 转 PGM_rgb图像如何转换为pgm文件-程序员宅基地

首先了解一下PGM格式:.pgm图片简介以及Python读取.pgm图片的方法Python pgm解析和格式转换PGM格式图像详解【图像格式】 PPM/PGM/PBM格式编码详解Python 读取 PGM 格式图片from PIL import Imageimport numpy as npimport matplotlib.pyplot as pltdef read_i..._rgb图像如何转换为pgm文件

习题8-1 拆分实数的整数与小数部分_2、从键盘接收一一个实数,分离出整数和小数部分,显示如下:如16-1+0.65-程序员宅基地

本题要求实现一个拆分实数的整数与小数部分的简单函数。函数接口定义:void splitfloat( float x, int *intpart, float *fracpart );其中x是被拆分的实数(0≤x<10000),intpart和fracpart分别是将实数x拆分出来的整数部分与小数部分。裁判测试程序样例:#include <stdio.h>void splitfloat( float x, int *intpart, float *fracpart );in_2、从键盘接收一一个实数,分离出整数和小数部分,显示如下:如16-1+0.65

10行Python代码实现,电脑自动清理电脑内重复文件_python 删除电脑相同重复文件-程序员宅基地

点击了解更多给定一个文件夹,使用Python检查给定文件夹下有无文件重复,若存在重复则删除。主要涉及的知识点有:os 模块综合应用glob 模块综合应用利用 filecmp 模块比较两个文件步骤分析该程序实现的逻辑可以具化为:遍历获取给定文件夹下的所有文件,然后通过嵌套循环两两比较文件是否相同,如果相同则删除后者。实现问题的关键就变成了????如何判断两个文件是否相同?在这里我们可以使用 filecmp 模块,来看看官方的介绍文档:filecmp.cmp(f1, f2, sha_python 删除电脑相同重复文件