zoukankan      html  css  js  c++  java
  • CodeForces 669B

    链接:http://codeforces.com/problemset/problem/669/B

    本文链接:http://www.cnblogs.com/Ash-ly/p/5443086.html

    题意:

      有个闲的没事干的人找到了一个能跳的小动物,把它放到一个连续的格子中,每个格子都有两个属性,一个是方向">"和"<",分别表示如果到了该格子只能向左(<)跳或者相右跳(>).另外一个属性是能跳多远,比如这个属性是3,那么它到这个格子只能选择往左或者往右跳3步.开始时刻这个小动物在第一个格子,问最后能否调出这个连续的格子,还是永远在这个格子里跳来跳去的循环下去.

    思路:

      如果出不去则说明它跳的路径肯定在这些格子里面形成了一个循环节,而出现循环节的原因就是它又回到了某个它曾经走过的地方,所以如果某个格子它跳了两次,那么它肯定出不去了.

    代码:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 int main()
     5 {
     6     int n;
     7     scanf("%d", &n);
     8     char s[100000 + 7] = {0};
     9     scanf("%s", s);
    10     int a[100000 + 7] = {0};
    11     for(int i = 0; i < n ; i++)
    12         scanf("%d", &a[i]);
    13     int cnt = 0;
    14     long long jmp = 0;
    15     int flag[100000] = {0};
    16     int ans = 0;
    17     int i = 0;
    18     while(true)
    19     {
    20         s[i] == '>' ? jmp += a[i] : jmp -= a[i];
    21         if(jmp >= 0 && jmp < n)
    22         {
    23             i = (int)jmp;
    24             if(flag[i] == 0) flag[i] = 1;
    25             else    break;
    26         }
    27         else
    28         {
    29             ans = 1;
    30             break;
    31         }
    32     }
    33     if(ans) printf("FINITE
    ");
    34     else printf("INFINITE
    ");
    35     return 0;
    36 }
  • 相关阅读:
    原型,构造函数,实例,__proto__
    To me
    那么再会吧!OI!(HNOI2019退役记)
    中山纪念中学培训杂题(难的都不在这里面qwq)
    关于菜鸡我
    树链剖分讲解
    [luogu] P4823 [TJOI2013]拯救小矮人(贪心)
    [luogu] P4551 最长异或路径(贪心)
    [luogu] P4364 [九省联考2018]IIIDX(贪心)
    [luogu] P4155 [SCOI2015]国旗计划(贪心)
  • 原文地址:https://www.cnblogs.com/Ash-ly/p/5443086.html
Copyright © 2011-2022 走看看