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

忠县网站制作photoshop在线修图

忠县网站制作,photoshop在线修图,ps软件是干什么用的,正规代运营公司题意#xff1a;nnn个点mmm条边的无向图#xff0c;qqq次询问#xff0c;每次给定s,t,L,Rs,t,L,Rs,t,L,R#xff0c;判断是否存在一条sss到ttt的路径#xff0c;使得路径上可以找到一点kkk,满足此路径s∼ks\sim ks∼k的部分标号都≥L\geq L≥L且k∼tk\sim tk∼t标号都≤R\…题意nnn个点mmm条边的无向图qqq次询问每次给定s,t,L,Rs,t,L,Rs,t,L,R判断是否存在一条sss到ttt的路径使得路径上可以找到一点kkk,满足此路径s∼ks\sim ks∼k的部分标号都≥L\geq L≥L且k∼tk\sim tk∼t标号都≤R\leq R≤R均包括端点 n,q≤2×105,m≤4×105n,q\leq2\times10^5,m\leq4\times10^5n,q≤2×105,m≤4×105 显然找到sss只走≥L\geq L≥L的点能到达的点集SSS,ttt只走≤R\leq R≤R能到达TTT判断SSS和TTT是否有交即可 分别从大到小和从小到大建出Kruscal重构树发现SSS和TTT是树上的一个子树 什么只有点权怎么建Kruscal重构树 因为你走一条边实际上受到了两个端点的限制所以直接取两个点的min⁡/max⁡\min/\maxmin/max当边权就可以了 然后对SSS和TTT跑dfs序设两个dfs序数组分别为dfsa,dfsbdfsa,dfsbdfsa,dfsb 那么对于uuu点可以映射成平面上的(dfsau,dfsbu)(dfsa_u,dfsb_u)(dfsau​,dfsbu​) 二维数点即可 因为横纵坐标分别互不相同所以写主席树会很清真 注意建Kruscal重构树的虚点不要加到主席树里面否则会出奇怪的问题 复杂度O(nlog⁡n)O(n\log n)O(nlogn) #include iostream #include cstdio #include cstring #include cctype #include algorithm #define MAXN 600005 using namespace std; inline int read() {int ans0;char cgetchar();while (!isdigit(c)) cgetchar();while (isdigit(c)) ans(ans3)(ans1)(c^48),cgetchar();return ans; } struct edge{int u,v;}e[MAXN]; int n,m,q; inline bool cmp1(const edge a,const edge b){return max(a.u,a.v)max(b.u,b.v);} inline bool cmp2(const edge a,const edge b){return min(a.u,a.v)min(b.u,b.v);} inline int Min(const int x,const int y){return xy? x:y;} inline int Max(const int x,const int y){return xy? x:y;} struct KruscalRestructTree {int f[MAXN],fa[MAXN][20],ch[MAXN][2],val[MAXN],cnt;int dfn[MAXN],ed[MAXN],pos[MAXN],tim;int find(int x){return f[x]x? x:f[x]find(f[x]);}inline void init(){cntn;for (int i1;in;i) val[i]i;for (int i1;inm;i) f[i]i;}inline void insert(int u,int v,int m(const int,const int)){ufind(u),vfind(v);if (uv) return;f[u]f[v]fa[u][0]fa[v][0]cnt;ch[cnt][0]u,ch[cnt][1]v;val[cnt]m(val[u],val[v]);}void dfs(int u){if (!u) return;pos[dfn[u]tim]u;for (int i1;i20;i) fa[u][i]fa[fa[u][i-1]][i-1];dfs(ch[u][0]),dfs(ch[u][1]);ed[u]tim;}inline void query(int u,int l,int r,int ql,int qr){if (val[u]ql||qrval[u]) return (void)(l0);for (int i19;i0;i--)if (fa[u][i]qlval[fa[u][i]]val[fa[u][i]]qr)ufa[u][i];ldfn[u],red[u];} }S,T; int ch[MAXN5][2],sum[MAXN5],cnt; int rt[MAXN]; void insert(int x,int y,int l,int r,int k) {xcnt;ch[x][0]ch[y][0],ch[x][1]ch[y][1],sum[x]sum[y]1;if (lr) return;int mid(lr)1;if (kmid) insert(ch[x][0],ch[y][0],l,mid,k);else insert(ch[x][1],ch[y][1],mid1,r,k); } int query(int x,int l,int r,int ql,int qr) {if (qllrqr) return sum[x];if (qrl||rql) return 0;int mid(lr)1;return query(ch[x][0],l,mid,ql,qr)query(ch[x][1],mid1,r,ql,qr); } int main() {nread(),mread(),qread();S.init(),T.init();for (int i1;im;i) e[i].uread()1,e[i].vread()1;sort(e1,em1,cmp2);for (int i1;im;i) S.insert(e[i].u,e[i].v,Min);sort(e1,em1,cmp1);for (int i1;im;i) T.insert(e[i].u,e[i].v,Max);int totS.cnt;S.dfs(tot),T.dfs(tot);for (int i1;itot;i) if (S.pos[i]n) insert(rt[i],rt[i-1],1,tot,T.dfn[S.pos[i]]);else rt[i]rt[i-1];while (q--){int s,t,l,r;sread()1,tread()1,lread()1,rread()1;int lx,rx,ly,ry;S.query(s,lx,rx,l,tot),T.query(t,ly,ry,1,r);if (!lx||!ly){puts(0);continue;}int ansquery(rt[rx],1,tot,ly,ry)-query(rt[lx-1],1,tot,ly,ry);printf(%d\n,!!ans);}return 0; }
http://www.sadfv.cn/news/243083/

相关文章:

  • 网站不被收录的原因网站开发.net
  • 做网站推广托管费用建设网站公司哪个好
  • 淄博做网站58同城推广关键词优化
  • 出国游做的好的网站南京网站开发公司哪家好
  • 响应式网站开发有哪些框架济南电商网站建设
  • 网站建设需要哪些工具与知识手机app用什么软件制作
  • 购物网站html模板下载石油网站编辑怎么做
  • 青岛有没有做网站的网站301做排名
  • 请上传网站应用水印图片建设初级中学网站
  • 网盘建网站宁波公司网站开发
  • 为什么企业建设银行网站打不开宣传商务型的网站
  • 网站建设情况登记表能力建设和继续教育中心网站
  • 商城网站开发费用一般是多少网站增加聊天
  • 杭州公司网站建设电话python破解wordpress
  • 花生壳 建设网站构建网站需要会什么
  • 集团门户网站建设方案长沙网警
  • 网站建设 概念股社交电商怎么入手
  • 58同城 网站建设北京天仪建设工程质量检测所网站
  • 利用帝国软件如何做网站公司网页申请
  • 网站建设实验步骤wordpress快速发文章
  • 事业单位网站后台建设方案wordpress模版下载
  • dedecms视频网站模板贵港建设局网站查询
  • 国外的做的比较优秀的网站有哪些无需注册免费的网站
  • 国外网站建站杭州 电子商务网站建设
  • 关于企业网站建设数据现状分析网站建立有哪些功能
  • 还有哪些方法让网站更加利于seoasp flash网站源码
  • 杭州网站推广宣传女生在建筑公司的职位
  • 企业宣传注册哪些论坛 网站好百度网址大全 官网首页
  • 想做个人域名网站怎么做编程基础知识入门
  • 邯郸论坛网站建设建设旅游网站的价值