自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 HDU 5869 Different GCD Subarray Query(离线处理+树状数组)

题目分析 题意我就不说了,不过可以发现题意简单的题目并没有几道能做出来的。 这题首先可以枚举每一个右端点,我们会发现我们直接可以利用前一个端点求出来的所有gcd,就是gcd(a,b,c)=gcd(gcd(a,b),c)gcd(a,b,c) = gcd(gcd(a, b), c)的思想,又因为一个数的gcd个数其实最多就是这个数的约数个数,其实并不大,分解质因数之后很容易发现。这样我们预处理

2017-04-27 20:45:32 358

原创 POJ 2481 Cows(树状数组)

题目分析 这道题真的是给我wa出血!!主要是因为数组忘了初始化,以后还是要注意这些问题。这道题我以先按E排序从大到小排序,然后按照S从小到大排序,排序完成即可以树状数组求解即可。注意前后2个S,E值相同的情况。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace

2017-04-25 20:58:24 269

原创 hdu 1556 Color the ball(树状数组)

题目分析 这道题我表示可以写的方法真的很多,比如线段树,我以前已经写过了,但是树状数组自己第一次写,树状数组反着推表示自己真的看了好久。前缀和思想#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 1e5+100;i

2017-04-25 19:46:08 244

原创 WOJ The Highest Peak(离线LCA+端点打tag)

题目分析 一眼望去赤裸裸的树链剖分,然而老年人早已经忘了树链剖分如何写了,然后这道题比赛的时候树链剖分会超时,还可能有爆栈。好吧,不纠结这么多了,看一下官方做法吧。这道题因为是一直插入最后求最高点就可以了。我们想一想对于线性序列来说如何要让某个区间增加一个数或者减少一个数我们怎么做。我们可以在区间头增加一个数,在区间尾减少一个数,然后把所有的插入处理完之后直接跑前缀和即可得出结果。这道题同样也是

2017-04-25 09:43:53 319

原创 WOJ Your NP has been charged full(普通dp)

