- 博客(7)
- 收藏
- 关注
原创 bzoj 4730: Alice和Bob又在玩游戏 线段树合并&博弈论
n居然是10w左右你敢信。。。连爆10+发OJ才发现。 首先给每一个子树一个sg值;考虑当前点所在子树的sg,枚举第一次删哪一个点,那么剩下一些子树,这些子树的xor就是这个后继的值,然后求mex即可。 考虑用线段树合并来维护。用线段树维护某一个要被删除的点在当前点的后继的值,那么更新就相当于全部抑或一个值,打标记维护即可。 查询就贪心向左走即可。AC代码如
2016-12-31 19:16:33 1771
原创 uoj 198: [CTSC2016]时空旅行
一道比较套路的数据结构题。而且写起来也挺顺的。 首先可以发现y和z就是来卖萌的,无视即可。那么考虑一个点(星球)位置为x0,费用为c0,那么询问x到它的总花费为(x-x0)^2+c0=-2x0*x+(c0+x0^2) +x^2,那么我们可以将一个点看做一条直线y=-2x0*x+(c0+x0^2),那么查询就相当于是求在当前空间中所有直线在x点的值的最小值。 直接斜率
2016-12-08 12:53:30 1567
原创 bzoj 4573: [Zjoi2016]大森林 lct
这道题目,黈力给我讲过一个splay维护括号序列的方法,讲道理是很兹瓷的。 但是在uoj上我看到了一个小哥写得超级短。(还跑得很快)。就学习了一下。 首先离线然后从左到右扫树。 给每一个生长节点新建一个点。这样的话,删掉这个生长节点相当于把新建的点连到它之前建的新建的点上;加入这个生长节点相当于把新建的点连到生长节点上。然后对于这颗树中的点,我们可以
2016-12-08 11:21:02 2972
原创 bzoj 3786: 星系探索 splay
bzoj真是坑爹,本地跑的差不多的程序,指针比数组快到不知道哪里去了。 然后我就开始了艰辛的卡常数,最终比很多指针快多辣~~~ 由于有子树移动,那么考虑维护括号序列。也就是dfs入栈为'(',出栈为')',然后'('为正的权值。那么子树移动相当于平衡树的分裂和合并。用splay实现。 PS:求卡常数大神优化代码>.AC代码如下(目前最快的):
2016-12-06 20:21:07 964
原创 bzoj 4725: [POI2017]Reprezentacje ró?nicowe 暴力
第一眼看到这道题目的我是懵逼的。 然而这道题目并不能经得起推敲>.AC代码如下:#include#define ll long long#define N 10005using namespace std;int n,cnt,ans1[N],ans2[N]; ll a[N],c[N];map mp;int calc(int x){ int l=1,r=cnt
2016-12-04 19:53:26 1228
原创 NOIP2016 简要题解
如此水的数据,由于太弱没有AK,真是太菜了。DAY1:T1:这道题我只记得mogician和mengbier了,其余都忘光辣~~~。T2:考场上写了lca后的O(NlogN)的做法,但还是A了。 首先将一个人的跑步拆成两条链,考虑向上走的那一条链(另一条链同理),深度+时间的值是一定的。那么,考虑令这个人出发点x的深度为t,那么x~lca上的深度+观察时间的询问的答案都
2016-12-04 15:25:22 1288
原创 bzoj 4712: 洪水 树链剖分
利用待修改树上两点间gcd的想法,大概YY出了树剖的方法。 然后点开Disscuss,发现了immortalCO(%%%)的做法,发现把自己YY的细节都补充完了,感觉很兹瓷。 然而他说这是经典问题,对此我对自己狭窄的知识面的可怜的鏼题量感到有点内疚。 不过带修的独立集做法还是很兹瓷的!AC代码如下:#include#define ll lo
2016-12-04 15:03:44 1542
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人