『NYIST』第八届河南省ACM竞赛训练赛[正式赛一]-CodeForces 237C,素数打表,二分查找
1 second
256 megabytes
standard input
standard output
You've decided to carry out a survey in the theory of prime numbers. Let us remind you that a prime number is a positive integer that has exactly two distinct positive integer divisors.
Consider positive integers a, a + 1, ..., b (a ≤ b).
You want to find the minimum integer l (1 ≤ l ≤ b - a + 1) such
that for any integer x(a ≤ x ≤ b - l + 1) among l integers x, x + 1, ..., x + l - 1 there
are at least k prime numbers.
Find and print the required minimum l. If no value l meets
the described limitations, print -1.
A single line contains three space-separated integers a, b, k (1 ≤ a, b, k ≤ 106; a ≤ b).
In a single line print a single integer — the required minimum l. If there's no solution, print -1.
2 4 2
3
6 13 1
4
1 4 3
-1
题目意思看了老半天,冷静分析终于摸清了题意,就是求a,b范围内任意一段包含k个素数的最小长度L;用常规方法的话也可以,但是可能会很麻烦;这里可以用一种二分查找,但都是要打表的;
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const int N=1000000+10;
int a,b,k,s[N],ss[N];
void dabiao()
{
memset(s,0,sizeof(s));
memset(ss,-1,sizeof(ss));
ss[0]=ss[1]=0;
for(int i=2; i<=N; i++)
{
s[i]=s[i-1];
if(ss[i])
s[i]+=1;//打表;
if(ss[i])
{
if(i>N/i) continue;
for(int j=i*i; j<=N; j+=i)
ss[j]=0;//筛法;
}
}
}
int cha(int x)
{
for(int i=a; i<=b-x+1; i++)
if(s[i+x-1]-s[i-1]<k)
return 0;
return 1;
}
int main()
{
dabiao();
while(~scanf("%d%d%d",&a,&b,&k))
{
if(s[b]-s[a-1]<k)
printf("-1\n");整个区间内的素数个数;
else
{
int x=0;
int l=1,r=b-a+1;
while(l<=r)
{
int mid=(l+r)/2;
if(cha(mid))
{
x=mid;
r=mid-1;
}
else
l=mid+1;
}
printf("%d\n",x);
}
}
return 0;
}
其实理清了思路就不会很难;由此可见思路的重要性;
最新文章
- TCP三次握手/四次挥手详解
- Linux QT
- CentOS网络配置详解
- Random.nextint() 和Math.random()的区别
- Spring MVC+Maven+Freemarker+Mybatis开发环境搭建
- C#相关时间DateTime格式化
- 简易浏览器App webview
- 最新的手机/移动设备jQuery插件
- oauth2认证
- [Windows Phone]修改应用程序主题
- POJ 1252 Euro Efficiency
- JQuery中参数e,event
- Problem G
- MFC半透明对话框
- Nginx-Tomcat搭建负载均衡(转载)
- 解析ReentrantLock实现原理
- js设置高度和宽度相等
- git 分支命名规范
- Highcharts 时间格式化函数
- 关于Python的import机制原理