首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
洛谷 P2251 质量检测 倍增
2024-11-02
洛谷 P2251 质量检测
题目背景 无 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, A2, ... Am},以及第2至第M + 1件的Q[m + 1], Q[m + 2] ... 最后统计第N - M + 1至第N件的Q[n].根据Q再做进一步评估. 请你尽快求出Q序列. 输入输出格式 输入格式: 输入共两行. 第一行共两个数N.M,由空格隔开.含义如前述. 第二行共N个数,表示N件产品的质量. 输出格
洛谷 P2251 质量检测 题解
P2251 质量检测 题目背景 无 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, A2, ... Am},以及第2至第M + 1件的Q[m + 1], Q[m + 2] ... 最后统计第N - M + 1至第N件的Q[n].根据Q再做进一步评估. 请你尽快求出Q序列. 输入格式 输入共两行. 第一行共两个数N.M,由空格隔开.含义如前述. 第二行共N个数,表示N件产品的质量.
洛谷 P2251 质量检测(st表)
P2251 质量检测 题目提供者ws_ly 标签 难度 普及/提高- 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, A2, - Am},以及第2至第M + 1件的Q[m + 1], Q[m + 2] - 最后统计第N - M + 1至第N件的Q[n].根据Q再做进一步评估. 请你尽快求出Q序列. 输入输出格式 输入格式: 输入共两行. 第一行共两个数N.M,由空格隔开.含义如前述
洛谷—— P2251 质量检测
https://www.luogu.org/problemnew/show/P2251 题目背景 无 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, A2, ... Am},以及第2至第M + 1件的Q[m + 1], Q[m + 2] ... 最后统计第N - M + 1至第N件的Q[n].根据Q再做进一步评估. 请你尽快求出Q序列. 输入输出格式 输入格式: 输入共两行. 第一
洛谷P2251 质量检测
题目背景 无 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, A2, ... Am},以及第2至第M + 1件的Q[m + 1], Q[m + 2] ... 最后统计第N - M + 1至第N件的Q[n].根据Q再做进一步评估. 请你尽快求出Q序列. 输入输出格式 输入格式: 输入共两行. 第一行共两个数N.M,由空格隔开.含义如前述. 第二行共N个数,表示N件产品的质量. 输出格
P2251 质量检测(ST表)
P2251 质量检测 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, A2, ... Am},以及第2至第M + 1件的Q[m + 1], Q[m + 2] ... 最后统计第N - M + 1至第N件的Q[n].根据Q再做进一步评估. 请你尽快求出Q序列. 输入输出格式 输入格式: 输入共两行. 第一行共两个数N.M,由空格隔开.含义如前述. 第二行共N个数,表示N件产品的质量.
洛谷P3379lca,HDU2586,洛谷P1967货车运输,倍增lca,树上倍增
倍增lca板子洛谷P3379 #include<cstdio> struct E { int to,next; }e[]; ],anc[][],log2n,deep[],n,m,s,ne; ]; void dfs(int x,int fa) { int i,k; vis[x]=; anc[x][]=fa; deep[x]=deep[fa]+; ;i<=log2n;i++) anc[x][i]=anc[anc[x][i-]][i-]; ;k=e[k].next) if(!vis[e[k].
P2251 质量检测--洛谷luogu
传送门 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, A2, ... Am},以及第2至第M + 1件的Q[m + 1], Q[m + 2] ... 最后统计第N - M + 1至第N件的Q[n].根据Q再做进一步评估. 请你尽快求出Q序列. 输入输出格式 输入格式: 输入共两行. 第一行共两个数N.M,由空格隔开.含义如前述. 第二行共N个数,表示N件产品的质量. 输出格式:
洛谷P2251 【质量检测】
无意中刷st表题看到的题目(抄模板),一看到题目,,,没想用st表,直接莫队?????跑起来也不是特别慢... 这里用flag数组记录出现次数,set维护最小值,用的时候直接取头部. 代码也很短 #include<bits/stdc++.h> #define swap(a,b) {a^=b;b^=a;a^=b} #define rep(a,b,c) for(int a=b;a<=c;a++) #define per(i,n,a) for (int i=n;i>=a;i--) #de
[LUOGU] P2251 质量检测
题目背景 无 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, A2, ... Am},以及第2至第M + 1件的Q[m + 1], Q[m + 2] ... 最后统计第N - M + 1至第N件的Q[n].根据Q再做进一步评估. 请你尽快求出Q序列. 输入输出格式 输入格式: 输入共两行. 第一行共两个数N.M,由空格隔开.含义如前述. 第二行共N个数,表示N件产品的质量. 输出格
洛谷P3295 萌萌哒 [SCOI2016] 倍增+并查集
正解:倍增+并查集 解题报告: 传送门! 首先不难想到暴力?就考虑把区间相等转化成对应点对相等,然后直接对应点连边,最后求有几个连通块就好辣 然后看下复杂度,修改是O(n2)查询是O(n),就比较容易想到能不能通过一些技巧变成都是O(nlogn)的,再结合数据范围发现nlogn的复杂度似乎是对的 然后发现我们用的并查集嘛,并查集就有可合并性昂,看到有可合并性的,就要想到几种算法——倍增/线段树/balabala 但是可以发现线段树是不欧克的,因为线段树一定要按二进制划分开来,就会导致两个子节点的
洛谷P1081 开车旅行(倍增)
题意 题目链接 Sol 咕了一年的题解.. 并不算是很难,只是代码有点毒瘤 \(f[i][j]\)表示从\(i\)号节点出发走了\(2^j\)轮后总的距离 \(da[i][j]\)同理表示\(a\)的距离,\(db[i][j]\)与\(da\)同理 倍增优化一下 注意最后\(a\)可能还会走一次 #include<bits/stdc++.h> #define Pair pair<int, int> #define MP make_pair #define fi first #def
洛谷P1967货车运输——倍增LCA
题目:https://www.luogu.org/problemnew/show/P1967 就是倍增LCA的裸题,注意一些细节即可. 代码如下: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ,MAXM=,inf=1e9; ],mn[MAXN][],ct1,ct=,head[MAXN]; int fa[MAXN],
洛谷 P1081 开车旅行 —— 倍增
题目:https://www.luogu.org/problemnew/show/P1081 真是倍增好题! 预处理:f[i][j] 表示从 i 点开始走 2^j 次 AB (A,B各走一次)到达的点: sta[i][j] 表示从 i 点开始走 2^j 次 AB 后 A 走过的总路程:stb 为 B 的: 首先要找到 2^0 位置上的,也就是右边最近的和次近的点: 先把点按海拔排序,那么最近点和次近点一定在 i-2 , i-1 , i+1 , i+2 这四个位置: 又不能找到 i 之前的点,
洛谷 P1613 跑路 (倍增 + DP + 最短路)
题目链接:P1613 跑路 题意 给定包含 \(n\) 个点和 \(m\) 条边的有向图,每条边的长度为 \(1\) 千米.每秒钟可以跑 \(2^k\) 千米,问从点 \(1\) 到点 \(n\) 最少需几秒. 思路 倍增 DP Floyd 令 \(dp[i][j][k]\) 表示从 \(i\) 到 \(j\) 是否存在长度为 \(2^k\) 的路径. 那么如果 \(dp[i][t][k - 1]\) 和 \(dp[t][j][k - 1]\) 都为 \(1\) 则 \(dp[i][j][k]\
【luogu P2251 质量检测】 题解
也是一道ST表的板子题,很裸的RMQ问题,只需要在查询区间时处理一下下就好啦~ #include <cstdio> #include <algorithm> using namespace std; + ; ], a[maxn], ans[maxn]; int n, m, i, j, left, right; int main() { scanf("%d%d", &n, &m); ; i <= n; i++) { scanf("%
洛谷1613 跑路 倍增 + Floyd
首先,我们一定要认识到本题中的最短时间所对应的道路不一定是在起点到终点的最短路.例如,起点到终点的最短路为 151515 ,那么对 151515 进行二进制拆分的话是 111111111111 ,这时求出的最短时间为4.然而如果有一条长度为 161616 的路径的话最短时间就为 111,显然比之前求的更优 . 我们在这里定义两个数组: intintint d[i][j]d[i][j]d[i][j],即代表点 (i,j)(i,j)(i,j) 之间的最短跑步时间. boolboolbool g[i]
洛谷P2680 运输计划(倍增LCA + 树上差分 + 二分答案)
[题目链接] [思路]: 根据题意可以明显看出,当所有任务都完成时的时间是最终的结果,也就是说本题要求,求出最小的最大值. 那这样的话就暗示了将答案二分,进行check. [check方法]: 如果说当前答案为ans,每个任务设为p[i],所花费的时间是p[i].tim,所有任务p[i].tim的最大值为maxdis 那么则将符合条件p[i].tim>=ans的数量num求出来,这个数量也就是符合条件的路径的数量(一个任务在u,v之间有一个简单路径很容易理解), 然后找到一个所有路径中他们的公共
【做题笔记】P2251 质量检测
一看题就知道是线段树裸题了.可是,对于每个 \(i\) ,对应的 \(Q\) 序列的下标是多少呢?应该查询的区间又是什么呢? 找规律: \(i\ \ \ \ \ \ \ \ m\) \(1\ \Rightarrow\ m\) \(2\ \Rightarrow\ m+1\) \(3\ \Rightarrow\ m+2\) \(......\) \(i\ \Rightarrow\ m+i-1\) 所以需要查找的区间是 \([i,m+i-1]\) 参考代码: #include <iostream>
洛谷P4180 [Beijing2010组队]次小生成树Tree(最小生成树,LCT,主席树,倍增LCA,倍增,树链剖分)
洛谷题目传送门 %%%TPLY巨佬和ysner巨佬%%% 他们的题解 思路分析 具体思路都在各位巨佬的题解中.这题做法挺多的,我就不对每个都详细讲了,泛泛而谈吧. 大多数算法都要用kruskal把最小生成树弄出来,因为要求次小生成树.至于为什么次小一定只在最小的基础上改变了一条边,我也不会严谨的证明......打表找规律大法好 剩下的可以有一堆数据结构来维护最大值和次大值(原理两位巨佬都讲清楚了,这里只分析一下算法的优劣) kruscal+倍增+LCA 山楠巨佬的做法,我也写了这一种.复杂度\(
热门专题
sql代理无法启动 错误1067
api 模拟提交在线
linux openssl生成自签名证书
阿里云天池大赛赛题解析—深度学习pdf
显示dialog对话框的方法
vbnet app开发
plsql远程连接时报不能加载oci.dll
Fpdi生成中文文件名
BUUCTF [第五章 CTF之RE章]BabyLib
中兴b860AV1.1二维码破解
adt bundle安装教程
css子元素继承未定义高度的父元素
使用edb调试坏字符
取消unity打包压缩
arcengine投影转十进制
windows 2008 server的安装与配置
虚拟机上运行jar包的命令
win2012 故障转移集群 MSSQL
php include 文件夹
elementui引入腾讯地图