- 博客(81)
- 收藏
- 关注
转载 (离线树链剖分)HDU - 6162 Ch’s gift
题意:一颗树,q次查询从u到v路径上所有权值在l到r之间的和。分析:一开始想写树上主席树,然后感觉内存不够就放弃。然后想了一个小时,然后发现,询问似曾相识,回忆起一题。然后发现直接离线搞就行了。确切的说这题和HDU4417是完全一样的。将询问排序,然后把小的点加进去,然后查询。至于l和r,将两个分开分别处理就行了嘛。算是比较裸的题了,居然想了这么久。...
2017-08-22 20:41:00
158
转载 (思维题)HDU - 6121 Build a tree
题意:给一颗K叉树,统计所有子树大小的异或和,节点数n和k都小于1e18。分析:比赛时候一开始被公式搞懵逼了,然后队友30分钟就A掉了。昨天自己写了一下,哇好难写,各种bug,什么时候自己的代码能力这么弱了- -。其实也很简单,因为n个节点分成K叉树,最后一层必然出现三种情况。一种是满K叉,一种是不满K叉,还有一种是上一层满叉。只要知道每一层,存在不满K...
2017-08-22 11:17:00
145
转载 (素数暴力筛)HDU - 6069 Counting Divisors
分析:现场的时候,学长A的很快,队友写了一个瞎几把优化的素数筛,C++T了。然后本地试了15组最差数据,跑了6s,然后就用java重写一波,交了之后7sA了。。又学了一招,,C++勉强超时java说不定可过。。不过正解应该在《挑战程序设计》的120-121页,一模一样的数据规模,,学长就是改这个A的。。据说标程也差不多。代码(java,和C++一模一样...
2017-08-04 10:27:00
149
转载 (树链剖分+区间合并)HYSBZ - 2243 染色
题意:两个操作:1、把一条树链上的所有点权值变为w。2、查询一条树链上有多少个颜色段分析:一看就是区间合并,做这到题首先需要一定的区间合并基础,不过这题合并这部分在线段树区间合并中已经算是非常的简单的了。线段树部分没有难度。那么难点在于,在往LCA上走的时候,我们如何进行区间合并。本来我想着, 在向上走的时候顺便进行区间判断并且合并,但是似乎有问...
2017-07-17 22:40:00
146
转载 (树链剖分+线段树)POJ - 3237 Tree
前言:一直听说树链剖分-树链剖分,现在见识一下,,,感觉不是很难0.0看了一下kuangbin模板基本秒懂对于点,按重边优先给予每个点一个编号,对于一条重链上的点,编号则是连续的,将所有编号映射到线段树上,即可进行一切区间操作。对于边的处理,我们将所有边对应到这条边节点更深的那个点上即可。如果需要的操作只有求和,和单点更新/区间更新,直接用树状数组也是可以的,可能常数...
2017-07-16 12:42:00
112
转载 (树上莫队)HDU - 5799 This world need more Zhu
题意:两种询问:1、询问以u为根的子树中出现的a次的数的和与出现b次的数的和的gcd。2、询问u到v的树链中出现的a次的数的和与出现b次的数的和的gcd。有点绕。。分析:因为自己不会树上莫队,所以学习了一波。但是对于子树我还是有所经验,可以转成dfs序来做,之前有做过类似的题,比如这题。然而对于树链有点懵逼,虽然我觉得也能用dfs序做,不过看大佬们的...
2017-07-10 00:09:00
201
转载 (LCA+树上主席树)FZU 2237 - 中位数
题意:多次查询一个树链上的中位数(其实就是求K大)。分析:感觉莫队可做,只是不会树上莫队。。而且这里是边权,处理起来貌似有点小麻烦。。后来发现其实貌似是一个很老的题,,kuangbin模板书上有类似的题。树链上的第K大数,这是一道可以用主席树解的题,复杂度才nlogn。这里也是这样先求从根到每个点的线段树,以为树存在父子关系,所有可以从让下层继承上层的线...
2017-07-09 23:56:00
113
转载 (预处理+莫队算法)HDU - 5381 The sum of gcd
题意:一个长度为n的数列,m次查询L到R之间所有连续子序列的gcd之和。分析:很明显的莫队算法。很明显发现了gcd是单调递减的,并且最多存在32个的性质。想了很久,脑补了许多种方法来拉伸L和R,但是都有漏洞。实际上,这道题还是比较复杂的。。在思考的过程中,我没有充分利用gcd的递减性质。这题其实这题有共通之处,至少在我的做法上是这样的。可以发现,在R向...
2017-07-09 23:48:00
177
转载 (莫队算法)两题莫队算法统计数量的入门题
因为这两题差不多,而且比较简单,就放一起,做了这题,这种题目就是巨水的题了。随便写都行。CodeForces - 86D Powerful array题意:多次查询数列中从L到R每个数字出现次数的平方乘这个数字的和。代码: 1 #include <cstdio> 2 #include <cstring> 3 ...
2017-07-09 23:31:00
108
转载 (莫队算法)CodeForces - 617E XOR and Favorite Number
题意:长度为n的数列,m次询问,还有一个k。每次询问询问询问从数列的L到R内有多少个连续子序列异或起来等于k。分析:因为事先知道这题可以用莫队写,就正好用这题练习莫队。预处理每个前缀异或和。然后莫队按分块排序后,不断更新,用一个数组cnt[]记录当前L到R前缀和的数量。R向右拉,新增的数量就是cnt[pre^k],pre表示当前这个R位置的前缀异或和,然后更...
2017-07-09 23:22:00
103
转载 sublime配置C++14
1 { 2 "cmd": ["g++", "-std=c++11", "${file}", "-o", "${file_path}/${file_base_name}"], // For GCC On Windows and Linux 3 //"cmd": ["CL", "/Fo${file_base_name}", "/O2", "${file}"]...
2017-06-23 16:08:00
279
转载 (dfs序+莫队算法/启发式合并/树分治)Codeforces 375D - Tree and Queries
题意:一颗根为1的树,每个节点有一个颜色,现在有十万次查询,问x的子树中数量超过k的颜色个数有几个。分析:一开始想了一下,朦朦胧胧的觉得dfs一下应该可以做,但是也只是朦朦胧胧,并不知道怎么下手。百度了一下,“好题中的好题”,4解。对于前两种方法,依赖于dfs序。具体的可以自行百度,非常巧妙的东西。至于莫队,首先莫队是个离线算法,用分块搞一下。对所有...
2017-06-13 13:29:00
154
转载 (线段树两个lazy标记需要设定优先级)UVA 11992 - Fast Matrix Operations
题意:一个n*m的矩阵,最多20行,元素总数量不超过1000000,三种操作,子矩阵+v,子矩阵=v,还有查询子矩阵的(最大值,最小值,和)。分析:显然需要懒惰标记,而且需要两个,一个lazy表示赋值的标记,一个add表示增加的标记。而且需要优先级,显然赋值的优先级比增加高。因为如果节点上有add,但是这时候lazy的标记push_down下来,显然过去的已经全都作废...
2017-06-09 00:06:00
114
转载 (线段树区间合并)UVA 11235 - Frequent values
题意:一个数列,多次查询L到R最多连续相同数字的数量。分析:显然区间合并。不过还就没写了,都有点忘了。不过回忆一下,push_down还是写对了。不过WA了,后来仔细想一想,光查询光用已经维护的答案还不够,还需要在query的时候再合并一下,才能更新出正确的答案。代码: 1 #include <cstdio> 2 #include &...
2017-06-08 23:49:00
119
转载 (线段树区间赋值)CSU 1942 - Sort String
题意:一个串(串中只有26个小写字母),选一个区间进行排序,进行100000次,输出最后的串。分析:比赛的时候很懵逼,感觉这题跟之前的额大崩龙有点像,但是没多想,也怪自己太菜了。确实是真的像,甚至是一模一样啊。对于每次排序只需要进行一次类似计数排序的的操作即可,26个字符,进行26次区间赋值即可。理论上时间能过得去。代码: 1 #includ...
2017-06-08 23:32:00
125
转载 (哈希)计算之道初赛第五场 - UCloud 的安全秘钥
这种渣比代码也能A?数据太水了吧。。按长度统一起来算一次滑动窗口的哈希值,sort一下,二分算数量。复杂度应该是sqrt(T)*n*logn吧。自己出个数据都能卡掉。 1 #include <string> 2 #include <cstdio> 3 #include <cstring> 4 #include ...
2017-06-04 14:40:00
115
转载 (字典树3道水题)codeforces 665E&282E&514C
665E题意:给一个数列和一个整数k,求这个数列中异或起来大于等于k的子串数量。分析:其实只要维护一个维护前缀和就行了,把前缀和加到字典树里,然后递归search一下,注意需要剪枝,不然会T,if(s + (1ll << (i + 1)) - 1 < k)return 0;这句话的意思是如果后面的二进制全都是1,都达不到k,就不用继续递归了。...
2017-05-20 18:24:00
111
转载 (树状数组+离线查询)HDU 4417 - Super Mario
题意:给定一个数列,最多10万次查询l到r不超过h的数字的个数。分析:唉,太菜啦。在线做法应该比较明显,区间维护平衡树,用线段树套平衡树,或者分块套平衡树,应该都能A,但是没试过,只是BB,如有错误欢迎指正。其实最方便的做法离线做法,太巧妙啦。把数列按升序排列,把所有查询按h升序排列。每次查询把比h的小的位置标记为1,查询用bit的sum(r)-sum(...
2017-05-20 18:10:00
113
转载 (树形dp+LCA倍增法)CSU 1915 - John and his farm
题意:有一个棵树,现在让你找两个点连接起来,这样必然成为一个环,现在要求这些环长度的期望,也就是平均值。分析:第一次做LCA题,做多校的时候,瞎几把找了模板敲,敲了个八九不离十,只是姿势不太好,需要考虑很多细节。其实我觉得这题最多只能算中等题。因为一直没空,写题解也晚了,已经有很多人写了题解,都写的不错。反正比我厉害。这题用倍增法比较好一些,因为会用到关键点,也就...
2017-05-20 17:59:00
135
转载 (极差最小生成树)POJ 3522 - Slim Span
题意:给定一张无向图,求出一个最长边减最短边最小的生成树。分析:这题之前做过一模一样的(应该是。。。),跑kruskal算法,维护一个subset,一旦出现了环,就删除这条环上最轻的边,不断更新subset,subset中存当前生成树的边,一旦边的个数m=点数n-1,就更新ans。这个复杂度是O(m*n)。但是在这里样例都过不去,应该是写搓了。。。鲁棒性不够。还有一个...
2017-05-20 17:33:00
164
转载 (最小树形图)POJ 3164 - Command Network
题意:给定一个有向图,求以某个给定顶点为根的有向生成树(也就是说沿着这N-1条有向边可以从根走到任一点),使权和最小。分析:这题直接朱刘算法,虽然看起来很偏门,但是还是要学一下。算法过程很多博客都有了,这里就不赘述了。不过貌似CSU1828是朱刘算法+AC自动机,可以刷一刷。代码: 1 #include <cstdio> 2 #...
2017-05-20 17:04:00
87
转载 (ST表+二分+前缀和)CSU 1879 - Hack Protection
题意:给定一个序列,求异或和与按位与和相同的区间有几个。异或和:n个数异或起来。按位与和类似。分析:这才是神题,基础算法大杂烩。问大佬这题的时候,人家只说很不难啊。。只能说自己太菜。由于询问区间个数,自然要快速知道某一个区间的异或和与按位与和。异或和很简单,利用他的性质,直接求前缀和即可。但是按位与没有和加法和异或类似的性质,无法直接求出。但...
2017-04-30 16:46:00
185
转载 (最小生成树/最小瓶颈生成树) 2017武汉现场赛 - Wifi Relay
题意:n个无线AP,有xy坐标属性,现在n个无线AP要桥接在一起不能断开连接,现在要求无线AP无线网络的覆盖半径最小是多少分析:看起来是像是最小生成树,这里是是求生成树中最长的边最短,就是最小瓶颈生成树。可以证明最小瓶颈生成树就是最小生成树,详细看刘汝佳《算法入门经典训练指南》343页。当时现场的时候,想试试最小生成树了,结果以为n方复杂度过不去,就没写,现在想...
2017-04-30 16:19:00
120
转载 (最优比例环)POJ 3621 - Sightseeing Cows
题意:在一个有向加权图中找到一个环,使这个环点权和/边权和 最大分析:一开始还没做过最优比率生成树,但是看到过,两题都A不了。后来看了题解,索性一起撸掉。这题可以用类似最优比率生成树的方法做,二分答案。具体:这个题解讲的很详细了。代码: 1 #include <cstdio> 2 #include <cs...
2017-04-30 16:06:00
103
转载 (最优比率生成树)POJ 2728 - Desert King
题意:很多村子,村子有三维坐标的属性,现在要求一个生成树,使得总高度和总宽度比率最小。分析:很经典的题型,可以使用二分来做,这里引用红书上的【说明】。二分答案,假设最小的答案为best,二分答案为ans,那么我们将每条边的边权变为wi-ui*ans,则:ans<best时,求最小生成树得到的答案>0ans=best时,求最小生成树得到的答案=0...
2017-04-30 15:38:00
85
转载 (最小生成树+技巧)POJ 3625 - Building Roads
题意:平面上有很多点,有些点已经连了起来,现在想让你再连点,使得所有点连通,并且使新连接总距离最小。分析:显然最小生成树,但是不知道怎么处理已经连好的边。看了别人的代码,才想到,直接把已经连好的边的花费赋为0不就行了。因为你只需要弄出最小生成树,而已经在新增边的时候让已经连好的边优先选。代码: 1 #include <cstdio&...
2017-04-23 00:54:00
98
转载 (最短路)POJ 3013 - Big Christmas Tree
题意:有一张有权无向图,编号1的点为根,要求一个生成树,使得总花费sum(每条边的花费×子树所有节点花费的和)最小,输出这个值。分析:自己想了半天,永远离不开生成树上面,因为之前知道这个题是用最短路做的,想了半天也想不通为什么会是用最大路做的。如果放在现场,自己肯定做不出来。其实这题主要的思想转化在于sum(每条边的花费×子树所有节点花费的和)这个公式。这个...
2017-04-23 00:44:00
117
转载 (最大k度限制生成树)POJ 1639 - Picnic Planning
题意:给一个无向带权图,图上有不超过20个人和1个公园,现在这些人想到公园去集合,他们可以直接去公园也可以,和其他人一起坐车去公园(假设他们的车容量无限),但是这个公园停车场只有k个位置,现在要求他们到达公园所需要的总花费。分析:乍一看是最小生成树,但是停车场只有k个位置,所以就限定了公园节点只能最多连k个人,也就是说有一个点的度数是给定了的。想了很久,第一感觉...
2017-04-05 00:52:00
172
转载 (floyd+矩阵快速幂)POJ 3613 - Cow Relays
题意:给一个无向带权图,求从s到t走k次的最短路。分析:一开始没想到,其实应该想到的,看到这种k很大,而且精确k次的题目,第一个一定要考虑快速幂。而这题就是矩阵快速幂,而乘法的过程不是普通乘法,以为给的邻接矩阵表示的花费,所以只有相加才能计算两次走路的花费。而最短路就是运用floyd的思想进行“乘法”。每次乘法求最短路,计算k次,就是矩阵快速幂。代码:...
2017-04-04 17:04:00
157
转载 (最短路深入)POJ 3463 - Sightseeing
题意:给一个有向图,计算最短路和比最短路少1的路的条数的和。分析:这题真的写死我了。因为之前很少接触最短路问题,所谓偶尔遇到一次也是套的模板,根本没有细细思考过dijsktra算法。所以栽在了这题上。这题就是求最短路和次短路。核心思想在于修改最短路松弛的条件,并且每个节点同时维护最短路和次短路。很多博主写的很详细,我也不多说了,只是写个博文记录一下自...
2017-04-04 16:42:00
78
转载 (最短路+A*搜索)POJ 2449 - Remmarguts' Date
题意:给一个DAG,要求s到t的第K短路,很经典的问题。分析:我们可以看到k<=1000,这个值不是很大,我可以想到直接bfs走遍所有情况,最多也就有1000中情况,但是1000个点显然会M。既然是要求k短路,也就是说最终计算出来的到达t的花费必然是递增的,也就是说我们在搜索的时候肯定要用到优先队列。这时应该很明显了,必然需要A*搜索,但是A*的预估函...
2017-04-04 16:21:00
117
转载 (最小生成树唯一性)POJ 1679 - The Unique MST
题意:给定一个无向带权图,判断这个图是否有唯一的最小生成树,如果有输出最小生成树,否则输出Not Unique!分析:模板题,但是对于判断唯一性,有一定的小技巧,先算出整个图的最小生成树,记录这个最小生成树的所有边,然后在整个图中枚举把之前最小生成树删掉一条边,再求最小生成树,一旦出现相同的总权值,就不行了。然后Kruskal算法反正很快,我发现最小生成树的解决...
2017-04-04 16:11:00
177
转载 (生成树)CSU - 1845 Sensor network
题意:有一个n个点m条边的图,每条边有个权值,现在要求此图所有生成树中最大权值和最小权值的差(暂且称为极差)的最小值。分析:如果暴力所有生成树复杂度是O(m^2)必然T,所以需要优化。参考Kruskal算法,把边按权值从小到大排序,一条边一条边的加入,如果发现有环,说明这个环,可以进行优化,使接下来的生成树极差更小(加入的更大),这步优化就是删除这个环里最小的边...
2017-03-25 17:16:00
109
转载 (爬山法)codeforces 782B - The Meeting Place Cannot Be Changed
题意:一条线上有n个人,每个人一个坐标值xi,每个人有一个最大行走速度vi,问如果要让这n个人走到线上某一个点,最少需要多少时间。分析:看起来是二分,二分坐标。后来得知其实是爬山法二分区间变化的条件,一开始感觉是比较当前mid坐标左右人们用最快速度到达的平均时间,后来具体写的时候感觉是比较当前mid坐标左右人们用最快速度到达的最大时间。其实就是后者。...
2017-03-05 23:37:00
95
转载 (转载)ubuntu 搭建wordpress 并用nginx配置代理
下载Wordpresswget http://wordpress.org/latest.tar.gz解压文件包。假设解压至用户的主目录中。tar -xzvf latest.tar.gz创建Wordpress数据库和用户登录MySQLmysql -u root -p创建数据库:CREATEDATABASEwordpress;...
2017-03-04 16:47:00
402
转载 (dfs)codeforces 767C - Garland
题意:一棵树,每个节点有一个权值t,把它分成三部分,每部分要求权值和相等。分析:先可以先算出总大小sum。接着%3看能不能分,不能-1,能继续。然后递归算出每个子树的权值和。一开始想到直接找出两个sum/3就行了,后来发现还会可能有两个分点输出祖辈关系。想到半天,感觉很容易dfs写,,,,然而想了半天不知道怎么写,,好久不写题,自己好辣鸡- -后来想到一种...
2017-02-21 13:41:00
124
转载 配置vscode c/c++像sublime那样按Ctrl+shift+B编译直接运行
需求:最近喜欢折腾各种编辑器。用了vscode官方的c/c++插件,配好launch.json和tasks.json之后用debug还是感觉很不错的。但是感觉对于acm有些用不上,反而不太灵敏,用起来也不太方便。就想配成像subliime自带的那样:1、编译之后直接运行2、可以把输出显示在下面这种过程:考虑到vscode默认ctrl+shift+B是...
2017-02-17 21:25:00
1498
转载 (JAVA)使用swing组件模仿QQ界面+网络编程实现QQ消息传输
直接贴当时的实验报告吧。1、课程题目模仿腾讯QQ实现一个即时聊天软件,可以进行好友管理以及私聊等功能。1.1功能性分类功能类别功能名称、标识符描述用户信息用户登陆用户登陆用户注册用户注册修改密码通过验证后修改密码...
2017-01-02 01:05:00
3421
转载 (dp)hihocoder - 1239 Fibonacci
原题链接:http://hihocoder.com/problemset/problem/1239题意:给一个数列,求构成斐波那契数列的子序列有几个。分析:我们可以在统计的过程中动态加出结果。由于有两个1,我们需要进行一些区分,我们首先定义m[0]表示以第一个1为结尾的斐波那契数列的个数,m[1]表示以第二个1为结尾的斐波那契数列的个数,同理,m[i](i...
2016-12-12 18:02:00
84
转载 (暴力+精度)hihocoder - 1227 The Cats' Feeding Spots
原题链接:http://hihocoder.com/problemset/problem/1227题意:在m个点中找一个点为圆心, 求能够精确包括n个点的最小的半径,要求半径为整数。分析:一开始没看清题意,以为是凭空的一个圆,后来才发现是m个点中的某一个,感觉自己有点sb。。然后想到直接暴力,100*100,暴力每个点,求每个点到它的距离,排个序求出第n个...
2016-12-08 19:57:00
99
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人