自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux学习的第一步——安装搜狗输入发

这是第一次用Linux系统,没想到装个输入法都那么难,搞了一上午才弄成。太菜了。      现在装成了,感觉也不是很难也就两三个命令。只是不明白,看来还是差很多啊;要加倍学了。      写个一个博客记录一下,方便自己以后装其他软件。    我也是看了一个大牛的讲解,才懂的(其实看了好多,基础太差,都不会弄)。      我的这个Ubuntu16.04的自带商店中没有搜狗输入法所以就麻

2017-01-04 00:27:53 444

转载 HDU 4778 Gems Fight!(13年杭州区域赛-I题-博弈DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4778题意:有 G 种颜色的宝石,放在 B 个袋子里(每种颜色可以放多个)。两人轮流选袋子(每个袋子只能被选 1 次),每次将选出来的袋子中的宝石放到 cooker 中,cooker 可能会起反应。反应条件是 cooker 中出现 S 个一样颜色的宝石,而且一旦起反应,每 S

2015-12-07 21:34:27 712

原创 POJ 2449 Remmarguts' Date(k限最短路)

题目链接:http://poj.org/problem?id=2449题意:给出起点和终点, 找从起点到终点的第K短路, 如果起点与终点相同, 也要出去走一圈才能算最短路。#include#include#include#include#includeusing namespace std;const int inf = 0x3f3f3f3f;const int maxn

2015-11-10 21:09:57 373

原创 HDU 5052 Yaoge’s maximum profit(树链剖分——点权,区间合并)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5052题意:给出一棵树,每个点有商店,每个商店都有一个价格,Yaoge每次从x走到y都可以在一个倒卖商品,从中得取利益,当然,买一顶要在卖之前。但是没次走过一条路,这条路上的所有商品都会增加一个v。输出每次的最大利益。分析:这道题,首先考虑一条链的版本,我们用线段树来维护

2015-11-06 20:52:14 357

原创 POJ 3237 Tree(树链剖分——边权)

题目链接:http://poj.org/problem?id=3237分析:练手题, 做模板。#include#include#include#includeusing namespace std;#define lson l, m, rt<<1#define rson m+1, r, rt<<1|1const int maxn = 1e4 + 100;int Add

2015-11-05 21:41:46 385

转载 HDU 5550 Game Rooms(DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5550转载地址:http://blog.csdn.net/snowy_smile/article/details/49618219题意:T(100)组数据;对于每组数据,有n([2,4000])层楼。对于第i层楼,有女生num[0][i]个,男生num[1][i]个。(1_分析:首先

2015-11-05 12:31:21 659 1

转载 HDU 5514 Frogs

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5514题目描述:  有n只青蛙,m个石头(围成圆圈)。第i只青蛙每次只能条ai个石头,问最后所有青蛙跳过的石头的下标总和是多少?解题思路:  第i只青蛙只能走到gcd(ai, m)的位置,我们就可以把m的因子提取出来,然后对青蛙能走到的因子位置打标记。青蛙能走到vis

2015-11-02 19:01:20 552

原创 HDU 5521 Meeting

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5521题意:求两个人见面的最短时间, 并把可能的地点输出了。分析:题意很明确,读了之后就知道是最短路, 但是边很多不能直接套最短路。 但是我们发现每个点和点集只进行松弛一次即可得到答案。#include#include#include#include#includeusin

2015-11-02 18:55:03 354

原创 HDU 5510 Bazinga(技巧 + 字符串哈希)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5510题意:依次给出n个串, 找出下标最大且不能包含前面所有的串的串(即前面所有的串都是这个串的子串)。分析:这道题我一开始的想法是AC自动机, 但是数据太大就MLE;就换了种思路。 其实可以发现, 如果a是b的子串,b是c的子串, 那么就不虚要比较a和c就能得到a也是c子串。 所以我们

2015-11-02 17:52:18 517

原创 HDU 1711 Number Sequence(KMP模板)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711KMP的模板题, 很简单; 用来做模板。#include#include#includeusing namespace std;const int maxn = 1e6 + 100;int a[maxn], b[maxn];int Next[maxn];void get_Ne

2015-10-30 16:00:23 293

原创 HDU 3068 最长回文(manacher算法模板)

manacher算法求一个串中的最长回文子串; 时间复杂度基本为O(n)。模板:#include#include#includeusing namespace std;const int maxn = 2*1e5 + 100;char s[maxn], a[maxn];int p[maxn<<1];int manacher(){ int n = strlen(s+1

2015-10-30 12:21:09 392

原创 POJ 2155(二维树状数组模板)

题目链接:http://poj.org/problem?id=2155题意:给出矩阵左上角和右下角坐标,矩阵里的元素 1变0 ,0 变1,然后给出询问,问某个点是多少。关于二维树状数组讲的比较好的连接地址:http://www.java3z.com/cwbwebhome/article/article1/1369.html?id=4804AC代码:#include#inclu

2015-10-29 21:41:14 384

原创 HDU 4819 Mosaic(二维线段树模板)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4819题意:对于二维的矩阵,需要查询一个区域的最大和最小值。修改单个点的值。#include#include#includeusing namespace std;#define _lson _l, _m, _rt<<1#define _rson _m+1, _r, _rt<<

2015-10-29 19:16:41 295

原创 HDU 4821 String(字符串哈希)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4821题意:给出M和L,和一个字符串S。要求找出S的子串中长度为L*M,并且可以分成M段,每段长L,并且M段都不相同的子串个数。哈希过后, 若Hash[i]-Hash[i+L]*K[L] == Hash[j]-Hash[j+L]*k[L], 则说明串s[i...i+L-1] 和串s[j.

2015-10-29 10:31:41 402

原创 HDU 4027 Can you answer these queries?(线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4027题意:

2015-10-26 14:58:33 365

原创 ZOJ 3820 Building Fire Stations(树的直径+操作)

题意:给出n个点,n-1条边的一棵树,然后要在两个点上建立两个消防站,让所有点的到消防站最大距离的点的这个距离最小。分析:首先先求这个树的直径,然后在树的直径的中点处把树分成两棵树,然后在把两棵树分别取中点的最大值就是ans值。#include#include#include#include#includeusing namespace std;cons

2015-10-24 10:57:26 318

原创 Acdream 1430 SETI(后缀数组)

题目链接:http://acdream.info/contest?cid=1429题意:给一个串, 输出不可重叠且出现两次以上的子串的个数。分析:通过后缀数组求出最长公共前缀height数组, 我们就可以枚举子串的长度k,用k给height数组分组, 如果每组内的后缀的个数出现的次数大于2(说明出现次数大于2)且组内后缀的最大起始位置-最小起始位子>=k(说明不重叠), 则说明这个

2015-10-14 21:09:56 371

原创 CodeForces Two Sets(并查集)

题目链接:http://codeforces.com/problemset/problem/468/B题目大意:给你N个互不相同的整数,再给两个整数a,b,问能否把这N个数分成两部分,使得在a这个集合中的任一个数ai,都存在a-ai也在a 这个集合中,对b集合也同理。如果不存在一种合理分法,输出No,否则输出YES,并输出任一种合理分组。解题思路:首先我们先假设存在一种合理

2015-10-14 08:44:23 469

原创 ZOJ 3905 Cake (DP)

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3905题意:A和B一共买了n(为偶数)块蛋糕, A和B的口味不同, 所以对每块蛋糕的喜欢值不同。 现在A和B要进行n/2次操作, A每次取两块蛋糕,B先选取。 问A得到的喜欢值的总和最大是多少。分析:如果单纯的从n个数中选取m个数使得到的和最大, 估

2015-10-12 09:20:04 408

原创 Acdream 1431 Sum vs Product(dfs+剪枝)

题目链接:http://acdream.info/problem?pid=1431题意:从1~n中挑出n个数,n个数的和于积相等, 问有多少种方案分析:我们观察可以发现, 如果这n个数从小到大排列,那么无论这n个数中前任意个数都是和大于等于积的; 所以我们在暴搜的时候如果积一旦大于和, 那么我们就不用搜了, 之后再也找不到合法的方案了。另外这个暴搜的时候不能搜1, 搜了会超时的

2015-10-10 10:59:41 321

原创 BNUOJ 39566 Do use segment tree(树链剖分——点权)

题目链接:http://www.bnuoj.com/v3/problem_show.php?pid=39566题意:给一颗树两种操作:1. 将a->b路径上的点权修改为c;2. 求a->b路径上的最大连续区间和;分析:树链剖分, 通过不断合并区间, 维护区间的最大连续和, 最大做连续和, 最大右连续和, 区间和两个区间合并时:最大连续和 = max(左区间最大连续和

2015-10-09 10:56:00 315

原创 acdream 1426 Beautiful People(双线最长单调子序列)

题目链接:http://acdream.info/problem?pid=1216题意:一个俱乐部有n个人, 每个人都有一个漂亮值和财富值。现在俱乐部要举办活动, 但是俱乐部中有些人是相互讨厌, 相互讨厌的人有两累即si=bj or si>=sj&&bi分析:很明显, 满足条件的人si, bi都是严格的单调的。 所以我们可以想到最长单调子序列, 这个就是多了一个条件的限制。我们可以

2015-10-07 10:50:35 299

原创 HDU 5496 Beauty of Sequence

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5496题意:给出一个整数序列, 去除序列中连续相邻的重复元素(只保留一个), 剩下来的数的和称之为序列的beauty.现在给你一个长度为n的整数序列A.  问序列A的所有子序列的beauty的和是多少. 由于答案可能很大, 你只要输出答 案对10^9+7取模的结果.分析:读完这样的题

2015-10-05 10:47:44 406

转载 HDU 5489 Removed Interval (LIS,变形)

转载地址:http://www.bubuko.com/infodetail-1120211.html题意:  给出一个n个元素的序列,要求从中删除任一段长度为L的连续子序列,问删除后的LIS是多少?(n思路:    如果会O(nlogn)求普通LIS的算法,这道题将变得很简单。  首先按照求LIS的思路,当扫到元素a[i]并完成操作后,a[1->i]就是一段

2015-10-01 15:09:52 329

原创 HDU5493 Queue(线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5493题意:n个人按身高站队, 给出每个人的身高和前面或后面比他高的人数。 如果可以输出按身高的字典序最小的方案。否则输出 impossible。分析:用线段树来保存比当前这个人高的人数,用比自己高的人数来确定自己应该的站的位置。 为了保证字典序最小优先线段树的左边。#include#

2015-09-30 09:49:34 365

原创 poj 1442 Black Box(trap模板 求整个序列的第k大

#include#include#include#include#includeusing namespace std;const int maxn = 3*1e4 + 10;struct Node{ Node* ch[2]; int r, v, s; Node(int v) : v(v) { ch[0] = ch[1] = NULL

2015-09-28 21:23:38 297

转载 c的free和c++的delete的区别

转载地址:http://blog.csdn.net/gukesdo/article/details/7506155首先free对应的是malloc;delete对应的是new;free用来释放malloc出来动态内存,delete用来释放new出来的动态内存空间。应用的区别为:1. 数组的时候int *p=(int*)malloc(10*sizeof(int)) 释放的时候

2015-09-26 10:05:55 337

原创 hihoCoder 1236 Scores 五维偏序 (分块 + bitset)

题目链接:http://hihocoder.com/problemset/problem/1236分析:分块处理。#pragma comment(linker, "/STACK:1024000000,1024000000")#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)#include#include#include

2015-09-23 19:34:47 1015

转载 HDU 5458 Stability(LCA倍增算法, 并查集缩点(一般都是连通缩点))

转载地址:http://www.cnblogs.com/oyking/p/4821902.html题目大意:给一个N个点M条边的无向图,有Q个询问:1、删掉a、b之间所存在的边;2、询问有多少条边,单独删掉之后a与b不再连通。思路:脑洞大开。对于询问,首先想到的就是a与b之间有多少桥(割边),然后想到双连通分量,然而删边是个坑爹的问题,于是我们离线倒着来,把删边变成加边。双连通分量

2015-09-23 12:32:35 652

转载 HDU5452 Minimum Cut(树链剖分)

转载地址:http://www.hardbird.net/hdu-5452-minimum-cut%EF%BC%88%E6%A0%91%E9%93%BE%E5%89%96%E5%88%86%EF%BC%89/题意:给一个无向图和它的一个生成树,要求找到一个最小割,使得有且只有一条生成树上的一条边属于割集,输出割集的大小。分析:因为生成树中只有一条边属于割集,那么割对生成

2015-09-22 11:20:01 581

原创 HDU 5442 Favorite Donut(后缀数组)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5442题意:给一个长度为n的字符串。 选择从某个地方断开, 可以顺时针取, 也可以逆时针取。 求最大的字典序的串是在哪个位置断开的, 和取的方向。  输出优先级  字典序, 下标, 顺逆时针。分析:观察可知,如果把原串接在原串的后面得到新串, 我们就可以找到顺时针的所有的串。 在把新串反

2015-09-18 08:38:52 358

原创 codeforces Bear and Drawing

题目链接:http://codeforces.com/problemset/problem/573/C题意:有一棵n个点的树, 然后有两行列无限点的, 问这棵树能否画出。 能输出Yes, 否则输出No。分析:对于一个点,它衍生出来的最左端的点和最右端的点可以衍生出 >2个点。除了最左边和最右边的点, 最多只能衍生出2个点, 而这些点只能衍生一个点。则对于每个连接数>2的点,最多只有

2015-09-14 17:55:06 398

原创 NYOJ791 Color the fence(贪心)

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=791题意:有v升的涂料。给出涂每个数字1~9所需的涂料;如果可以涂,则输出涂出的最大数字, 否则输出-1;分析:涂料一定, 肯定涂出的数字越多,数字就越大。所以我们就可以在涂出数字最多的情况下,枚举每一位的可以数字取最大(从9开始枚举找打第一个符合既是答案)。 枚举的符合条

2015-09-10 15:26:05 432

原创 NYOJ742(DP)

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=742分析:怎么说的, 看了大牛的博客之后,感觉也不是太难, 就是写不出来。这题需要两个dp数组;状态定义:dp【】:表示前 j 个数中, 第 i 段以 j 结尾, 分为  i 段的最连续大和;b【】 : 表示前 j 个数中,   分为 i 段的最大连续和;转

2015-09-09 08:54:26 339

原创 NYOJ1023 还是回文(区间dp)

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=1023分析:这道题是一个简单区间的dp, 状态定义为dp【i】【j】: i 到 j 这个区间形成回文的最小花费,分两种情况讨论:s【i】 == s【j】: dp【i】【j】 = dp【i+1】【j-1】;s【i】 == s【j】: dp【i】【j】 = min(

2015-09-08 17:39:50 316

原创 HDU2222 Keywords Search(AC自动机模板题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2222  AC自动机(多模式串匹配)是基于字典树的, 思想类似于KMP(单模式串匹配), 所以学习AC自动机, 要先学习字典树和KMP算法, 这样有利于学习。AC自动机是求文本串中模式串出现的个数(不是次数, 当然也可以求次数, 不过时间复杂度会提高, 这个是个人认为)。 KMP算法是求模式串在文本

2015-08-16 11:32:28 288

原创 BNUOJ26429 Space Elevators(贪心)

题目链接:http://www.bnuoj.com/v3/problem_show.php?pid=26429题意:n个人乘电梯, 电梯的最大承重为s, 乘客轮流进入电梯, 电梯一次可以乘坐一个人或两个人,问最多用几次吧人全部运走, 并且把进入电梯的顺序输出来。 如果有多种方案, 输出任意一种。分析:这是一道模拟或贪心的题, 我比赛一下就做了这一道题(发现在这方面能力太弱, 要着重

2015-08-03 17:48:10 409

原创 poj2104 (线段树求区间第k大)

题目链接:题意:给n个数, 每次询问一个区间, 让你输出区间中的第k大的数。做了这道题,我对线段树的能解决的问题得认识又有提升。 这个是让求区间内的第k大, 询问比较多,暴力显然不行。 我们想用线段树解题,那么线段树应该保存什么呢? 一开始更本没想到, 看了别人的博客明白了, 原来是把线段树上的每一个区间都变成有序的, 并把这个排列的顺序存在另一个数组里, 我们只在线段树中存下这一段序

2015-07-30 10:01:39 1986

原创 NYOJ zkc学长的福利(贪心+高精度运算)

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=1218分析:因为人的排的顺序不一样, 最后的结果也不一样;题上说为让的到最多肉松的人得到的最少,所以很明显就是贪心, 而这道题贪心的目的就是得到一个最优的排序。  这就需要我们找到一个排序的比较函数。假设对于A,B两人以前的顺序已经排好, 现在的问题就是A, B的顺序。 设前面

2015-07-28 00:33:58 1268 2

原创 BNUOJ 28887 A Simple Tree Problem(线段树, 区间查询,区间更新)

题目链接:http://www.bnuoj.com/v3/problem_show.php?pid=28887题意:给一颗树, 树根为1,节点总数为n。 每个节点都有一个标记,标记只用0和1,  初始化全部为0。 有两种操作:(1)o k; 把以k为跟的树上的节点标记全部取反.(2)q k;求出以k跟的树上节点标记为1的个数,并输出来。分析:这道题操作很类似线段的操作, 所

2015-07-22 12:17:01 467

空空如也

空空如也

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

TA关注的人

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