首页 > 区间翻转
头像 tsoh_herb
发表于 2026-02-01 00:06:30
这应该是这道题最易懂的题解了题意粗解:我们想要对一段连续递增的序列1,2,3...n进行[l, r]区间k次翻转,其中翻转区间可以不同。暴力枚举:我们很容易想到进行暴力枚举,即将每次将序列[l,r]区间进行枚举,将其进行翻转。利用reverse即可做到这一点。但显然,时间复杂度为o(n*k),在 n 展开全文
头像 此在Dasein
发表于 2025-11-17 02:09:03
1. 关键观察 记第 i 个区间为 Ii = [li , ri](li ≤ ri)。 因为 li , ri 都是单调不降的,任意两区间 不可能相交(即不会出现 li < lj ≤ ri < rj 的情形),只能在右侧出现以下两种情形: 左间隙 li > l{i‑1} → 位置 l 展开全文
头像 Ldh1315109
发表于 2025-11-09 12:00:51
def solve(testcase): n, k = MI() q = deque() cur = 1 res = [] cl, cr = 0, 0 flag = True for _ in range(k): l, r = 展开全文
头像 yeyuege
发表于 2025-11-15 19:05:02
#include <deque> #include <iostream> using namespace std; int main() { int n, k; cin >> n >> k; int last = 1, pos 展开全文
头像 周康禧
发表于 2025-12-04 16:54:03
#include <bits/stdc++.h> using namespace std; using ll = long long int; using ld = long double; using PII=pair<ll,ll>; using PIII=pair< 展开全文
头像 BaiJay
发表于 2025-12-06 14:20:21
#include <bits/stdc++.h> #define int long long using namespace std; #define endl '\n' void work() { int n , k ; cin >> n >> k ; 展开全文
头像 LH_Coffee
发表于 2026-01-31 16:02:19
#include <bits/stdc++.h> using namespace std; int main() { int n,k,add=1,fill=1; cin>>n>>k; vector<int>ans(n+1,0); 展开全文
头像 xiaowang5242
发表于 2025-12-23 21:10:37
struct Nd { int val, pri, sz; bool rev; Nd *l, * r; Nd(int _v = 0, int _p = 0): val(_v), pri(_p), sz(1), rev(0), l(0), r(0) {} }; int 展开全文
头像 cccccrrccccc
发表于 2025-11-13 23:00:58
#include <bits/stdc++.h> using namespace std; typedef long long int ll; int main() { std::ios::sync_with_stdio(false); std::cin.tie(0); 展开全文
头像 自由的风0450
发表于 2025-11-16 15:25:03
#include <iostream> #include<vector> #include<deque> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie 展开全文

等你来战

查看全部