HDU--杭电--3833--YY's new problem

原创 2013年12月05日 00:21:15

YY's new problem

Time Limit: 12000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 3434    Accepted Submission(s): 961


Problem Description
Given a permutation P of 1 to N, YY wants to know whether there exists such three elements P[i1], P[i2], P[i3] that
P[i1]-P[i2]=P[i2]-P[i3], 1<=i1<i2<i3<=N.
 

Input
The first line is T(T<=60), representing the total test cases.
Each test case comes two lines, the former one is N, 3<=N<=10000, the latter is a permutation of 1 to N.
 

Output
For each test case, just output 'Y' if such i1, i2, i3 can be found, else 'N'.
 

Sample Input
2 3 1 3 2 4 3 2 4 1
 

Sample Output
N Y
 
题意:在数列中能否找到等差数列,而且  i1+i3=2*i2 ,   i1+i3只能是偶数

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main (void)
{
    int t,n,m,i,j,k,l,s[11111],hash[11111];
    scanf("%d",&t);
    while(t--&&scanf("%d",&n)!=EOF)
    {
        memset(hash,0,sizeof(hash));
        for(i=0;i<n;i++)
        {
            scanf("%d",&s[i]);
            hash[s[i]]=i;	//记录当前数所在的位子
        }
        for(i=k=0;!k&&i<n;i++)
        {
            if(i<n/2)
            for(j=0;j<i;j++)	//前半段通过i1,i2找i3
            {
                l=2*s[i]-s[j];
                if(l>0&&l<=n&&hash[l]>i)
                {
                    k=1;break;
                }
            }else
            for(j=n-1;!k&&j>i;j--)	//后半段通过i2,i3找i1
            {
                l=2*s[i]-s[j];
                if(l>0&&l<=n&&hash[l]<i)
                {
                    k=1;break;
                }
            }
        }
        if(k)puts("Y");
        else puts("N");
    }
    return 0;
}



【模拟】【HDU1443】 Joseph

Joseph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S...
  • zy691357966
  • zy691357966
  • 2014年10月01日 20:10
  • 976

Day 3 网络流

Day3 电子笔记(网络流): 备注:上午 网络流,下午 计算几何 线性规划(基于 单纯性 做法)可以代替网络流,但是难写、难理解 不需要 建模(比网络流好的地方),时间复杂度更玄学 Dini...
  • qq_35776409
  • qq_35776409
  • 2017年05月01日 07:58
  • 164

【数论】poj1777 Vivian's Problem(梅森素数)

题意:给定k个数,然后为每个数添加一个幂ei(0=如果M的所有因子的和可以写成2^x,求x的最大值,如果没有条件满足,输出NO。 刚看到题没什么思路,解题需要一些结论。 1:梅森素数...
  • miku23736748
  • miku23736748
  • 2016年08月06日 14:19
  • 563

Hihocoder 1424 Asa's Chess Problem (有源汇上下界最小费用流)

ProblemAsa comes up with a chess problem. There are N×N chesses on a board with N×N grids, one chess...
  • DorMOUSENone
  • DorMOUSENone
  • 2017年07月17日 12:55
  • 1072

Linux用户管理与权限

用户管理与权限 实验目的: 掌握用户与组管理 掌握高级权限的使用 掌握访问控制列表   实验步骤: 步骤一、用户管理 创建用户useradd的几个参数: -c描述 -d 家目录 -u uid号 -g ...
  • VmBoys
  • VmBoys
  • 2016年05月12日 13:40
  • 1170

华为机试 之 joseph环

一:首先科普一下约瑟夫问题的数学方法        (1)  无论是用list实现还是用vector实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间复杂度高达O(nm),当n,...
  • u010700335
  • u010700335
  • 2014年10月15日 11:26
  • 969

Machine Schedule(最小点覆盖=最大匹配)

Machine Schedule Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12012 ...
  • Enjoying_Science
  • Enjoying_Science
  • 2014年11月06日 21:07
  • 876

String s = new String("xyz");创建了几个String Object? 二者之间有什么区别?

String s = new String("xyz"); 这个跟常量池没有关系,只要是new,都是重新分配堆空间,如果不区分栈和堆,这里创建了1个String Object。如果是从jvm角度来说...
  • BornLiLi
  • BornLiLi
  • 2017年02月16日 15:52
  • 5636

问题记录:ubuntu中ssh配置

开始出现问题: ubuntu@ip-172-31-30-98:$ ssh-copy-id ubuntu@ip-172-31-30-98 /usr/bin/ssh-copy-id: INFO: atte...
  • SHENNONGZHAIZHU
  • SHENNONGZHAIZHU
  • 2016年06月21日 20:10
  • 1393

黑马程序员_对象包装器、枚举类

-------android培训、java培训、期待与您交流! ---------- 对象包装器与自动打包: 所有的基本类型都有一个与之对应的类,通常这些类称为包装器(wrapper)。这些包装器...
  • u013963996
  • u013963996
  • 2014年03月07日 22:27
  • 291
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDU--杭电--3833--YY's new problem
举报原因:
原因补充:

(最多只允许输入30个字)