首页 > Stack
头像 Kanoon
发表于 2021-07-19 20:35:16
K 题 题解 在数组 中,每个给出的 前一定有一段 的子序列,不妨把这段子序列连续地放在 前,之后判断构造出的数组 是否合法。 数组 合法即 且不存在两个相邻的数后者与前者之差大于 。 之后,考虑 的位置,因为 是最小的,每次出现一定会将栈清空且无法被之后的数清空,所以 一定在 展开全文
头像 Kur1su
发表于 2021-07-19 22:49:52
Description 有一个排列 , 令 表示 中满足 的 的个数,现在给出 个不重复的 和 ,问能否构造一个 排列 符合条件。 Solution (这个做法感觉比拓扑排序好理解)显然对于每一个 ,必须满足 ,那么对于未给出数值的 ,可以考虑先给它们填充上数值,不妨令 ,这样构造能够满 展开全文
头像 ssllyf
发表于 2021-07-19 20:24:23
题目大意 有n个数,依次加进栈中,每次加入前将栈顶比大的所有元素弹掉,加入后记为栈的大小 现在给你b中的一些数,让你求a数组的一种合法方案,其中1~n在a中各出现了一次 解题思路 每次把栈顶比大的所有元素弹掉,使得栈是单调递增的 对于所求a数组,可以先连边,表示该点要比哪个点大,然后跑拓扑序 那么 展开全文
头像 sunny_forever
发表于 2021-07-21 13:51:16
K题题解 法1: 构造拓扑关系 思路:先假设 我们要求的序列 a 为: 1、2、3、...... 、n然后对序列 a 进行题目描述中的单调栈操作, 构造出满足 所给b[i] 的拓扑关系拓扑关系:在这里 指位置间的拓扑关系 ,比如 pos1 指向 pos2 , 代表 a[pos1] 需大于 a[pos 展开全文
头像 哭晕了
发表于 2021-07-22 00:00:01
K题:(搞不懂拓扑排序的超小白讲解)总体思路为利用已知b[i]推出b[i-1]信息,将1-n每个数填充至ans数组构造答案.直接进行代码讲解:首先读入数据,我们用一个book数组来记录当前位置是否有约束,显然当下标小于需要长度或者两者大于n时输出-1 #include<bits/stdc++. 展开全文

等你来战

查看全部