codeforces 361 C. Levko and Array Recovery(暴力+思维)
题目链接:http://codeforces.com/contest/361/problem/C
题意:对一个数列有这么两个操作
1、(1,l,r,p)..将区间[l,r]所有数都加上p
2、(2,l,r,m).求出区间[l,r]的最大值为m
现在告诉这么一些操作(<5000个),问能否找到一个原始的数列,有则输出YES与这个数列,否则输出NO,答案可能不唯一输出任何合法的都行。
题解:先给数组赋予最大的初值然后倒着处理,遇到1就减去。如果是2,将这一区间里所有数都去min(自身,MAX)
处理完之后然后正着来看一下是不是符合条件。由于数据比较小直接暴力也行。
#include <iostream>
#include <cstring>
#include <cstdio>
#define inf 0X3f3f3f3f
using namespace std;
typedef long long ll;
const int M = 5e3 + 10;
struct TnT {
int t , l , r , w;
}T[M];
ll a[M] , b[M];
int main() {
int n , m;
scanf("%d%d" , &n , &m);
for(int i = 0 ; i < m ; i++) {
scanf("%d%d%d%d" , &T[i].t , &T[i].l , &T[i].r , &T[i].w);
}
for(int i = 1 ; i <= n ; i++) {
a[i] = 25 * 100000000000;
}
int flag = 0;
for(int i = m - 1 ; i >= 0 ; i--) {
if(T[i].t == 1) {
for(int j = T[i].l ; j <= T[i].r ; j++) {
a[j] -= T[i].w;
}
}
else {
for(int j = T[i].l ; j <= T[i].r ; j++) {
a[j] = min(a[j] , (ll)T[i].w);
}
}
}
for(int i = 1 ; i <= n ; i++) {
b[i] = a[i];
}
for(int i = 0 ; i < m ; i++) {
if(T[i].t == 1) {
for(int j = T[i].l ; j <= T[i].r ; j++) {
b[j] += T[i].w;
}
}
else {
int count = 0;
for(int j = T[i].l ; j <= T[i].r ; j++) {
if(b[j] > T[i].w) {
flag = 1;
break;
}
if(b[j] == T[i].w) count++;
}
if(!count) {
flag = 1;
break;
}
}
if(flag) break;
}
if(flag) printf("NO\n");
else {
printf("YES\n");
for(int i = 1 ; i <= n ; i++) {
a[i] = min((ll)1000000000 , a[i]);
a[i] = max((ll)-1000000000 , a[i]);
printf("%I64d " , a[i]);
}
printf("\n");
}
return 0;
}
codeforces 361 C. Levko and Array Recovery(暴力+思维)的更多相关文章
- [codeforces 360]A. Levko and Array Recovery
[codeforces 360]A. Levko and Array Recovery 试题描述 Levko loves array a1, a2, ... , an, consisting of i ...
- codeforces 361 D. Levko and Array(dp+二分)
题目链接:http://codeforces.com/contest/361/problem/D 题意:最多可以修改K次数字,每次修改一个数字变成任意值,C=max(a[i+1]-a[i]):求操作之 ...
- Codeforces Round #210 (Div. 2) C. Levko and Array Recovery
题目链接 线段树的逆过程,想了老一会,然后发现应该是包含区间对存在有影响,就不知怎么做了...然后尚大神,说,So easy,你要倒着来,然后再正着来,判断是不是合法就行了.然后我乱写了写,就过了.数 ...
- cf C. Levko and Array Recovery
http://codeforces.com/contest/361/problem/C 这道题倒着一次,然后正着一次,在正着的一次的时候判断合不合法就可以. #include <cstdio&g ...
- codeforces 465 C. No to Palindromes!(暴力+思维)
题目链接:http://codeforces.com/contest/465/problem/C 题意:给出一个不存在2个或以上回文子串的字符串,全是由小写字母组成而且字母下表小于p,问刚好比这个字符 ...
- Codeforces 361D Levko and Array(二分)(DP)
Levko and Array time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- 有意思的DP(CF360B Levko and Array)
刚才面试了一个蛮有意思的DP题目,脑子断片,没写出来,不过早上状态还是蛮好的 一个长度为n的序列最多改变k次,使相邻两数之差绝对值的最大值最小 三维的dp我先尝试写一下 Codeforces 360B ...
- CF360B Levko and Array (二分查找+DP)
链接:CF360B 题目: B. Levko and Array time limit per test 2 seconds memory limit per test 256 megabytes i ...
- [Codeforces 266E]More Queries to Array...(线段树+二项式定理)
[Codeforces 266E]More Queries to Array...(线段树+二项式定理) 题面 维护一个长度为\(n\)的序列\(a\),\(m\)个操作 区间赋值为\(x\) 查询\ ...
随机推荐
- .NET中的值类型与引用类型
.NET中的值类型与引用类型 这是一个常见面试题,值类型(Value Type)和引用类型(Reference Type)有什么区别?他们性能方面有什么区别? TL;DR(先看结论) 值类型 引用类型 ...
- 简单聊聊红黑树(Red Black Tree)
前言 众所周知,红黑树是非常经典,也很非常重要的数据结构,自从1972年被发明以来,因为其稳定高效的特性,40多年的时间里,红黑树一直应用在许多系统组件和基础类库中,默默无闻的为我们提供服务,身边 ...
- 证明线程池ThreadPoolExecutor的核心线程数,最大线程数,队列长度的关系
关于线程池的几个参数,很多人不是很清楚如何配置,他们之间是什么关系,我用代码来证明一下. package www.itbac.com; import java.util.concurrent.*; p ...
- [android视频教程] 传智播客android开发视频教程
本套视频共有67集,是传智播客3G-Android就业班前8天的的课程量.本套视频教程是黎活明老师在2011年底对传智播客原来的Android核心基础课程精心重新录制的,比早期的Android课程内容 ...
- Python3基本数据类型之列表
1.初识列表 列表(List)是Python3中的"容器型"数据类型. 列表通过中括号把一堆数据括起来的方式形成,列表的长度不限. 列表里面的元素可以是不同的数据类型,但是一般是相 ...
- Gin + Vue全栈开发实战(一)
Gin入门 本章概要 Gin简介 开发第一个Gin程序 1.1 Gin简介 Gin是用Go语言编写的一个轻量级Web应用框架,现在在各个公司包括字节跳动.bilibili等大互联网公司都得到了广泛的应 ...
- javaScript基础-03 javascript语句
一. 声明语句 var和function都是声明语句.声明或定义变量或函数. var 声明一个或者多个变量.语法如下: var a ; var b = 1; var c, d; var e = 3; ...
- ServerResponse(服务器统一响应数据格式)
ServerResponse(服务器统一响应数据格式) 前言: 其实严格来说,ServerResponse应该归类到common包中.但是我实在太喜欢这玩意儿了.而且用得也非常频繁,所以忍不住推荐一下 ...
- jmeter之beanshell使用
beanshell官网:http://www.BeanShell.org/ 一.beanshell介绍 是一种完全符合Java语法规范的轻量级的脚本语言: 相当于一个小巧免费嵌入式的Java源代码解释 ...
- 06 css选择器
选择器的作用:选中标签 1.基本选择器 标签选择器 id选择器 class选择器 *通配符选择器 权重:行内样式 1000 > id选择器 100 > 类选择器10 > 标签选择器 ...