mirror of
https://gitcode.com/Zengtudor/alg2025.git
synced 2025-12-16 12:13:03 +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 <cstdint>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <deque>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <istream>
|
#include <istream>
|
||||||
|
#include <set>
|
||||||
|
#include <utility>
|
||||||
using ll = int64_t;
|
using ll = int64_t;
|
||||||
|
|
||||||
#define sl static inline
|
#define sl static inline
|
||||||
|
|
||||||
const ll maxn = 2e5+5;
|
const ll maxn = 2e5+5,inf=1e9;
|
||||||
ll n, a[maxn];
|
ll n, a[maxn],ans[maxn],nidx[maxn];
|
||||||
|
std::deque<ll> sfl,sfg;
|
||||||
sl void dfs(){
|
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(){
|
int main(){
|
||||||
@ -19,6 +35,14 @@ int main(){
|
|||||||
std::cin>>n;
|
std::cin>>n;
|
||||||
for(ll i=1;i<=n;i++){
|
for(ll i=1;i<=n;i++){
|
||||||
std::cin>>a[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