当前位置: 首页 > news >正文

网络爬虫需要自己做网站吗东莞市莞城建筑工程有限公司

网络爬虫需要自己做网站吗,东莞市莞城建筑工程有限公司,来源门户网站源码,仿网站制作教学视频其实题目就是每次询问一个节点 在这个节点的基础上往下继续遍历t的深度&#xff0c;在这个遍历的过程中找一个最大值就行了 其实这个题目数据非常水&#xff0c;直接暴力就可以过了 下面是别人过的代码 #include<bits/stdc.h> using namespace std; const int mxn5e…

其实题目就是每次询问一个节点

在这个节点的基础上往下继续遍历t的深度,在这个遍历的过程中找一个最大值就行了 

其实这个题目数据非常水,直接暴力就可以过了

下面是别人过的代码

#include<bits/stdc++.h>
using namespace std;
const int mxn=5e5+10;
#define ll long long
ll n,m,a[mxn];
vector<ll> v[mxn];
ll dfs(int t,int x){ll ans=a[x];if(t==0) return ans;for(auto i:v[x])ans=max(dfs(t-1,i),ans);return ans;
}
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin>>n;for(int i=1;i<=n;i++) cin>>a[i];for(int x,y,i=1;i<n;i++)cin>>x>>y,v[x].push_back(y);cin>>m;for(int t,x,i=1;i<=m;i++){cin>>t>>x;cout<<dfs(t,x)<<"\n";}return 0;
}

但是我这还是说一下数据结构维护的做法

首先先dfs一次求dfn序,每个节点子树的sz,每个节点的深度dep

然后建一颗可持久化线段树

dep从1-n依次把每个点的权值插入到dfn序中,同时root维护的时当前dep插入完后头节点是啥

也就是在root[x]中已经把dep从1-x中的所有的值插入进去了

然后询问的时候询问在root[min(n, dep[x] + t)] 从dfn[x]到dfn[x] + sz[x] - 1

因为你最深的深度是min(n, dep[x] + t) 此时root已经把低于最深的深度的所以数都插入进去了

dfn序又帮你把询问的区间给确定了

using namespace std;
const int inf = 0x3f3f3f3f3f3f3f3f, N = 5e5 + 5, mod = 1e9 + 7;
int a[N];
vector<int>q[N], e[N];
int cnt, dep[N], dfn[N];
int sz[N];
void dfs(int x, int fa)
{dfn[x] = ++cnt;dep[x] = dep[fa] + 1;sz[x] = 1;for (auto w : q[x]) {if (w == fa) continue;dfs(w, x);sz[x] += sz[w];}
}
struct Tree
{int l, r, mx;
}tr[N*40];
int idx;
int build(int l, int r)
{int p = ++idx;if (l == r) return p;int mid = l + r >> 1;tr[p].l = build(l, mid), tr[p].r = build(mid + 1, r);return p;
}
void pushup(int p)
{tr[p].mx = max(tr[tr[p].l].mx, tr[tr[p].r].mx);
}
int insert(int p, int l, int r, int x,int val)
{int q = ++idx;tr[q] = tr[p];if (l == r) {tr[q].mx = val;return q;}int mid = l + r >> 1;if (x <= mid)  tr[q].l = insert(tr[p].l, l, mid, x, val);else tr[q].r = insert(tr[p].r, mid + 1, r, x, val);pushup(q);return q;
}
int root[N];
int ask(int p, int L, int R, int l, int r)
{if (l <= L && R <= r) {return tr[p].mx;}int mid = L + R >> 1;int mx = 0;if (l <= mid) mx = max(mx, ask(tr[p].l, L, mid, l, r));if (r > mid) mx = max(mx, ask(tr[p].r, mid + 1, R, l, r));return mx;
}
signed main()
{ios_base::sync_with_stdio(0); cin.tie(0), cout.tie(0);int n;cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];}for (int i = 1; i < n; i++) {int u, v;cin >> u >> v;q[u].push_back(v);q[v].push_back(u);}dfs(1, 0);for (int i = 1; i <= n; i++) {e[dep[i]].push_back(i);}root[0] = build(1, n);for (int i = 1; i <= n; i++) {int pre = 0;for (auto w : e[i]) {root[i] = insert(max(root[i - 1],pre), 1, n, dfn[w], a[w]);pre = root[i];}if (root[i] == 0) {root[i] = root[i - 1];}}int m;cin >> m;while (m--){int t, x;cin >> t >> x;cout << ask(root[min(n, dep[x] + t)], 1, n, dfn[x], dfn[x] + sz[x] - 1) << '\n';}
}

http://www.yayakq.cn/news/881289/

相关文章:

  • 现在做个网站要多少钱开发商排名
  • 网站建设交易平台房地产市场规模
  • 建立一个网站需要人员wordpress 单页 多页
  • 门户网站建设工作方案做喜报的网站
  • 网站模糊背景娄底做网站
  • 网站建设方案及报价常见的网站结构
  • 郑州网站建设哪家公司好建筑方案设计作图题
  • 网站建设公司发展建议自己创建app
  • 做网站是什么会计科目注册城乡规划师报名时间
  • aso排名优化江苏搜索引擎优化公司
  • 湖南建设网站南京网站制作公司南京乐识专心
  • 备案号 不放在网站上八零云自助建站免费建站平台
  • 个人公众号做网站个人网站欣赏
  • 两学一做网站视频做网站应该注意些什么
  • 移动电子商务网站建设研究创意灵感
  • 重庆欧勒精细有限公司网站策划书sns社区网站开发
  • 泉州网页网站制作wordpress上传.sh脚本
  • wordpress+资源站模板教育网站制作视频
  • 高校网站建设花费淘宝做网站很便宜
  • 推特登陆 网站建设西宁网站公司
  • 域名注册完成后怎么做网站线上代运营公司
  • 官网的建站过程邯郸网站建设外包
  • 十个源码网站深圳cms建站模板
  • 江苏省高校品牌专业建设网站深圳网站建设及推广服务公司
  • 阿里云的网站建设好不好wordpress删除外链
  • 怎么自己创建网站或者app北京百度seo点击器
  • asp双语企业网站源码常见的网站布局结构
  • 响应式网站 软件百度seo快速排名优化
  • 网站制作好了怎么上传网页制作基础教程步骤
  • 长沙网站制作作西安建设工程交易中心官网