刷题总结——bzoj2243染色
题目:
题目背景
SDOI2011 DAY1 T3
题目描述
给定一棵有 n 个节点的无根树和 m 个操作,操作有 2 类:
1、将节点 a 到节点 b 路径上所有点都染成颜色 c ;
2、询问节点 a 到节点 b 路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由 3 段组:“11”、“222”和“1”。
请你写一个程序依次完成这 m 个操作。
输入格式
第一行包含 2 个整数 n 和 m ,分别表示节点数和操作数;
第二行包含 n 个正整数表示 n 个节点的初始颜色;
下面 n-1 行每行包含两个整数 x 和 y ,表示 x 和 y 之间有一条无向边。
下面 m 行每行描述一个操作:
“C a b c”表示这是一个染色操作,把节点 a 到节点 b 路径上所有点(包括a和b)都染成颜色;
“Q a b”表示这是一个询问操作,询问节点 a 到节点 b(包括a和b)路径上的颜色段数量。
输出格式
对于每个询问操作,输出一行答案。
样例数据 1
备注
【数据范围】
aaarticlea/png;base64,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" alt="" />
对于测试点 7、8、9、10,树是这样生成的:
随机生成一个 1~n 的排列 p ,设 p1为根。对于2≤i≤n,pi 的父亲为 Prandom(1,i-1),其中 Prandom(a,b)以相等的概率返回 {x∈Z|a≤x≤b}中的一个元素,然后将所有边打乱顺序后作为输入提供给你的程序。
【友情提示】
不允许使用编译开关改变栈空间大小,请选手尽量不要使用递归,以避免堆栈溢出。
题解:
树链剖分题···注意维护线段树时的一些小细节即可
代码:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<cctype>
#include<cstring>
#include<string>
using namespace std;
const int N=1e5+;
int first[N],go[N*],next[N*],son[N],size[N],idx[N],pos[N],father[N],deep[N],top[N],tot;
int color[N],Left[N*],Right[N*],num[N*],cnt,n,m,lazy[N*];
inline int R()
{
char c;int f=;
for(c=getchar();c<''||c>'';c=getchar());
for(;c<=''&&c>='';c=getchar())
f=(f<<)+(f<<)+c-'';
return f;
}
inline void comb(int a,int b)
{
next[++tot]=first[a],first[a]=tot,go[tot]=b;
next[++tot]=first[b],first[b]=tot,go[tot]=a;
}
inline void dfs1(int u,int fa)
{
size[u]=;
for(int e=first[u];e;e=next[e])
{
int v=go[e];
if(v==fa) continue;
father[v]=u;deep[v]=deep[u]+;
dfs1(v,u);
size[u]+=size[v];
if(size[v]>size[son[u]]) son[u]=v;
}
}
inline void dfs2(int u)
{
if(son[u])
{
idx[pos[son[u]]=++cnt]=son[u];
top[son[u]]=top[u];
dfs2(son[u]);
}
for(int e=first[u];e;e=next[e])
{
int v=go[e];
if(v==father[u]||v==son[u]) continue;
idx[pos[v]=++cnt]=v;top[v]=v;
dfs2(v);
}
}
inline void build(int k,int l,int r)
{
if(l==r)
{
num[k]=;
Right[k]=Left[k]=color[idx[l]];
return;
}
int mid=(l+r)/;
build(k*,l,mid);build(k*+,mid+,r);
Right[k]=Right[k*+];Left[k]=Left[k*];
if(Right[k*]==Left[k*+]) num[k]=num[k*]+num[k*+]-;
else num[k]=num[k*]+num[k*+];
}
inline void tag(int k,int c)
{
Left[k]=Right[k]=c;
num[k]=;
lazy[k]=c;
}
inline void pushdown(int k)
{
if(lazy[k]!=-)
{
tag(k*,lazy[k]);
tag(k*+,lazy[k]);
lazy[k]=-;
}
}
inline void modify(int k,int l,int r,int x,int y,int c)
{
if(l>=x&&y>=r)
{
tag(k,c);
return;
}
int mid=(l+r)/;
pushdown(k);
if(x<=mid) modify(k*,l,mid,x,y,c);
if(y>mid) modify(k*+,mid+,r,x,y,c);
Right[k]=Right[k*+];Left[k]=Left[k*];
if(Right[k*]==Left[k*+]) num[k]=num[k*]+num[k*+]-;
else num[k]=num[k*]+num[k*+];
}
inline int query(int k,int l,int r,int x,int y)
{
if(l>=x&&y>=r)
return num[k];
int mid=(r+l)/;
pushdown(k);
int ans=;
if(x<=mid) ans+=query(k*,l,mid,x,y);
if(y>mid) ans+=query(k*+,mid+,r,x,y);
if(Right[k*]==Left[k*+]&&x<=mid&&y>mid) return ans-;
else return ans;
}
inline void modifypath(int a,int b,int c)
{
if(top[a]!=top[b])
{
if(deep[top[a]]<deep[top[b]]) swap(a,b);
modify(,,n,pos[top[a]],pos[a],c);
modifypath(father[top[a]],b,c);
}
else
{
if(deep[a]<deep[b]) swap(a,b);
modify(,,n,pos[b],pos[a],c);
}
}
inline int queryc(int k,int l,int r,int x)
{
if(l==r)
return Left[k];
int mid=(l+r)/;
pushdown(k);
if(x<=mid) return queryc(k*,l,mid,x);
else return queryc(k*+,mid+,r,x);
}
inline int querypath(int a,int b)
{
if(top[a]!=top[b])
{
if(deep[top[a]]<deep[top[b]]) swap(a,b);
if(queryc(,,n,pos[top[a]])==queryc(,,n,pos[father[top[a]]]))
return querypath(father[top[a]],b)+query(,,n,pos[top[a]],pos[a])-;
else return querypath(father[top[a]],b)+query(,,n,pos[top[a]],pos[a]);
}
else
{
if(deep[a]<deep[b]) swap(a,b);
return query(,,n,pos[b],pos[a]);
}
}
int main()
{
//freopen("a.in","r",stdin);
n=R(),m=R();int a,b,c;char s[];
for(int i=;i<=n*;i++)
lazy[i]=-;
for(int i=;i<=n;i++) color[i]=R();
for(int i=;i<n;i++)
{
a=R(),b=R();
comb(a,b);
}
dfs1(,);
pos[]=top[]=idx[]=cnt=;
dfs2();
build(,,n);
while(m--)
{
scanf("%s",s);
if(s[]=='C')
{
a=R(),b=R(),c=R();
modifypath(a,b,c);
}
else
{
a=R(),b=R();
cout<<querypath(a,b)<<endl;
}
}
return ;
}
刷题总结——bzoj2243染色的更多相关文章
- Codeforces刷题计划
Codeforces刷题计划 已完成:-- / -- [Codeforces370E]370E - Summer Reading:构造:(给定某些数,在空白处填数,要求不下降,并且相邻差值<=1 ...
- hdu-5023线段树刷题
title: hdu-5023线段树刷题 date: 2018-10-18 13:32:13 tags: acm 刷题 categories: ACM-线段树 概述 这道题和上次做的那道染色问题一样, ...
- poj-2777线段树刷题
title: poj-2777线段树刷题 date: 2018-10-16 20:01:07 tags: acm 刷题 categories: ACM-线段树 概述 这道题是一道线段树的染色问题,,, ...
- zoj-1610线段树刷题
title: zoj-1610线段树刷题 date: 2018-10-16 16:49:47 tags: acm 刷题 categories: ACM-线段树 概述 这道题是一道简单的线段树区间染色问 ...
- DP刷题记录(持续更新)
DP刷题记录 (本文例题目前大多数都选自算法竞赛进阶指南) TYVJ1071 求两个序列的最长公共上升子序列 设\(f_{i,j}\)表示a中的\(1-i\)与b中色\(1-j\)匹配时所能构成的以\ ...
- 2021.12.16 eleveni的刷题记录
2021.12.16 eleveni的刷题记录 1. 数论 https://www.luogu.com.cn/problem/P2532 1.1卡特兰数 https://www.luogu.com.c ...
- LeetCode刷题系列
LeetCode 我们工作面试和提高自身数据结构和算法能力的时候往往需要刷刷题,我选择LeetCode是通过一个留学论坛了解的.专业,覆盖语种全面. 提前说说刷题的心得: 尽量手写代码,少使用IDE的 ...
- ife任务刷题总结(一)-css reset与清除浮动
本文同时发布于本人的个人网站www.yaoxiaowen.com 百度创办的前端技术学院,是一个面向大学生的前端技术学习平台.虽然只有大学生才有资格报名,提交代码进行比赛排名.但是这并不妨碍我们这些初 ...
- 刷题ING...
我用codeVS刷题.. 努力准备!!
随机推荐
- shell框架
#!/bin/bash#注释#注释#环境变量相关,如下PATH=/sbin:/bin:/usr/bin:/usr/sbin #引入库函数,如下,类似于c语言的#include "*.h&qu ...
- Android串口通信
前段时间因为工作需要研究了一下android的串口通信,网上有很多讲串口通信的文章,我在做的时候也参考了很多文章,现在就将我学习过程中的一些心得分享给大家,希望可以帮助大家在学习的时候少走一些弯路,有 ...
- Linux OpenGL 实践篇-12-procedural-texturing
程序式纹理 简单的来说程序式纹理就是用数学公式描述物体表面的纹路 .而实现这个过程的着色器我们称之为程序纹理着色器,通常在这类着色器中我们能使用的输入信息也就是顶点坐标和纹理坐标. 程序式纹理的优点 ...
- 标注偏置问题(Label Bias Problem)和HMM、MEMM、CRF模型比较<转>
转自http://blog.csdn.net/lskyne/article/details/8669301 路径1-1-1-1的概率:0.4*0.45*0.5=0.09 路径2-2-2-2的概率:0. ...
- Encryption-基础:base64加解密
环境:vc2003 .h /********** This library is free software; you can redistribute it and/or modify it und ...
- luogu愚人节比赛划水记
先放链接:愚人节比赛 说好的 不毒瘤 呢?题目都太神奇了吧! 管理员的脑洞orz T1 这个可以说是蒙数据蒙出来的,直接输出"0",AC T2 本机房dalao成功发现" ...
- shell脚本,文件里面的英文大小写替换方法。
[root@localhost wyb]# cat daxiaoxie qweBNMacb eeeDFSmkl svdIOPtyu [root@localhost wyb]# cat daxiaoxi ...
- React初识整理(五)--Redux和Flux(解决状态传递问题)
Flux 1.引入:在React的应⽤中,状态管理是⼀个⾮常重要的⼯作.我们不会直接对DOM节点进⾏操作,⽽是通过将数据设置给state,由state来同步UI,这种⽅式有个潜在的问题,每个组件都有独 ...
- Codeforces Round #510 #A
http://codeforces.com/contest/1042/problem/A 题目大意就是: 现在公园里有n个长椅(要多长有多长),第i个长椅上有a[i]个人(泰山崩于前而不乱),现在又有 ...
- 组合的输出(DFS)
题目描述: 排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r<=n),我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数. 现要求你用递归的方法输出 ...