题意:

给定一个序列,然后对其进行两种操作

1   L R W   代表从 a[L ] 到a[R] 全部加上W

2   L R W  代表从  a[L] 到 a[R] 中最大值为 W

问是否存在一个序灭满足上序操作  , 操作数量小于5000

题解:

从尾往前跑  ,   维护序列每个值可存在的最大权值, 然后再从头往后跑,查询该序列是否满足要求

代码:

#include<stdio.h>
#define INF 1000000000
struct Node
{
    int flag, l, r, value;
}cun[5005];
int main()
{
    int Mark[5005], n, m, Mark2[5005];
    while(scanf("%d %d", &n, &m) != EOF)
    {
        for(int i = 0; i < 5005; i++)
        Mark[i] = INF;
        int flag = 0;
        for(int i = 1; i <= m; i++)
        scanf("%d %d %d %d", &cun[i].flag, &cun[i].l, &cun[i].r, & cun[i].value);
        for(int i = m; i >= 1; i--)
        {
            if(cun[i].flag == 1)
            for(int j = cun[i].l; j <= cun[i].r; j++)
            {
                if(Mark[j] != INF)
                Mark[j] -= cun[i].value;
            }
            else
            {
                for(int j = cun[i].l; j <= cun[i].r; j++)
                {
                    if(Mark[j] >= cun[i].value)
                    Mark[j] = cun[i].value;
                }
            }
        }
        for(int i = 1; i <= n; i++)
        Mark2[i] = Mark[i];
        for(int i = 1; i <= m; i++)
        {
            if(cun[i].flag == 1)
            for(int j = cun[i].l; j <= cun[i].r; j ++)
            Mark[j] += cun[i].value;
            else
            {
                int Max = -INF;
                for(int j = cun[i].l; j <= cun[i].r; j++)
                {
                    if(Mark[j] > Max)   Max = Mark[j];
                }
                if(Max != cun[i].value)  { flag = 1; break;}
            }
        }
        if(flag)  {  printf("NO\n");  continue;}
        else   printf("YES\n");
        for(int i = 1; i <= n; i++)
        printf("%d ", Mark2[i]);
        printf("\n");
    }
}

CodeForces 360A - Levko and Array Recovery (思维)相关推荐

  1. CodeForces 360A - Levko and Array Recovery (模拟)

    题目地址:点击打开链接 思路: 维护每个数的上下界,先按照操作倒着求一遍,可以得到每个数的上界,再按操作正着验证一遍是否能够满足.如果都能满足的话输出上界即可. 代码: #include<ios ...

  2. CodeForces 360A - Levko and Array Recovery【动规】

    题意:一道已知操作求原始数组的题目: 分析:求出每个位置初始时可能的最小值...然后再判断是否合法即可: 疑问之处:为什么a数组初始要给10^9(原始数组的最大范围),而不能是inf? AC代码: # ...

  3. CodeForces 360A - Levko and Array Recovery 给出操作求原始数列

    题意: 对一个数列有这么两个操作 1.(1,l,r,p)..将区间[l,r]所有数都加上p 2.(2,l,r,m).求出区间[l,r]的最大值为m 现在告诉这么一些操作(<5000个)...问能 ...

  4. CodeForces 1514A Perfectly Imperfect Array

    CodeForces 1514A Perfectly Imperfect Array 题意: 给你n个数,是否存在一个数不是平方数 题解: 先开方,转int,判断是否等于平方 代码: #include ...

  5. 【CodeForces - 361D】Levko and Array (二分,dp)

    题干: Levko has an array that consists of integers: a1, a2, ... , an. But he doesn't like this array a ...

  6. codeforces 361 D. Levko and Array(dp+二分)

    题目链接:http://codeforces.com/contest/361/problem/D 题意:最多可以修改K次数字,每次修改一个数字变成任意值,C=max(a[i+1]-a[i]):求操作之 ...

  7. Educational Codeforces Round 11A. Co-prime Array 数学

    地址:http://codeforces.com/contest/660/problem/A 题目: A. Co-prime Array time limit per test 1 second me ...

  8. CodeForces - 1480D2 Painting the Array II(dp)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,现在要求拆分成两个子序列,使得两个子序列的贡献之和最 小.对于一个序列的贡献就是,去掉相邻且相同的字母后的长度,即 ∑i=1n[a[i]! ...

  9. CodeForces - 1480D1 Painting the Array I(贪心)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,现在要求拆分成两个子序列,使得两个子序列的贡献之和最 大.对于一个序列的贡献就是,去掉相邻且相同的字母后的长度,即 ∑i=1n[a[i]! ...

最新文章

  1. 智能指针shared_ptr的用法
  2. 【文件格式问题】文件格式 Windows、Unix/Linux、Mac 导致的问题及处理(idea 或 notepad++ 档案格式转换方法)
  3. 【SQLAlchemy】PostgreSQL的自增长主键定义
  4. leetcode 153. Find Minimum in Rotated Sorted Array | 153. 寻找旋转排序数组中的最小值(二分查找)
  5. 外星人台式电脑_执掌游戏世界 外星人ALIENWARE m15丨17.9mm机身轻悍降临【电脑组装】公众号分享台式机笔记本电脑 京东商城特惠通道...
  6. 获取js里添加的css文件,用JS添加一个css文件
  7. socket编程开发
  8. GIT提交记录和Revert commit过程分析
  9. 实现在Android 多点手势识别
  10. android ndk 多线程mk,Android NDK 开发教程六: application.mk
  11. 蓝桥杯2019年第十届C/C++省赛A组第二题-数列求值
  12. relative定位下要使用top、left,而不是margin-top、margin-left
  13. C语言中钩子函数使用讲解
  14. 多电量变送器在消防巡检设备中的应用
  15. Linux文件编程常用函数详解——read()和write()函数
  16. 在美团投放广告的优势、展现形式介绍!
  17. hls简述(HTTP live Streaming)
  18. springboot+vue企业人事人力资源管理系统java公司员工出差考勤办公OA系统
  19. 大数据分析案例-基于决策树算法构建银行客户流失预测模型
  20. 安卓开发-Activity的显示意图和隐式意图+实例+Activity界面间数据的传递实例

热门文章

  1. 找准定位是SaaS厂商发展关键
  2. 访问学者要了解的日本饮食习惯
  3. matlab实现srt,SRT计划项目申请书提交版.doc
  4. 抖音带货10天变现20W,揭秘抖音书单有多暴利丨国仁网络资讯
  5. 震撼低音演绎 这款索爱桌面电脑音响就是不一样
  6. 【哈佛学习力13:父母课堂】
  7. Java杂谈来一发(九)线程状态
  8. 小游戏基与creator接入VIVO平台之小包模式和远程资源加载
  9. 网页调用activex控件
  10. Python数据分析实战-提取DataFrame(Excel)某列(字段)最全操作(附源码和实现效果)