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 }
  • 相关阅读:
    JSTL和EL
    SpringMVC 上传文件and过滤器
    SQLServer 大数据查询2
    SQLServer 大数据查询分析
    Oracle分页查询
    Oracle大数据常见优化查询
    Window 下面利用Oid 获取SNMP主机信息 以及计算方法
    window 下面安装net-snmp 简单网关协议
    显示一行省略文字的详细信息
    手机自动隐藏浏览器地址栏
  • 原文地址:https://www.cnblogs.com/wsy107316/p/13381858.html
Copyright © 2011-2022 走看看