zoukankan      html  css  js  c++  java
  • Magic Stones(公式变换好题)

    Magic Stones

     

     题解:here

     每一次变换都会导致差分数组的两个相邻元素位置交换,但是大小是不变的;

    要保证两个数组相等,所有的差分数组都是要一样的,包括第一个,也就是第一个数要相等

    这里第一个数和最后一个数是不变的,所以题目正解为:比较这两个差分数组是否相同,如果相同,再看c数组和t数组第一个数是不是相同,是的话说明c数组可以变换到t数组

    AC_Code:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<cmath>
     4 #include<set>
     5 #include<algorithm>
     6 #include<iostream>
     7 using namespace std;
     8 typedef long long ll;
     9 #define endl '
    '
    10 const int maxn = 2e5+10;
    11 const int inf = 0x3f3f3f3f;
    12 
    13 int n;
    14 int c[maxn],t[maxn],cfc[maxn],cft[maxn];
    15 
    16 bool judge(){
    17     for(int i=1;i<=n;i++){
    18         if( cfc[i]!=cft[i] ) return false;
    19     }
    20     return true;
    21 }
    22 
    23 int main()
    24 {
    25     scanf("%d",&n);
    26     for(int i=1;i<=n;i++){
    27         scanf("%d",&c[i]);
    28         if( i==1 ) cfc[i]=c[i];
    29         else cfc[i]=c[i]-c[i-1];
    30     }
    31     for(int i=1;i<=n;i++){
    32         scanf("%d",&t[i]);
    33         if( i==1 ) cft[i]=t[i];
    34         else cft[i]=t[i]-t[i-1];
    35     }
    36     sort(cfc+1,cfc+1+n);
    37     sort(cft+1,cft+1+n);
    38 
    39     bool flag=judge();
    40     if( !flag ) printf("NO
    ");
    41     else if( c[1]!=t[1] ) printf("NO
    ");
    42     else printf("YES
    ");
    43     return 0;
    44 }
  • 相关阅读:
    go 接口
    jboss 7部署cas3.4.11
    HP LoadRunner 11 破解及license
    JBoss7快速入门
    jboss7的服务器开启和关闭命令
    proc/sys/net/ipv4/下各项的意义
    JAVA使用EPoll来进行NIO处理的方法(转)
    Java NIO类库Selector机制解析(下)
    Java NIO类库Selector机制解析(上)
    mysql 性能优化方向
  • 原文地址:https://www.cnblogs.com/wsy107316/p/13381858.html
Copyright © 2011-2022 走看看