zoukankan      html  css  js  c++  java
  • HDU 5641

    King's Phone

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
    Total Submission(s): 916    Accepted Submission(s): 261


    Problem Description
    In a military parade, the King sees lots of new things, including an Andriod Phone. He becomes interested in the pattern lock screen.

    The pattern interface is a $3 imes 3$ square lattice, the three points in the first line are labeled as $1, 2, 3$, the three points in the second line are labeled as $4, 5, 6$, and the three points in the last line are labeled as $7, 8, 9$。The password itself is a sequence, representing the points in chronological sequence, but you should follow the following rules:

    - The password contains at least four points.


    - Once a point has been passed through. It can't be passed through again.

    - The middle point on the path can't be skipped, unless it has been passed through($3427$ is valid, but $3724$ is invalid).

    His password has a length for a positive integer $k (1le kle 9)$, the password sequence is $s_1,s_2...s_k(0le s_{i} < INT\_MAX)$ , he wants to know whether the password is valid. Then the King throws the problem to you.
     
    Input
    The first line contains a number&nbsp;$T(0 < T le 100000)$, the number of the testcases.

    For each test case, there are only one line. the first first number&nbsp;$k$,represent the length of the password, then $k$ numbers, separated by a space, representing the password sequence $s_1,s_2...s_k$.
     
    Output
    Output exactly $T$ lines. For each test case, print `valid` if the password is valid, otherwise print `invalid`
     
    Sample Input
    3
    4 1 3 6 2
    4 6 2 1 3
    4 8 1 6 7
     
    Sample Output
    invalid valid valid hint: For test case #1:The path $1 ightarrow 3$ skipped the middle point $2$, so it's invalid. For test case #2:The path $1 ightarrow 3$ doesn't skipped the middle point $2$, because the point 2 has been through, so it's valid. For test case #2:The path $8 ightarrow 1 ightarrow 6 ightarrow 7$ doesn't have any the middle point $2$, so it's valid.
     
    Source
    挂终测了  继续掉分 一回解  orzzzz 最近 太忙
    题意: 给你一段序列 问是否为合法的解锁序列(模拟手机手势解锁)
     
    满足条件 1.至少4个数字 数量为[4,9]  2.不能重复 3.不能跳跃 4.数字的范围为[1,9]
    还有记得每次的初始化
     
     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 #include<map>
     5 #include<queue>
     6 #include<stack>
     7 #include<set>
     8 using namespace std;
     9 int t;
    10 int a[10];
    11 int mp[10][10];
    12 map<int,int> mpp;
    13 int jishu=0;
    14 void init()
    15 {
    16     mp[1][3]=1;
    17     mp[1][7]=1;
    18     mp[1][9]=1;
    19     mp[2][8]=1;
    20     mp[3][1]=1;
    21     mp[3][9]=1;
    22     mp[3][7]=1;
    23     mp[4][6]=1;
    24     mp[6][4]=1;
    25     mp[7][1]=1;
    26     mp[7][9]=1;
    27     mp[7][3]=1;
    28     mp[8][2]=1;
    29     mp[9][3]=1;
    30     mp[9][7]=1;
    31     mp[9][1]=1;
    32 }
    33 int main()
    34 {
    35     scanf("%d",&t);
    36 
    37     init();
    38     for(int i=1;i<=t;i++)
    39     {
    40          scanf("%d",&jishu);
    41          memset(a,0,sizeof(a));
    42          int maxn=0;
    43          int flag=1;
    44          for(int j=1;j<=jishu;j++)
    45             {
    46                 scanf("%d",&a[j]);
    47                 if(a[j]>maxn)
    48                     maxn=a[j];
    49                 if(a[j]<=0)
    50                     flag=0;
    51             }
    52         mpp.clear();
    53         if(jishu<4||jishu>9||maxn>9||flag==0)
    54             printf("invalid
    ");
    55         else
    56         {   int re=0;
    57             mpp[a[1]]=1;
    58             for(int j=1;j<jishu;j++)
    59             {
    60                 if(mpp[a[j+1]]==0)
    61                {
    62                  if(mp[a[j]][a[j+1]]==0)
    63                     re++;
    64                 else
    65                 {
    66                     if(mpp[(a[j]+a[j+1])/2])
    67                         re++;
    68                 }
    69                }
    70                 mpp[a[j+1]]=1;
    71 
    72             }
    73             if(re==jishu-1)
    74                 printf("valid
    ");
    75             else
    76                 printf("invalid
    ");
    77         }
    78     }
    79     return 0;
    80 }
    View Code
  • 相关阅读:
    根据navigator.userAgent返回值识别 浏览器
    HTML兼容问题及解决办法
    css 浏览兼容问题及解决办法 (2)
    css 浏览兼容问题及解决办法 (1)
    js 浏览器兼容问题及解决办法
    cookie 笔记
    HTML5基础2
    HTML5基础1
    摩天轮
    造个惊喜盒( ๑ŏ ﹏ ŏ๑ )
  • 原文地址:https://www.cnblogs.com/hsd-/p/5271727.html
Copyright © 2011-2022 走看看