hdu 5247 找连续数【暴力枚举】
2015-06-01 20:50
288 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5247
分析:这道题是2015百度之星初赛1的2题,当时没看这道题
是队友看的,比完以后也做了一下,思路大体都是一样的,就是
暴力枚举,因为k<=1000,那么我们可以每一点x为起点跑[x,x+999]
这段区间,把每得到一段连续的子区间[x,?],则num[len]++(len=size([x,?]));
这样就可以了,最后num数组里就是对应的答案
献上代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<set>
using namespace std;
const int maxn=10000+10;
int num[maxn],sum[maxn];
int main()
{
int n,m,k,t=0;
while(~scanf("%d%d",&n,&m))
{
// scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
{
scanf("%d",&num[i]);
}
memset(sum,0,sizeof(sum));
sum[1]=n;
for(int i=0;i<n;i++)
{
int Min,Max;
Min=Max=num[i];
set<int>st;
st.insert(num[i]);
for(int j=1;j<1000&&i+j<n;j++)
{
st.insert(num[i+j]);
Min=min(Min,num[i+j]);
Max=max(Max,num[i+j]);
if(j+1!=st.size())
break;
if(Max-Min==j)
sum[j+1]++;
}
}
printf("Case #%d:\n",++t);
while(m--)
{
scanf("%d",&k);
printf("%d\n",sum[k]);
}
}
return 0;
}
分析:这道题是2015百度之星初赛1的2题,当时没看这道题
是队友看的,比完以后也做了一下,思路大体都是一样的,就是
暴力枚举,因为k<=1000,那么我们可以每一点x为起点跑[x,x+999]
这段区间,把每得到一段连续的子区间[x,?],则num[len]++(len=size([x,?]));
这样就可以了,最后num数组里就是对应的答案
献上代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<set>
using namespace std;
const int maxn=10000+10;
int num[maxn],sum[maxn];
int main()
{
int n,m,k,t=0;
while(~scanf("%d%d",&n,&m))
{
// scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
{
scanf("%d",&num[i]);
}
memset(sum,0,sizeof(sum));
sum[1]=n;
for(int i=0;i<n;i++)
{
int Min,Max;
Min=Max=num[i];
set<int>st;
st.insert(num[i]);
for(int j=1;j<1000&&i+j<n;j++)
{
st.insert(num[i+j]);
Min=min(Min,num[i+j]);
Max=max(Max,num[i+j]);
if(j+1!=st.size())
break;
if(Max-Min==j)
sum[j+1]++;
}
}
printf("Case #%d:\n",++t);
while(m--)
{
scanf("%d",&k);
printf("%d\n",sum[k]);
}
}
return 0;
}
相关文章推荐
- Android中的设计模式
- C#验证码
- springMVC
- 团队项目第二阶段冲刺站立会议(6月1日)
- 插值查找详解
- Android通过webservice操作数据库1(查询数据库)
- 第十二周 阅读项目 (5)
- c++的auto_ptr
- hdu - 2660 Accepted Necklace (二维费用的背包问题)
- autotools的基本使用
- UISearchDisplayController搜索(iOS8前)
- UVA 12325 - Zombie's Treasure Chest
- dfs--根节点
- Summary Day27
- 《javascript高级程序设计》 touch事件的一个小错误
- IO流概念及分类
- 在Mac系统上安装Tomcat
- 使用java检测网络连接状况
- 使用java检测网络连接状况
- jasig CAS实现单点登录(数据库认证)