51nod 1402最大值
1)每个元素都是非负的整数,且s[1]=0;
2)任意两个相邻元素差值的绝对值不大于1,即| s[i]-s[i+1] |<=1;
3)对于部分特殊点xi,要求s[xi]<=ti(这样的特殊点一共M个);
问在以上约束下s[]中的最大值最大可能是多少?
多组测试数据,第一行一个整数T,表示测试数据数量,1<=T<=5 每组测试数据有相同的结构构成: 第一行两个整数N,M,表示s[]的长度与特殊点的个数,其中1<=N<=100000,0<=M<=50. 之后M行,每行两个整数xi与ti,其中1<=xi<=N,0<=ti<=100000,且xi以增序给出。
每组数据一行输出,即数组的可能最大值。
3 10 2 3 1 8 1 100000 0 2718 5 1 100000 30 100000 400 100000 1300 100000 2500 100000
3 99999 2717 nm算法可以过。先初始化a[i] = i-1 ,每输入一个一个xi 和 ti 就更新下a数组。当然也有O(n)和O(m)算法,
1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 1e5+10; 4 int a[N], t, n, m, xi, ti; 5 int main() { 6 ios::sync_with_stdio(false); 7 cin >> t; 8 while(t--) { 9 cin >> n >> m; 10 for(int i = 1; i <= n; i ++) a[i] = i-1; 11 for(int i = 0; i < m; i ++) { 12 cin >> xi >> ti; 13 if(ti >= xi-1) continue; 14 if(a[xi] > ti) { 15 int j = 0; 16 while(xi+j <= n) { 17 if(a[xi+j] > ti+j) { 18 a[xi+j] = ti+j; 19 } 20 j++; 21 } 22 j = 1; 23 while(xi-j >= 1) { 24 if(a[xi-j] > ti+j) { 25 a[xi-j] = ti+j; 26 } 27 j++; 28 } 29 } 30 } 31 int MAX = -1; 32 for(int i = 1; i <= n; i ++) MAX = max(MAX, a[i]); 33 printf("%d\n",MAX); 34 } 35 return 0; 36 }
转载于:https://www.cnblogs.com/xingkongyihao/p/8980747.html
51nod 1402最大值相关推荐
- 51nod 1402 最大值 3级算法题 排序后修改限制点 时间复杂度O(m^2)
代码: 题意,第一个数为0,相邻的数相差0或者1,有一些点有限制,不大于给定值,求这组数中可能的最大的那个数. 这题我们看一个例子:第5个数的限制为2 1 2 3 4 5 6 7 8 9 0 1 2 ...
- linux 通配符 正则表达式 区别,linux 正则表达式和通配符
linux 正则表达式和通配符 通配符用于查找文件 包含三种: * ? [] * 代表任意个任意字符 ? 代表任意一个字符 [] 代表中括号中的一个字符 正则表达式(正则是包含匹配,只要包含就可以匹 ...
- 51nod 1292 字符串中的最大值V2(后缀自动机)
题意: 有一个字符串T.字符串S的F函数值可以如下计算:F(S) = L * S在T中出现的次数(L为字符串S的长度).求所有T的子串S中,函数F(S)的最大值. 题解: 求T的后缀自动机,然后所有每 ...
- 51nod 1270 数组的最大代价
1270 数组的最大代价 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 数组A包含N个元素A1, A2......AN.数组B包 ...
- 51Nod 1640 - 天气晴朗的魔法(最小生成树变形)
题目链接 http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1640 [题目描述] 这样阴沉的天气持续下去,我们不免担心起他的 ...
- 51Nod 1102 面积最大的矩形 +1272 最大距离 单调栈
51Nod 1102 面积最大的矩形 记笔记记笔记:对于区间最值与区间长度/和等的问题,用单调栈来维护区间端点. 这里来补一补单调栈和单调队列的基础知识: 单调栈: ...
- 51nod 1277 KMP 前缀出现次数
51NOD 1277:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1277 跟HDU 6153还挺像的:http://w ...
- 51nod百度之星2016练习赛
今天看了看51nod发现有这样一个练习赛,就做了做.因为实力太弱想不出E题,各位神犇勿D. (5.26UPD:E题想粗来了) A 区间交 不难发现若干线段[li,ri]的交就是[max(li),min ...
- 51Nod:活动安排问题之二(贪心)
有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个室? 输入 第一行一个正整数n (n <= 10000)代表活动的个数. ...
最新文章
- Exchage 2007 Client Application Functions(2) -- 如何收取邮件
- Centos 7 全网备份Rsync
- python中类方法与实例方法的区别-python中类方法,实例方法,静态方法的作用和区别...
- MYSQL的全表扫描,主键索引(聚集索引、第一索引),非主键索引(非聚集索引、第二索引),覆盖索引四种不同查询的分析...
- 关系数据库基础知识介绍
- 计算机一级考试教学设计,《全国计算机一级考试》教学设计说明.doc
- pbl和sbl_谈PBL和SBL教学法结合模式
- 独立站现在好不好做?个人适合做跨境电商独立站吗?
- 企业五大模式,多看两遍你就懂了
- ccs6.0 破解版安装教程 Code Composer Studio安装教程
- mac android 模拟器启动,react-native使用脚本启动android模拟器(macos)
- java打印32位二进制
- 区分Linux:eth0,eth1,eth2,lo
- QQ音乐JS逆向分析参数,爬它,多图预警
- 穿越晋商百年-体验非遗文化
- 华为云服务器快速迁移方案(最多十几分钟)
- TensorFlow学习笔记(1)--TensorFlow简介,常用基本操作
- 【前端】html+css实现鼠标悬浮变色的按钮,消除加粗边框发生抖动现象的两种方法 hover【HTML+CSS+JavaScript(JS)】
- 多商户商城系统功能拆解13讲-平台端会员管理
- 多多情报通:拼多多虚假发货罚款是按什么罚款的?是由什么原因造成的?