博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[IOI2018] werewolf 狼人
阅读量:5126 次
发布时间:2019-06-13

本文共 1626 字,大约阅读时间需要 5 分钟。

(其实原题强制在线,要用主席树)

代码:

注意:

1.下标从0~n-1

2.kruskal重构树开始有n个节点,tot从n开始,++tot

#include
#define reg register int#define il inline#define numb (ch^'0')using namespace std;typedef long long ll;il void rd(int &x){ char ch;x=0;bool fl=false; while(!isdigit(ch=getchar()))(ch=='-')&&(fl=true); for(x=numb;isdigit(ch=getchar());x=x*10+numb); (fl==true)&&(x=-x);}namespace Miracle{const int M=400000+5;const int N=400000+5;const int inf=0x3f3f3f3f;int n,m,Q;struct edge{ int x,y; int val;}b[M];bool cmp0(edge a,edge b){ return a.val
b.val;}int fafa[2*N];struct kruskal{ struct node{ int nxt,to; }e[2*N]; int hd[2*N],cnt; int fin(int x){ return fafa[x]==x?x:fafa[x]=fin(fafa[x]); } void add(int x,int y){ e[++cnt].nxt=hd[x]; e[cnt].to=y; hd[x]=cnt; } int tot; void build(int typ){ for(reg i=1;i<=n;++i){ if(typ) val[i]=inf; else val[i]=-inf; } tot=n; for(reg i=1;i<=m;++i){ int k1=fin(b[i].x),k2=fin(b[i].y); // cout<<" edge "<
<<" "<
<<" :: "<
<<" "<
<
=0;--j){ if(fa[p][j]){ if(val[fa[p][j]]<=lim) p=fa[p][j]; } } return p; }else{ //go >=lim for(reg j=19;j>=0;--j){ if(fa[p][j]){ if(val[fa[p][j]]>=lim) p=fa[p][j]; } } return p; } }}kt[2];//0:min tree;1:max tree;int num;struct po{ int x,y; bool friend operator <(po a,po b){ return a.x

 总结:

kruskal重构树,就是考虑在经过边权在一定范围内到达的区域的点的情况

这里就是简单查询连通性

两个重构树判交的“二维数点”问题的转化很巧妙!

 

转载于:https://www.cnblogs.com/Miracevin/p/10359586.html

你可能感兴趣的文章
vs code 的便捷使用
查看>>
用户空间与内核空间,进程上下文与中断上下文[总结]
查看>>
JAVA开发环境搭建
查看>>
Visual Studio基于CMake配置opencv1.0.0、opencv2.2
查看>>
SDN第四次作业
查看>>
django迁移数据库错误
查看>>
Data truncation: Out of range value for column 'Quality' at row 1
查看>>
字符串处理
查看>>
HtmlUnitDriver 网页内容动态抓取
查看>>
ad logon hour
查看>>
罗马数字与阿拉伯数字转换
查看>>
Eclipse 反编译之 JadClipse
查看>>
距离公式汇总以及Python实现
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
[ JAVA编程 ] double类型计算精度丢失问题及解决方法
查看>>
好玩的-记最近玩的几个经典ipad ios游戏
查看>>
PyQt5--EventSender
查看>>
Sql Server 中由数字转换为指定长度的字符串
查看>>