06 2016 档案

摘要:听说树上莫队只能搞子树询问? http://codeforces.com/blog/entry/43230 这篇运用了一个奇技淫巧把它扩展到了路径询问。现在主要就解(fan)释(yi)一下那篇博客。 A. 子树树上莫队 现在有一棵树,有n个节点,节点有点权,每次询问一个子树内的不重复数个数。 1#include #include #include #include #include #i... 阅读全文
posted @ 2016-06-29 17:32 fjzzq2002 阅读(2678) 评论(2) 推荐(0) 编辑
摘要:辣鸡出题人,毁我比赛,颓我精神,耗我钱财,废我青春。 去年成绩惨不忍睹就不说了...好像是100+80+0+100+50+60。 大概列一下算法。 幻方:模拟 #include #include #include #include using namespace std;int n,mat[50][50],px,py;#define FO(s) {freopen(#s".in","r... 阅读全文
posted @ 2016-06-28 22:54 fjzzq2002 阅读(345) 评论(0) 推荐(0) 编辑
摘要:喜闻乐见的提答题,这道题还是蛮有趣的数据结构题写得心塞,来一道提答意思意思如果喜欢这类题的话还可以去做做uoj83。这题是给出了两个问题,一个最短路,一个无向图染色问题。Data 1Floyd VS Dijkstra嗯107个整数,我们只要给一个n=101,下面一坨0 Floyd就狗带了#include #include using namespace std;int main(){ pri... 阅读全文
posted @ 2016-06-27 21:52 fjzzq2002 阅读(1228) 评论(0) 推荐(0) 编辑
摘要:有一些无向边,要求给每条边的两端点染成黄色和绿色且两端点染成的颜色不同,使得连向每一个房间绿端点的数量与黄端点的数量之差不超过1。没有重边。1#include #include #include #include #include using namespace std;int n,he[233][233],M=0;int col[233][233];typedef vector vec;vec ... 阅读全文
posted @ 2016-06-18 17:15 fjzzq2002 阅读(281) 评论(0) 推荐(0) 编辑
摘要:模板可以在上一篇文章中找到。 因为最近都没有做codeforces,所以这篇文章的主要题目来源就是codeforces啦~ 需要这类题目可以在codeforces上找到hashing、string suffix structures之类的标签。 这些题目都是随便点的,所以有些题目和字符串并没有太大的关系 CF653F Paper Task(非常规比赛) 给一个长度为n的由左右括号做成的字... 阅读全文
posted @ 2016-06-17 22:45 fjzzq2002 阅读(691) 评论(0) 推荐(0) 编辑
摘要:后缀数组 //by zzq//改进后的后缀数组模板 #include #include #include #include #include #include #include #include #include using namespace std;#define SZ 2333333#define P 20int n,k,sa[SZ],t[SZ],rank[SZ],qzh[SZ],t... 阅读全文
posted @ 2016-06-15 22:30 fjzzq2002 阅读(454) 评论(0) 推荐(0) 编辑
摘要:参考链接: http://blog.sina.com.cn/s/blog_51cea4040100h3l9.html 这篇主要就是讲anti-sg、multi-sg和every-sg的。 例1 poj3537 有一个长度为n的一维棋盘,两人轮流下子,如果一个人下了连在一起的三个子就立刻赢了,如果一个人下不了子了他就输了。3#include #include using names... 阅读全文
posted @ 2016-06-14 19:10 fjzzq2002 阅读(424) 评论(0) 推荐(0) 编辑
摘要:给一个无向图和s、t,每次删掉一条边,询问每次删除后s到t的最短路是否改变。询问互相独立。 从s、t分别跑最短路建出最短路网,然后在最短路网上找割边。 询问的边如果在最短路网上且是割边就改变了,否则不变。 #include #include #include #include #include using namespace std;#define SZ 456789int n;nam... 阅读全文
posted @ 2016-06-11 18:27 fjzzq2002 阅读(1313) 评论(0) 推荐(0) 编辑
摘要:给一个长度为n的数列a,q个询问,每次询问一段区间的mex。(没有出现过的最小非负整数) 1#include #include #include #include using namespace std;#define SZ 666666int n,q,a[SZ],ts[SZ],tc[SZ],gg,bk,anss[SZ];void edt(int p,int x){ tc[p/gg]-=... 阅读全文
posted @ 2016-06-10 17:42 fjzzq2002 阅读(526) 评论(0) 推荐(0) 编辑
摘要:这个标题是不是看起来很厉害呢... 我们首先来看一个最简单的游戏。比如我现在有一堆石子,有p个,每次可以取走若干个(不能不取),不能取的人就输了。 现在假设有两个人要玩这个游戏,一个人先手,一个人后手,假设两个人都是足够聪明的AI,那么谁会赢? 显然p≠0时先手赢,他只要全部取完就行了... 我们先不管这个游戏有多傻逼,我们看一看这个游戏所隐含的模型。 比如我们把当前游戏局面抽象成一个点... 阅读全文
posted @ 2016-06-09 21:29 fjzzq2002 阅读(584) 评论(0) 推荐(0) 编辑
摘要:强行一波题解骗一个访问量好了... http://blog.csdn.net/yanqval/article/details/51457302 http://absi2011.is-programmer.com/posts/200822.html http://absi2011.is-programmer.com/posts/200920.html orz js省队神犇↑ Day1 ... 阅读全文
posted @ 2016-06-08 22:39 fjzzq2002 阅读(494) 评论(0) 推荐(0) 编辑
摘要:还是虚树的题目啊... 如果只有一个询问,我们这么考虑,可以设dp[x]为只删除x子树内和x到父亲的边,使得x这棵子树内的能源岛屿都与x的父亲不连通的最小花费。 这样如果x本身是能源岛屿,那么dp[x]=fe[x],否则dp[x]=min(fe[x],sum{dp[son[x]]})类似这样。(fe表示父亲边,fe[1]=inf) 那么有了多组询问我们就在虚树上搞这个,需要注意的是虚树上的一... 阅读全文
posted @ 2016-06-07 23:03 fjzzq2002 阅读(264) 评论(0) 推荐(0) 编辑
摘要:正常版,输入输出优化比较正常,无论是scanf/printf/cin/cout都可以混用用法:int x=gi; pint(x); 类似这样。#define gc getchar()int g_i(){ int tmp=0; bool fu=0; char s; while(s=gc,s!='-'&&(s'9')) ; if(s=='-') fu=1; else tmp=s-'0... 阅读全文
posted @ 2016-06-06 17:41 fjzzq2002 阅读(2292) 评论(0) 推荐(0) 编辑
摘要:感觉又开了一个天坑真是开心... 还是先贴神犇链接补充阅读吧: http://lazycal.logdown.com/posts/202331-bzoj3572 http://www.cnblogs.com/wuyuhan/p/5521249.html 例题 bzoj3572 世界树 给定一棵树,有若干个询问,每次给定m个点,每个点都被这m个点中最近(距离相同,编号小的近)的点管辖。问m... 阅读全文
posted @ 2016-06-05 13:49 fjzzq2002 阅读(7739) 评论(1) 推荐(8) 编辑
摘要:bzoj3293 分金币 环形均分纸牌,求最小交换次数。 (三倍经验:1045 1465权限) 设di为每一个人应该获得/给出多少金币,设第一个人给了第n个人k个金币。 那么可以知道答案等于$\sum_{i=1}^n{|\sum_{j=1}^i{d_j}-k|}$。 于是我们只要求出中位数作为k即可 阅读全文
posted @ 2016-06-04 16:48 fjzzq2002 阅读(525) 评论(0) 推荐(0) 编辑