zoukankan      html  css  js  c++  java
  • Codeforces Round #210 (Div. 2) C. Levko and Array Recovery

    题目链接

    线段树的逆过程,想了老一会,然后发现应该是包含区间对存在有影响,就不知怎么做了。。。然后尚大神,说,So easy,你要倒着来,然后再正着来,判断是不是合法就行了。然后我乱写了写,就过了。数据难道又水了。。。

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <iostream>
     4 #include <queue>
     5 #include <algorithm>
     6 using namespace std;
     7 int p[5001],o[5001],ans[5001];
     8 int t[5001],l[5001],r[5001],d[5001];
     9 int main()
    10 {
    11     int n,m,i,j,flag,maxz;
    12     scanf("%d%d",&n,&m);
    13     for(i = 1;i <= n;i ++)
    14     p[i] = -10000000;
    15     for(i = 1;i <= m;i ++)
    16     {
    17         scanf("%d%d%d%d",&t[i],&l[i],&r[i],&d[i]);
    18     }
    19     flag = 0;
    20     for(i = m;i >= 1;i --)
    21     {
    22         if(t[i] == 1)
    23         {
    24             for(j = l[i];j <= r[i];j ++)
    25             p[j] -= d[i];
    26         }
    27         else
    28         {
    29             for(j = l[i];j <= r[i];j ++)
    30             {
    31                 if(o[j]&&p[j] < d[i]) continue;
    32                 p[j] = d[i];
    33                 o[j] = 1;
    34             }
    35         }
    36     }
    37     for(i = 1;i <= n;i ++)
    38     ans[i] = p[i];
    39     for(i = 1;i <= m;i ++)
    40     {
    41         if(t[i] == 1)
    42         {
    43             for(j = l[i];j <= r[i];j ++)
    44             p[j] += d[i];
    45         }
    46         else
    47         {
    48             maxz = -1000000000;
    49             for(j = l[i];j <= r[i];j ++)
    50             {
    51                 maxz = max(maxz,p[j]);
    52             }
    53             if(maxz != d[i]) flag = 1;
    54         }
    55     }
    56     if(flag)
    57     printf("NO
    ");
    58     else
    59     {
    60         printf("YES
    ");
    61         for(i = 1;i <= n;i ++)
    62         {
    63             if(i == 1)
    64             printf("%d",ans[i]);
    65             else
    66             printf(" %d",ans[i]);
    67         }
    68         printf("
    ");
    69     }
    70     return 0;
    71 }
  • 相关阅读:
    目标跟踪_POI算法
    深度学习-Maxpool
    HOG特征
    R CNN
    颜色空间
    数值分析-非线性方程的数值解法
    数值分析-一些小小的知识点
    数值分析-求微分
    多元统计分析-因子分析
    最优化-可行方向法
  • 原文地址:https://www.cnblogs.com/naix-x/p/3417616.html
Copyright © 2011-2022 走看看