feat: 实现P7988题目的DFS解法

添加DFS函数实现题目要求的逻辑,包括处理最大最小值和使用set进行查找
引入新的数据结构deque和set来辅助计算
添加结果数组ans和索引数组nidx存储计算结果
This commit is contained in:
Zengtudor 2025-10-12 23:11:17 +08:00
parent 9d948bead1
commit cb4242a69d

View File

@ -1,15 +1,31 @@
#include <cstdint>
#include <cstdio>
#include <deque>
#include <iostream>
#include <istream>
#include <set>
#include <utility>
using ll = int64_t;
#define sl static inline
const ll maxn = 2e5+5;
ll n, a[maxn];
sl void dfs(){
const ll maxn = 2e5+5,inf=1e9;
ll n, a[maxn],ans[maxn],nidx[maxn];
std::deque<ll> sfl,sfg;
std::set<ll> uused;
enum HL{
HI,LO,N
};
sl void dfs(HL f, ll idx, ll nans, ll max, ll min){
//大了
ll nmax = a[idx];
uused.erase(a[idx]);
if(uused.empty()){
ans[a[idx]-1]=nans;
}else if(auto p = uused.lower_bound(min); p==uused.end()){
}
}
int main(){
@ -19,6 +35,14 @@ int main(){
std::cin>>n;
for(ll i=1;i<=n;i++){
std::cin>>a[i];
nidx[a[i]]=i;
uused.emplace(a[i]);
}
}
uused.erase(a[1]);
dfs(N, 1, 0, -inf, inf);
for(ll i=0;i<=n;i++){
std::cout<<ans[i]<<"\n";
}
}
//TODO