zoukankan      html  css  js  c++  java
  • Codeforces 986B

    给定一个长度为n序列的排列,问改序列是由原序列进行3n还是7n+1次交换得到的

    由7n+1-3n=4n+1知道两个数奇偶性不同

    那么我们计算序列的奇偶性即可得

    补一种O(n)的做法

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 using namespace std;
     5 
     6 
     7 int N;
     8 const int maxn = 1e6 + 10;
     9 int A[maxn];
    10 
    11 int main() {
    12     scanf("%d", &N);
    13     for (int i = 1; i <= N; i++) {
    14         scanf("%d", &A[i]);
    15     }
    16     int res = 0;
    17     for (int i = 1; i <= N; i++) {
    18         if (!A[i]) continue;
    19         res ^= 1;
    20         int x = i;
    21         while (x) {
    22             int y = A[x];
    23             A[x] = 0;
    24             x = y;
    25         }
    26     }
    27     if (res & 1) {
    28         puts("Um_nik");
    29     } else {
    30         puts("Petr");
    31     }
    32     return 0;
    33 }
  • 相关阅读:
    HDU 1421 DP
    HDU1011 树形DP
    CodeForces 219D 树形DP
    HDU2196 树形DP
    HDU5831
    HDU3177 贪心
    数位DP HDU3652
    数位DP bzoj1026
    数位DP HDU3555
    数位DP HDU2089
  • 原文地址:https://www.cnblogs.com/xFANx/p/9285284.html
Copyright © 2011-2022 走看看