zoukankan      html  css  js  c++  java
  • 【题解】数组游戏

    数组游戏
    【问题描述】
    题意很简单,给你长度为N的数组 a[i] (i <= N),其中 a[i]不是 1 就是2。
    然后给你Q组询问,每次询问一个数x,问是否存在l, r (l <= r)使得

    成立,对于每个询问,你只要输出Y(存在)或者 N(不存在)。
    【输入格式】
    第一行包含两个正整数N、Q,意义见题目描述。
    第二行包含n 个正整数,第i个数表示 a[i]。
    接下来有Q行,每行有一个正整数x,表示一组询问。
    【输出格式】
    输出Q行,每行Y或者 N,表示是否存在。
    【样例输入】

    4 4
    1 2 1 2
    3
    1
    4
    7
    【样例输出】
    Y
    Y
    Y
    N
    【数据规模及约定】

    对于70%的数据,N <= 500,Q<=100
    对于90%的数据,N <= 100,000, Q <= 100
    对于100%的数据,N<=1,000,000,Q <=1,000,000

    对于本题,自然可以暴力过百分之七十,这道题也自然可以找规律。

    如果7可以组成,组成7的a[l]和a[r]可能是1,1或2,1或2,2或2,1,可以发现,无论哪种情况,我们

    都可以通过去掉边上的数,使拼成5,于是得出结论,小于等于能拼出的最大单数的单数,是可以拼成的,

    小于等于能拼出最大双数的双数,也是可以拼成的.

    所以,我们可以找出最大单数和最大双数,如果全部想加是单数,那么找出最左边的p,a[p]=1,

    和最右边的q,a[q]=1,最大双数=max(a[p+1]...a[N],a[1]+a[2]+...a[q-1]);

     1 #include <iostream>
     2 #include <fstream>
     3 #include <cstdlib>
     4 #include <cstring>
     5 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
     6 using namespace std;
     7 
     8 ifstream fin("game.in");
     9 ofstream fout("game.out");
    10 
    11 int cnt_sum,cnt_he;
    12 int zhui[1000005];
    13 
    14 int main(int argc, char** argv) {
    15 fin>>cnt_sum>>cnt_he;
    16 int zuo=1000002,you=0;
    17 zhui[1000002]=2000002;
    18 int shuang=0,dan=0;
    19 for(int x=1;x<=cnt_sum;x++){
    20 int a;fin>>a;
    21 zhui[x]=zhui[x-1]+a;    
    22 if(a==1){
    23  zuo=min(x,zuo);
    24  you=max(x,you);
    25  }
    26 }
    27 shuang=zhui[cnt_sum];
    28 dan=max(zhui[cnt_sum]-zhui[zuo],zhui[you-1]);
    29 if(shuang%2!=0){
    30  int d=shuang;
    31  shuang=dan;
    32  dan=d;    
    33 }
    34 
    35 for(int x=1;x<=cnt_he;x++){
    36 int a;fin>>a;
    37 if(a%2==0){
    38  if(a<=shuang)fout<<"Y"<<endl;    
    39  else fout<<"N"<<endl;    
    40  }    
    41 else{
    42  if(a<=dan)fout<<"Y"<<endl;
    43  else fout<<"N"<<endl;    
    44  }
    45 }
    46     
    47 return 0;
    48 }
  • 相关阅读:
    交换实验
    路由引入和控制
    ISIS
    BGP联盟
    BGP2
    bgp
    Linux日常总结
    配置本地yum源方法
    达梦数据库常见问题-安装
    达梦数据库常见问题-安装
  • 原文地址:https://www.cnblogs.com/Ateisti/p/4941704.html
Copyright © 2011-2022 走看看