hdoj 5328 Problems killer

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5328

 1     #include<stdio.h>
 2     #include<algorithm>
 3     typedef long long ll;
 4     const int MAXN = 1e6+10;
 5     ll a[MAXN];
 6     int main()
 7     {
 8         int lgt;        int T;
 9         int n;          int tmp;
10         int i;
11         scanf("%d",&T);
12         while(T--){
13             scanf("%d",&n);
14             for( i = 0; i < n; ++i){
15                 scanf("%I64d",&a[i]);
16             }
17             if( n == 2 ){
18                 printf("2\n");
19                 continue;
20             }
21             if( n == 1){
22                 printf("1\n");
23                 continue;
24             }
25             lgt = 2;
26             tmp = 2;
27             for( i = 2; i < n; ++i){
28                 if( ( a[i] - a[i-1] ) == ( a[i-1] - a[i-2] ) ){
29                     tmp++;
30                     lgt = std::max(tmp,lgt);
31                     }
32                 else{
33                     lgt = std::max(tmp,lgt);
34                     tmp = 2;
35
36                 }
37             }
38             tmp = 2;
39             for( i = 2; i < n; ++i){
40                 if( ( (double)a[i] / (double)a[i-1] ) == ( (double)a[i-1] / (double)a[i-2] ) ){
41                     tmp++;
42                     lgt = std::max(tmp,lgt);
43                 }
44                 else{
45                     lgt = std::max(tmp,lgt);
46                     tmp = 2;
47                 }
48             }
49             printf("%d\n",lgt);
50         }
51     }
时间: 2024-10-21 18:38:06

hdoj 5328 Problems killer的相关文章

HDU 5328 Problem Killer(尺取法)

You are a "Problem Killer", you want to solve many problems. Now you have nn problems, the ii-th problem's difficulty is represented by an integer aiai (1≤ai≤1091≤ai≤109). For some strange reason, you must choose some integer ll and rr (1≤l≤r≤n1

hdu 5328 Problem Killer(杭电多校赛第四场)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5328 题目大意:找到连续的最长的等差数列or等比数列. 解题思路:1.等差等比的性质有很多.其中比较重要的一个就是解题关键:如a[i-2],a[i-1],a[i],a[i+1]这个序列.a[i-2],a[i-1],a[i]是等差数列,a[i-1],a[i],a[i+1]也是等差数列.那么a[i-2],a[i-1],a[i],a[i+1]就是等差数列.  2. 等比数列也是一样的~~只要根据这个性质就

HDU 5328 Problem Killer(水题)

题意:给一个序列,要找一个等差或等比的连续子序列,求其最长的长度. 思路:扫两遍,判断等差或等比即可.从左往右扫,维护一个滑动窗口,考虑新加进来的数,如果满足了要求,则更新长度,否则只留最后两个数字,其他删掉,接着继续考虑下一个数字.等比也是如此,只是要注意精度的问题. 别人的代码: 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int MAX = 1e6+2; 4 int arr[MAX]; 5 6 int main(vo

HDU 5328 Problem Killer

题意:给一段序列,求连续的子序列中最长的等差数列或者等比数列的长度. 解法:O(n)的扫两遍一次判等差一次判等比就好了. 代码: #include<stdio.h> #include<iostream> #include<algorithm> #include<string> #include<string.h> #include<math.h> #include<limits.h> #include<time.h&

HDU 5328(2015多校4)-Problem Killer(水题)

题目地址:HDU 5328 题意:在一个长度为n的序列中取出连续的k个数,让这k个数组成等差数列或者等比数列,问这样的k最大可以是多少. Ps:注意用double搞,因为等比数列求公比相除可能为小数. #include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <sstream> #i

HDOJ Sudoku Killer(dfs)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1426 思路分析:该问题为数独问题,明显解是唯一的,所有采用dfs搜索效果更好: 在搜索时,可以通过3个数组来判断对于某个特定的数是否能够满足要求,即在每一行.每一列和每一个3X3的方块中只有唯一的1~9之间的数: vis_r数组:如果vis_r[i][j] == 1表示在第i行中数字j已经存在,否则表示不存在: vis_c数组:如果vis_c[i][j] == 1表示在第j列数字j已经存在,否则表示

HDOJ 4901 The Romantic Hero

DP....扫两遍组合起来 The Romantic Hero Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 547    Accepted Submission(s): 217 Problem Description There is an old country and the king fell in love with a

HDOJ 3376 Matrix Again

和HDOJ 2686 一样,只是范围不同 最大费用最大流..... 与最小费用最大流的区别用////////////标出来了 对于detour,在源点和汇点处的边的流量为2 对于每个点只能经过一次,拆点,两个点直接建一条流量为1,费用为mp[i][j]的边 对于每个点可以走到他的左边和下边:连一个费用为0流量大于1的边 Matrix Again Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 102400/102400 K (Jav

HDOJ题目3309 Roll The Cube(BFS)

Roll The Cube Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 502    Accepted Submission(s): 181 Problem Description This is a simple game.The goal of the game is to roll two balls to two holes