摘要:
(模板)线段树2 题目描述 如题,已知一个数列,你需要进行下面三种操作: 1.将某区间每一个数乘上x 2.将某区间每一个数加上x 3.求出某区间每一个数的和 第一行包含三个整数N、M、P,分别表示该数列数字的个数、操作的总个数和模数。 第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初 阅读全文
摘要:
POJ3666 Making the Grade 题意: 给定一个长度为n的序列A,构造一个长度为n的序列B,满足b非严格单调,并且最小化S=∑i=1N |Ai-Bi|,求出这个最小值S,1<=N<=2000,1<=Ai<=1e9. 引理:在满足S最小化的情况下,一定存在一种构造序列B的方案,使得B 阅读全文
摘要:
CH5101 LCIS 题意: 求两个长度不超过3000的序列的最长公共上升子序列 思路: 朴素解法:用f[i,j]表示a1~ai与b1~bj可以构成的以bj为结尾的LCIS的长度,三重循环求解: for(res i=1 ; i<=n ; i++) for(res j=1 ; j<=m ; j++) 阅读全文
摘要:
P1158 导弹拦截 思路: 按每个点到第一个系统的距离排序,然后预处理出每个点及其之后的点到第二个系统的距离的最大值,再循环一遍枚举答案。 代码: 1 #include <cstdio> 2 #include <iostream> 3 #include <algorithm> 4 #include 阅读全文
摘要:
P1020 导弹拦截 知识铺垫: upper_bound(f+1,f+n+1,key)-f返回在不降序列f中大于key的第一个元素的下标 lower_bound(f+1,f+n+1,key)-f返回在不降序列f中大于等于key的第一个元素的下标 如果要在非升序列(小于和小于等于)中使用这两个函数,就 阅读全文