首页 > 其他分享 >(区间覆盖问题)P5019 [NOIP2018 提高组] 铺设道路和Educational Codeforces Round 158 (Rated for Div. 2)

(区间覆盖问题)P5019 [NOIP2018 提高组] 铺设道路和Educational Codeforces Round 158 (Rated for Div. 2)

时间:2024-01-21 21:26:00浏览次数:42  
标签:Educational Rated int 158 最大值 Codeforces 区间 Div include

区间覆盖问题

这里Educational Codeforces Round 158 (Rated for Div. 2)b题
[NOIP2018 提高组] 铺设道路两道典型题目,本质是相同的。
这里由于题目多次出现,特此记录。

解题思路:

首先我们得对区间做划分,那么划分思路可以是从小到大也可以是从大到小的异常点来做划分(我这是由大到小),再着我们要对两个区间做处理(就是异常点),最后累加每个区间最大值就ok。
区间最大值 就是要处理一个区间的最多需要次数
假如一组数据为5 3 2 1 4 3,那么就可以划分两个区间 分别为5 3 2 1 和 4 3。我们可以知道第一个区间最大值为5,第二区间最大值为4,但由于它前面那个区间的末尾数不为0,所以我们应该对最大值减去前一个区间的末位数(也就是最小值)得到最大区间值为3。
那么答案就是每个区间最大值累加。

代码如下
#include <iostream>
#include <string>
#include <math.h>
#include <algorithm>
using namespace std;
int a[200001];

int main() {
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		int m;
		long long num = 0;
		cin >> m;
		for (int j = 1; j <= m; j++) {
			cin >> a[j];
		}
		for (int j = 1; j <= m; j++) {
			if (a[j] == 0) {
				break;
			}
			a[j]--;
		}
		for (int j = 1; j <= m ; j++) {
			if (a[j] == 0) {
				continue;
			} else {
				long long  c = a[j] - a[j - 1];
				while (a[j] >= a[j + 1]) {
					j++;//不知道为什么编译器上和cf上没下面那个判断条件也能过
					if(j>m){
						break;
					}
				}
				num += c ;
			}
		}
		cout << num  << endl;
	}
}

标签:Educational,Rated,int,158,最大值,Codeforces,区间,Div,include
From: https://www.cnblogs.com/sdlypsck/p/17978384

相关文章

  • Educational Codeforces Round 161 (Rated for Div. 2)
    基本情况A犯病卡半小时。主要就是太着急,题目没有彻底分析清楚就开始想一些错误做法。C最优想法出来的慢。E比较好想。C.ClosestCitiesProblem-C-Codeforces就,显然是能走最近城市就走,不行就不走。一开始弄了一个自作聪明的预处理,但实际上每次查询还是\(\operatorn......
  • Educational Codeforces Round 161 (Rated for Div. 2)
    A.TrickyTemplate思维有点难转过来,而且当时在C也能匹配c这卡了很久#include<bits/stdc++.h>usingnamespacestd;voidsolve(){ intn; cin>>n; stringa,b,c; cin>>a>>b>>c; intcnt=0; intf=0; for(inti=0;i<n;i++){ if(a[i]!=c[i]&&a......
  • Educational Codeforces Round 161 (Rated for Div. 2)
    题目链接:EducationalCodeforcesRound161(RatedforDiv.2) PS:A开的很快,B读个假题意,C又想歪了,导致E没时间写,最后十分钟开E思路对了但是没时间了,赛后很快过了。。。A.TrickyTemplate题意:定义模板串t与字符串s:1:如果模板串的某一项为小写字母,那么模板串与字符串的该......
  • Educational Codeforces Round 161 (Rated for Div. 2)
    目录写在前面ABCDEF写在最后写在前面比赛地址:https://codeforces.com/contest/1922D没调出来亏炸了,第一次体验赛后五分钟过题的快感。痛苦的大二上终于结束了,本学期一半的痛苦都来自于傻逼大物实验。下学期课少了好多,而且早八和晚八都少的一批,集中上一波分了就。A题面太长......
  • Educational Codeforces Round 161 (Rated for Div. 2)
    EducationalCodeforcesRound161(RatedforDiv.2)比赛链接A.TrickyTemplate思路:貌似只要想到了就可以,我是记录了一下字符串c和字符串a和b之间的满足数,如果等于n表示一定不存在,否则就是存在的Code:#include<bits/stdc++.h>usingnamespacestd;#defineintlonglon......
  • [ARC158D] Equation
    题意给定整数\(n\)以及模数\(p\)。你需要构造三元组\((x,y,z)\)满足:\(1\lex<y<z\lep-1\)\((x+y+z)(x^n+y^n+z^n)(x^{2n}+y^{2n}+z^{2n})\bmodx^{3n}+y^{3n}+z^{3n}(modp)\)Sol注意到你如果将左边的式子化简过后,一......
  • Road Extraction from Remote Sensing Images Using the Inner Convolution Integrate
    landbench里面,李老师提到的encode-decode。remotesensing,大类是2区,小类是2到3区。分类的题目:“利用内部卷积集成编码器-解码器网络和定向条件随机场从遥感图像中提取道路”(pdf)“RoadExtractionfromRemoteSensingImagesUsingtheInnerConvolutio......
  • 矩阵乘法 - CF678D Iterated Linear Function
    CF678DIteratedLinearFunction题意\(f_{i,x}=A\timesf_{i-1,x}+B\)且\(f_{0,x}=x\)求\(f_{n,x}\)。思路这道题的递推关系十分清晰。但由于数据范围大(\(1\leA,B,x\le10^9,1\len\le10^{18}\)),所以这道题只能使用矩阵乘法加速递推。矩阵的构造我们需要构造一个......
  • KY158 找xC
    #include<stdio.h>#include<stdlib.h>intmain(){intn=0;while(scanf("%d",&n)!=EOF){int*A=(int*)malloc(sizeof(int)*n);for(inti=0;i<n;i++){scanf("%d",&A[i]);......
  • KY158 找xC++
    摆了几天,重新再来学习。‘把数据输入数组,然后遍历数组就行了,没什么难度。#include<iostream>#include<cstdlib>usingnamespacestd;intmain(){intn;while(cin>>n){int*A=(int*)malloc(sizeof(int)*n);for(inti=0;i<n;i++){......