hdu 5247 找连续数【暴力枚举】

题目链接: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;

}

时间: 2024-10-10 23:13:09

hdu 5247 找连续数【暴力枚举】的相关文章

hdu 5247 找连续数(思维)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5247 找连续数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1207    Accepted Submission(s): 435 Problem Description 小度熊拿到了一个无序的数组,对于这个数组.小度熊想知道能否找到一

HDU 5247 找连续数 (set妙用)

找连续数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1008    Accepted Submission(s): 362 Problem Description 小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否能找到一个k 的区间,里面的 k 个数字排完序后是连续的. 现在小度熊增加题目难度,他不想知道是否有这样的 k

HDU 5247 找连续数(RMQ+滑窗)

找连续数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 281    Accepted Submission(s): 102 Problem Description 小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否能找到一个k 的区间,里面的 k 个数字排完序后是连续的. 现在小度熊增加题目难度,他不想知道是否有这样的 k

2015 百度之星 1002 找连续数 暴力

找连续数 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acdream.info/problem?pid=1751 Description 小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否能找到一个k 的区间,里面的 k 个数字排完序后是连续的. 现在小度熊增加题目难度,他不想知道是否有这样的 k 的区间,而是想知道有几个这样的 k 的区间. Input 输入包含一组测试数据. 第一行包含两个整数n,m,n代表数组中有多少个数

HDU ACM 5247 找连续数

分析:使用STL的set容器实现,set的内部排序默认是从小到达的.先把结果预处理到一个数组中存储起来,之后直接输出即可. #include<iostream> #include<set> using namespace std; #define N 10005 int a[N]; int ans[N]; set<int> s; //默认从小到达排序 set<int>::iterator it; int main() { int T=0; int n,m,k

2015年百度之星初赛(1) --- B 找连续数

找连续数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 179    Accepted Submission(s): 65 Problem Description 小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否能找到一个k 的区间,里面的 k 个数字排完序后是连续的. 现在小度熊增加题目难度,他不想知道是否有这样的 k 的区

HDU 4930 Fighting the Landlords(暴力枚举+模拟)

HDU 4930 Fighting the Landlords 题目链接 题意:就是题中那几种牌型,如果先手能一步走完,或者一步让后手无法管上,就赢 思路:先枚举出两个人所有可能的牌型的最大值,然后再去判断即可 代码: #include <cstdio> #include <cstring> #include <algorithm> using namespace std; struct Player { int rank[15]; } p1, p2; int t, h

百度之星 2015 初赛(1) 1002 找连续数

找连续数 Accepts: 401 Submissions: 1911 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Description 小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否能找到一个k 的区间,里面的 k 个数字排完序后是连续的. 现在小度熊增加题目难度,他不想知道是否有这样的 k 的区间,而是想知道有几个这样的 k 的区间. Input

hdu 4932 Miaomiao&#39;s Geometry 暴力枚举

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4932 Miaomiao's Geometry Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 694    Accepted Submission(s): 180 Problem Description There are N point