bzoj2758【scoi2012】Blinker的的噩梦】的更多相关文章

首先将包含关系建树. 方法是将每个图形拆成上半边和下半边,从左往右扫描线,用Splay从下到上维护扫描线上所有图形. 每次加入一个新的图形$x$的时候,看看它下方第一个图形$y$,如果$y$是上半边,那么$x$的父亲就是$y$,否则是$y$的父亲.用同样的方法可以完成点定位. 然后每次相当于查询两点间的异或和,用树状数组维护dfs序即可. 时间复杂度$O((n+m)\log n)$. #include<cstdio> #include<cmath> #include<algo…
题目大意:有n个圆或凸多边形,这些图形不会相交,每当走入或走出一个图形时需要异或上一个代价,有m组操作: 询问操作,每次询问从一个点走到另一个点时,需要的代价(初始代价为0) 修改操作,每次修改一个图形的代价 数据范围:n≤1e5,点权的绝对值不大于1e9 此题真实毒瘤题 考虑到此题图形之间两两互不相交,那么图形与图形之间的关系为相离或包含,包含关系我们可以将其建成一棵树结构. 我们用set来维护一个以x为第一关键字的扫描线,每次扫描到一个新的图形,我们就将该图形拆成上下两部分(可以理解为左右括…
题目描述 一天Blinker醒来,发现自己成为了一个二维世界的点,而且被标记上了一个奇怪的值. 这个世界是由N个边界互不相交(且不相切)的图形组成,这里图形仅包括圆和凸多边形.每个图形还有一个权值.每次Blinker走进或走出某个图形时(相切时经过不算),Blinker的标记值就会被异或上那个值. 现在,我们记录了Blinker在这个世界的M天的信息.每天可能发生两种事情,一种是某个图形的权值更改为某个值:另一种是Blinker从某个点走到另一个点. 我们假设Blinker首次出发前的标记值为0…
BZOJ AC900题纪念~~ 若K>0,则 设f[i][j]表示i位数字,积为j的数字的个数 g[i][j]表示i位数字,积为j的数字的和 DP+Hash预处理 查询时枚举LCP然后统计贡献 若K=0,则 设f[i][j][k][l]表示已知前i位,乘积是否不为0,是否等于x,是否有数字的数字的个数 g[i][j][k][l]表示已知前i位,乘积是否不为0,是否等于x,是否有数字的数字的和 数位DP即可 #include<cstdio> typedef long long ll; co…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
题目描述 Blinker 有非常多的仰慕者,他给每个仰慕者一个正整数编号.而且这些编号还隐藏着特殊的意义,即编号的各位数字之积表示这名仰慕者对Blinker的重要度. 现在Blinker想知道编号介于某两个值A,B之间,且重要度为某个定值K的仰慕者编号和. 输入格式 输入的第一行是一个整数N,表示Blinker想知道的信息个数. 接下来的N行,每行有三个数,A,B,K.表示 Blinker想知道编号介于A和B之间的,重要度为K的仰慕者的编号和. 输出格式 输出N行,每行输出介于A和B之间,重要度…
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2758 题意:平面上有n个多边形(凸包和圆).任意两个多边形AB只有两种关系:(1)A包含B或者B包含A:(2)AB的公共面积为0.每个多边形有一个值x.m个查询.分两种:(1)修改某个多边形的值:(2)从一点s走到另一点t.每次走出一个多边形或者进入一个多边形时,都要抑或上该多边形的值.输出走到t时的值.(由抑或的性质和本题定义可得这个值跟走的路经无关) 思路:首先我们发现,这些…
2756: [SCOI2012]奇怪的游戏 Time Limit: 40 Sec  Memory Limit: 128 MBSubmit: 3352  Solved: 919[Submit][Status][Discuss] Description Blinker最近喜欢上一个奇怪的游戏. 这个游戏在一个 N*M 的棋盘上玩,每个格子有一个数.每次 Blinker 会选择两个相邻的格子,并使这两个数都加上 1. 现在 Blinker 想知道最少多少次能使棋盘上的数都变成同一个数,如果永远不能变成…
2756: [SCOI2012]奇怪的游戏 Time Limit: 40 Sec  Memory Limit: 128 MBSubmit: 3220  Solved: 886 Description Blinker最近喜欢上一个奇怪的游戏. 这个游戏在一个 N*M 的棋盘上玩,每个格子有一个数.每次 Blinker 会选择两个相邻的格子,并使这两个数都加上 1. 现在 Blinker 想知道最少多少次能使棋盘上的数都变成同一个数,如果永远不能变成同一个数则输出-1. Input 输入的第一行是一…
网络流-最大流 这题……建模部分先略过 这道题是会卡时限的T_T俺的Dinic被卡了,在此放几篇很棒的讲网络流算法的文章,至于大家耳熟能详的论文就不放了…… http://www.cppblog.com/panzhizhou/articles/172978.html?opt=admin 里面的各种超链接也很不错的……       好的来重新更新一下……这题因为要二分,需要多次重建跑最大流,所以不能用像lrj大爷的白书上那样用vector存边(太慢),需用前向星= = 然后……本蒻由于第一次写前向…