mirror of
https://gitcode.com/Zengtudor/alg2025.git
synced 2025-10-17 21:42:25 +00:00
feat: 实现P7988题目的DFS解法
添加DFS函数实现题目要求的逻辑,包括处理最大最小值和使用set进行查找 引入新的数据结构deque和set来辅助计算 添加结果数组ans和索引数组nidx存储计算结果
This commit is contained in:
parent
9d948bead1
commit
cb4242a69d
@ -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
|
Loading…
Reference in New Issue
Block a user