花花的礼物 (huahua)
花花的礼物 (huahua)
花花是个爱动脑子的孩子,在她的生日的时候,她的爸爸给她准备了个礼物。但是,她的爸爸并不想让她轻易得到礼物,他把礼物放在了一个箱子里面,只有输入正确的密码才能打开箱子,而她的爸爸告诉了她这个礼物该怎么得到:
他们所在的城市可以看成有n个点,m条边的无向图,每个点上有一个权值ai,每条边有一个权值w。
我们定义两个点x,y关于k联通当且仅当存在一条从x到y的路径,满足这条路径上的w的最大值小于等于k。
而密码就是和节点x关于k联通的所有节点的ai构成的集合B的summex。
我们定义一个可重复数集B的summex为无法用B集合的子集的和表示的正整数的最小值。
例如,B= {1, 1, 3, 7},他能表示0{},1{1},2{1,1},3{3},4{1+3},5{1+1+3},但是他不能表示6,所以summex{1, 1, 3, 7}是6。
由于她的爸爸有点健忘,他可能会记错,所以会有多组(Q组)询问。对于每组询问,你都要给一个正确的答案。
为了提高难度,我们会对数据加密,对于一个给定的数S,解密输入中的C++代码是:
inline void decode(int &x, int &y){
x = (lstans & S) ^ x;
y = (lstans & S) ^ y;
}
其中的lstans是上次询问的答案。
输入格式
第一行四个整数分别表示n,m,Q,S。
接下来一行n个数,第i个数表示ai。
接下来m行,每行三个数x y w,表示有一条边(x,y),权值是w。
接下来Q行,每行两个整数x k,表示加密前的x和k。
输出格式
Q行,每行一个整数表示答案。
样例
样例输入
【样例输入1】
5 5 5 0
1 2 2 4 5
1 3 1
2 3 4
3 5 2
2 4 3
2 5 5
1 1
1 2
2 3
1 4
5 2
样例输出
【样例输出1】
4
4
1
15
4
solution
先不考虑k的限制。
假设我已经得到了集合S
假设我现在能表示i~la-1,S中<=la的数和为y。
如果y<la,那么la就是答案。否则la=y+1;
线段树查询即可。
考虑离线做法
我们按k排序,从小到大处理加边并询问。
我们对于每一个点都开一颗线段树,连一条边时就线段树合并。
考虑在线
建出kurskal重构树,这样子和每一个点距离<=k的一定在同一课子树里。
对于每一个点,开一个线段树,由他的儿子合并上来。
树上倍增找到深度最小的合法点即可。
最新文章
- [LeetCode] Ones and Zeroes 一和零
- 【WCF】WCF中的InstanceContext与ConcurrencyMode【转】
- Python Day3
- [转]LocalDB数据库修改排序规则,修复汉字变问号
- [异常] MyEclipse Deploy点不开 An internal error occurred during: ";Launching MVC on Tomcat 6.x";. java.lang.NullPointerException
- hbase shell 常用命令
- Servlet&;jsp基础:第四部分
- 301、404、200、304、500等HTTP状态,代表什么意思?
- WP8&mdash;&mdash;页面跳转方法
- JAVA生成PDF文件
- asp.net服务器控件开发系列一
- POJ 1308/并查集
- 服务器证书安装配置指南(SLB)
- R语言-离职率分析
- 深入理解 path-to-regexp.js 及源码分析
- poj-2195(最小费用流)
- 设置和获取cookie
- 分布式缓存技术redis系列(二)——详细讲解redis数据结构(内存模型)以及常用命令
- weblogic 内存配置
- About the Cron Expression
热门文章
- C++使用GDI+实现图片格式转换
- Javascript简单特效及摘要
- Nginx无法加载.woff .eot .svg .ttf等解决办法
- 有一段<;script>;代码,效果是点击<;p>;就会弹出信息,但是有的<;p>;点击会有效果,有的没有效果
- 生产者消费者-Java代码实现
- 【jQuery】输入框自带清除按钮
- 图像压缩函数imagecopyresampled
- RESTful API架构和oauth2.0认证机制(概念版)
- GMT 时间格式转换到 TDateTime (Delphi)
- MPP(大规模并行处理)