题目分析 现场赛看了这道题并没有写,是因为队友说的题意我理解多了,本来是一个buff三回合之后就没有了,但是我认为只要加上了一个buff那么久一直有这个buff,想dp方程的时候发现有后效性,然后就写不出来了。回来之后重新读题发现一个buff三回合之后消失,那么很明显我们就可以只需知道这回合,上回合以及上上回合选什么buff,然后就可以直接写状态转移方程了,时间复杂度O(n∗33)O(n*3^3

2017-04-25 08:33:24 371

原创 hdu 4055 Number String

题目分析 表示自己这个弱菜写这种dp然后并不会,具体过程看注释吧。/*很巧妙的一道题,是别人写的dp总结给出的一道题,这道题消除后效性非常巧妙,dp[i][j]表示长度为i最后一个数字为j的方法数(请注意长度为i的i个数的大小不超过i)这样我们就可以得出状态转移方程了,但是如果对于前一个状态大于等于当前状态最后一个数字的情况是,这个时候我们将这些数字加1,这样消除后效性。我们用sum

2017-04-23 16:47:49 304

原创 可持久化数据结构之主席树

前序 怀着激动地心情学习了可持久化数据结构主席树,其实很简单,但是自己因为眼残导致一直没有理解。后来发现这个问题,然后手动模拟了一下这个过程,然后大彻大悟。。表示自己就看了无修改的区间第K大,学习自百度巨巨。。本篇博文转自百度巨巨,链接chairman tree引言 首先引入CLJ论文中的定义: 所谓的“持久化数据结构”,就是保存这个数据结构的所有历史版本,同时利用它们之间的共用数据

2017-04-18 21:49:13 604

原创 hdu 6000 Wash(2016 CCPC-Final)

题目分析 这道题一开始拿到真的是不怎么会做,看了别人的贪心解法后来自己才知道怎么做。对于洗衣服的过程我们有L件衣服,我们可以用优先队列每次算出最先洗完衣服的时间,这个处理想必大家都会,当然我也想到了,但是后来的事情没有想到,我并不知道关于烘干衣服如何处理,感觉衣服洗完的时间不一样,烘干不知道怎么处理才是最优解,然后自己就傻了,其实烘干衣服可以跟洗衣服一样的方式处理,我们同样利用优先队列处理出L件

2017-04-16 19:25:17 1085

原创 codeforces 788 A. Functions again(最大连续子序列和)

题目分析 这道题因为n达到了1e5,所以必须要优化,我们可以把所有的abs(f[i]-f[i-1])处理出来,这样因为是正负交替的,这样我们就可以求2遍最大连续子序列和就可以了。时间复杂度O(n).#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;

2017-04-15 15:47:51 325

原创 codeforces 788B Weird journey (欧拉路)

题目分析 这道题读到题面我想到了欧拉通路,欧拉通路是这样的,如果一个图是连通图,并且对于图上的每个点的度数都是偶数,只有2个点的度数是奇数,那么我们可以选择这2个点分别作起点和终点,这样必然存在欧拉路径。本题要求m-2条路走2遍,还有2条路走一遍,因为每一条无向边对应2条有向边,那么很明显每个点的入度都是偶数,这样的话我们只能够选取具有公共节点的边,这样处理过后才会剩下2个奇度节点,同样对于起点

2017-04-15 15:43:08 240

原创 POJ 1236 Network of Schools(强连通分量)

题目分析 这道题首先强连通处理 ,然后求缩点之后的每个点的入度和出度。第一个肯定就是输出入度为0的点,第二个就是输出入度和出度的最大值,因此要保证一个图强连通,那么这个图的每个点肯定既有出去的边也有进来的边。注意当整个图相连通的时候的时候要特判。#include <stack>#include <vector>#include <cstdio>#include <cstring>#in

2017-04-13 19:41:56 192

原创 UVA 11324 The Largest Clique(强连通缩点+记忆化搜索)

题目分析 这道题的意思就是让你找一条路上最长的路径,使得该路上的所有节点均可以达到,注意要么u到达v,或者v到达u。于是我们可以强连通缩点,然后这个图形就转化为一个DAG(有向无环图),然后记忆化搜索一些即可。#include <queue>#include <stack>#include <vector>#include <cstdio>#include <cstring>#inc

2017-04-12 21:08:02 220

原创 UVALive 4287 Proving Equivalences(强连通分量)

题目分析 这道题就是求一个图如果转化为一个强连通图,那么我们首先强连通缩点,然后整个图变成一个有向无环图,然后我们又知道强连通图所有节点的入度和出度都不为0,因此我们只需要求缩点之后的图的入度为0的点和出度为0的点的最大值即可。#include <stack>#include <vector>#include <cstdio>#include <cstring>#include <io

2017-04-12 19:26:09 225

原创 WOJ 26. Lost in WHU(矩阵快速幂变形)

题目Input file: standard input Output file: standard output Time limit: 1 second Memory limit: 512 mebibytes As one of the most beautiful campus in China, Wuhan University is around several hills, s

2017-04-11 13:32:36 418

原创 WOJ 24. Divide by Six

题目分析 一道非常好的dp题,不是很难,但是细节问题很多,比赛的时候瞎搞的,搞了半天没出来,亏我还是队里面写dp的,非常惭愧,比赛的时候一直想着能被6整除的数是一个偶数并且各个数位上的数字相加和mod3等于0,然后写了2个小时,wa了11次,好气呀!!代码上有注释,参考大神解法。#include <cstdio>#include <cstring>#include <iostream>#

2017-04-10 20:08:02 730

原创 UVALive - 5135 Mining Your Own Business(双联通分量)

题目分析 这道题让你求至少需要装多少个escape shafts,并且在满足最少的escape shafts情况下有多少种选择方案。 这样我们就可以对本图求双联通分量,如果如果这个连通分量有2个以及以上割点那么这个连通分量不需要escape shafts,如果只有一个联通分量,那么可以选择一个非割点的escape shafts,那么可以选择的方案数有该连通分量的结点数减1。对于整个图都是一

2017-04-07 19:13:58 268

原创 UVALive - 3523 Knights of the Round Table(双联通分量)

题目分析 这道题是白书上的一道原题,但是思路很巧妙,如果没看分析我做不出来。这里我说一下自己的理解。因为互相讨厌的其实不能坐在圆桌上的相邻位置,那么很明显我们可以在不互相憎恨的骑士中间建立边,这样就转化为了求不在任何一个奇圈上的结点个数。 奇圈上的所有结点必然属于同一个双联通分量,因此第一步是找双联通分量。又因为二分图没有奇圈,因此我们只需要关注不是二部图的双联通分量。 又因为不是二部图所

2017-04-05 20:01:26 288

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除