zoukankan      html  css  js  c++  java
  • [BZOJ 5071]小A的数字

    Output

    Sample Input

    2
    6
    1 6 9 4 2 0
    7 -6 19 2 -6 6
    4
    1 2 3 4

    4 2 1 3

    Sample Output

    YES
    NO

    HINT

    第一组数据中,可以依次取 i=2,4,5,每次得到的新数列如下:
    第一次, i=2,得到 7,-6,15,4,2,0,
    第二次, i=4,得到 7,-6,19,-4,6,0,
    第三次, i=5,得到 7,-6,19,2,-6,6,所以可以得到 b 数列。
    第二组数据中,不可能做到这一点。

    将(Ai-1,Ai,Ai+1)变为(Ai-1 + Ai,-Ai,Ai+1 + Ai)

    做前缀和转化为

    (Ai-1,Ai-1+Ai,Ai-1+Ai+Ai+1)变为(Ai-1+Ai,Ai-1,Ai-1+Ai+Ai+1)

    发现一次操作相当于交换前缀和的两位

    所以将前缀和排序,判断相同就行了

    zyys

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 using namespace std;
     6 int n;
     7 long long a[100001],b[100001];
     8 int main()
     9 {int T,i,flag;
    10     cin>>T;
    11     while (T--)
    12     {
    13         scanf("%d",&n);
    14         for (i=1;i<=n;i++)
    15         scanf("%lld",&a[i]),a[i]+=a[i-1];
    16         for (i=1;i<=n;i++)
    17         scanf("%lld",&b[i]),b[i]+=b[i-1];
    18         sort(a+1,a+n+1);
    19         sort(b+1,b+n+1);
    20         flag=0;
    21         for (i=1;i<=n;i++)
    22         if (a[i]!=b[i])
    23         {flag=1;break;}
    24         if (flag==0) printf("YES
    ");
    25         else printf("NO
    ");
    26     }
    27 }
  • 相关阅读:
    4.文本规范化处理
    2.自动文本分类
    3.文本分类的蓝图
    1.什么是文本分类
    2.文本规范化
    Python 处理和理解文本
    1.文本切分
    验证码识别
    随机函数
    Java编程思想笔记(多态)
  • 原文地址:https://www.cnblogs.com/Y-E-T-I/p/7787314.html
Copyright © 2011-2022 走看看