自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

...

  • 博客(91)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

转载 POJ 分类

POJ题目分类初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj29

2014-05-24 12:09:07 773

原创 HDU 5127 Dogs' Candies【CDQ分治+动态凸包】

HDU 5127 Dogs’ Candies【CDQ分治+动态凸包】题意:一个狗国家的狗国王有一个装糖的盒子,每颗糖有两个属性p,q,分别代表甜度和咸度,每只狗对于甜度和咸度的偏爱度不一样,所以每条狗有两个参数x, y,每颗糖对于特定的狗的美味度等于p*x+q*y。现在有50000个操作,分为三种:将新的糖(p,q)放入盒子中将盒子中存在的糖(p,q)吃掉给出一条狗的参数(x,y),询问当前存

2015-08-25 16:22:36 3330 4

原创 BUPT Summer Training #7 for Grade 14 题解

A. CodeForces 396C题意就不描述啦。对于第一种操作 1 v x k,我们可以给v的子树全部加上(x+depth[v]*k)的值。对于第二种操作 2 v。查询每个节点的值之后,只需要在减去depth[v]*K即可得到答案了。里面的K是对v这个节点有影响的k的和。自己在纸上推推公式,很容易就能知道为何是对的了这里用两个树状数组即可维护,当然增加整棵子树的操作

2015-08-03 17:36:14 613

原创 【Android】 R.layout.main报错问题

刚刚开始玩Android,学习过程中复制粘贴了一部分代码,没想到就出了问题,一直在R.layout.main那儿报错,在网上找了方法,什么升级SDK,刷新工程都没用。后来在res这个文件夹下的layout文件夹下面看到只有activity_main这个东西,于是将main改为activity_main就没问题了

2015-06-03 11:31:23 9765 2

原创 数位DP合集

1.HDU 4722 good numbers:题意:给出一个区间【A,B】,求出区间内有多少个数的各位的和加起来模10等于0的数有多少个。解法:这是一个数位DP简单入门题,简单的DFS+数组记忆化搜索就可以。姿势是自己写的。。感觉略搓,做到第三个数位DP题的时候看到了别人的姿势,学习了。代码:#include #include #include #include #inc

2015-04-23 21:50:07 911

转载 【二分图匹配】 最小点覆盖==最大匹配数

先说一下,什么叫做最小覆盖点。    在一个二分图中,一个x部或y部的覆盖点可以覆盖与之相连的所有线段,选择一些点,使得覆盖所有线段,点数最少。    König定理:最小覆盖点数==最大匹配数    我有两个证明。************************************************************************************

2015-04-10 17:06:03 1049

原创 Codeforces Round #257 div.2 D or 450D Jzzhu and Cities【最短路】

Codeforces Round #257 div.2 D or 450D Jzzhu and Cities【最短路】

2015-03-04 01:43:45 1300

转载 遗传算法--较容易理解的一篇讲解

转自:http://www.cnblogs.com/heaad/archive/2010/12/23/1914725.html遗传算法 ( GA , Genetic Algorithm ) ,也称进化算法 。 遗传算法是受达尔文的进化论的启发,借鉴生物进化过程而提出的一种启发式搜索算法。因此在介绍遗传算法前有必要简单的介绍生物进化知识。  一.进化论知识

2015-02-02 22:01:31 11644

转载 模拟退火--较容易理解的一篇讲解

一. 爬山算法 ( Hill Climbing )         介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。         爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。如图1所示:假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停止搜

2015-02-02 21:33:49 3410 1

原创 Codeforces Round #286 div.1 D 506D D. Mr. Kitayuta's Colorful Graph【并查集】

题目链接:http://codeforces.com/problemset/problem/506/D题目大意:给出n个顶点,m条边,每条边上有一个数字,代表某个颜色。不同数字代表不同的颜色。有很多个询问,每个询问问有多少条纯种颜色的路径使得某两个点联通。分析:这个题一看就想用并查集来搞,每种颜色用一个并查集处理。对于输入的每条边,我们只需要将这两个点在这条边的颜色对应的并查集中合

2015-01-30 01:40:44 1431

原创 Codeforces Round #286 div.2 D 505D. Mr. Kitayuta's Technology【强连通分量,弱联通分量】

题目链接:http://codeforces.com/contest/505/problem/D题目大意:在一个图中,有n个顶点,给出m对数字(u,v)表示顶点u和顶点v必须直接或者间接相连,让你构造一个这样的图,输出最少需要多少条边。分析:毫无疑问,n个顶点的话,我们最多可以用n条边,使得n个顶点构成一个环,满足所有的情况(任意两点都是联通的),但是这并不一定是最少的边。于是

2015-01-28 17:01:03 1408

原创 Codeforces Round #287 (Div. 2) 507E E. Breaking Good

题目链接:http://codeforces.com/contest/507/problem/E题目大意:在一个有n个城市m条边的国家,有一个犯罪团伙。这个犯罪团伙想要抢银行。犯罪团伙基地在城市1,银行在城市n。有个人Walter想要加入这个犯罪团伙,于是为了过的团伙高层的信任,Walter必须担任一项的任务,那就是在基地到银行之间选出一条最短路。这个国家有若干公路在维修,于是你需要将最短

2015-01-27 16:16:43 977

原创 Codeforces Round #283(div.2) 496C C. Removing Columns

题目地址:http://codeforces.com/contest/496/problem/C题目大意:给出一个n*m的字符矩阵,你能做的操作是每次删除一列,问能够最少删除几列使得字符串矩阵的每行的字符串从上到下顺序是字典序。做法:这个题很简单,属于那种解法容易想出来,但是写法复杂的题目。这个题的解法很容易想到,遍历每一列,检查这一列是否需要删除即可。那么该怎么判定某一列是否需要

2015-01-26 20:23:56 571

原创 Codeforces 507D (Round #287(div.2))D. The Maths Lecture【数位DP】

题目地址:http://codeforces.com/contest/507/problem/D题意:给出n,k,m,问满足一下条件的数字有多少:1.这个数刚好有n位;2.这个数存在某非空的后缀Si,满足Si%k=0;3.这个数大于0;解法:这个题是个数位DP,我们考虑从数的右边往左边构造的方法。定义这样的DP数组,  dp[i][j][0]:表示有i位数位,mod

2015-01-25 12:57:19 1101

原创 访问记录10002~

听别人说博客访问超过10000的时候要发帖纪念,嘿嘿,特发此贴!

2014-11-14 21:19:57 506

原创 HDU 4115 Eliminate the Conflict【2-sat】

转载请注明出处:http://blog.csdn.net/u013912596大体

2014-11-10 19:22:22 714

原创 hdu 4819 Mosaic【二维线段树】

题目大意:给出一个矩阵,有一种操作:x,y,l,将(x,y)元素修改为,以(x,y)为中心,尺寸为l*l的矩阵中(min+max)/2。就是一个裸的二维线段树,一维是普通线段树,二维每个区间都有一个线段树。#include #include #include #include #define L(x) (x)<<1#define R(x) ((x)<<1)|1

2014-09-30 16:24:40 691

原创 hdu 5040 Instrusive【BFS+优先队列】

2014北京网络赛09题,hdu 5040这次网络赛真是惨,也怪做题策略没想好,当时切完签到题之类的水题之后,马上就去看06青蛙那题去了。结果被那只死青蛙给坑惨了T_T。。。搞了四小时没搞出来...跪给那只青蛙了。。。本来当时是准备要做这道题的,题目描述也是好蛋疼,有人说这题不如直接去看Clarification,不看题目了,这也说明这题题目描述确实不清晰,虽然没这么夸张,题目还是得看

2014-09-22 16:26:03 827

原创 hdu 5024 Wang Xifeng's Little Plot【暴力dfs,剪枝】

2014年广州网络赛的C题,也是水题。要你在一个地图中找出一条最长的路,这条路要保证最多只能有一个拐角,且只能为90度我们直接用深搜,枚举每个起点,每个方向进行dfs,再加上剪枝。但是如果直接写的话,那一定会特别麻烦,再加上方向这一属性也是我们需要考虑的方面,我们将从别的地方到当前点的方向编一个号:往右为0,如下图顺时针顺序编号(往右下方向为1,往下为2......以此

2014-09-20 20:07:28 912 2

原创 hdu 5015 233 Matrix(西安网络赛1009)【构造矩阵】

说起这题简直醉了。。当时愣是没想到该怎么做,搞了好久,虽然有想过构造矩阵,但是没仔细想下去。此题构造两个矩阵,假设a[]数组为题目给出的数据,最多有10个元素,我们可以构造一个矩阵A:a={a[1],a[2],a[3],...a[n],23,3}  大小为1*(n+2)要得到题目需要的计算结果,那么在构造一个矩阵B,大小为(n+2)*(n+2):(假设n=3)b=   1

2014-09-15 18:49:24 915

原创 hdu 4965 Fast Matrix Calculation【矩阵快速幂模板】

此题只是需要对某个矩阵进行变换相乘之类的,换一下两个矩阵相乘的顺序,利用矩阵快速幂求解即可。#include #include #include #include #include #include #define N 1010using namespace std;int** mul(int** A,int** B,int n,int m,int l)//A

2014-09-15 17:58:35 808

原创 Codeforces 282E. Sausage Maximization【trie树(非指针版)】

题目大意:给出一串数,pre[i](前i个数的异或)为a[0]~a[i-1]的异或,post[i](后缀的异或)为a[i]~a[n-1]的异或,求pre[i]^post[j]的最大值(0做法:利用trie树将后缀或者前缀存储起来,首先从pre[n]开始,往前遍历,对于每个前缀,将此时的后缀添加到trie树中,再在trie中寻找与当前前缀异或之后能得到最大的值。在trie

2014-09-08 18:27:59 864

原创 Codeforces 242E. XOR on Segment【线段树】

题目大意:给出一个序列,有两种操作,一种是计算l到r的和,另一种是让l到r的数全部和x做异或运算。做法:很显然直接暴力是不可能的(但是这题刚刚出来的时候,很多人用暴力水过去了,后来加强的数据吧),又是两种操作,又想到了线段树。。但是这并不简单,异或操作该怎么处理?异或是一种位运算,如果x的第j位是1,那么说明l到r的每个数的第j位都要反转,(0^1=1,1^1=0),如果是0,那么

2014-09-02 14:55:48 928

原创 Codeforces 362C. Insertion Sort【构造】

题目大意:给出一个排列,问交换某两个数之后,该排列的逆序数最小为多少,并找出可以交换多少对数能够得到这样的逆序数。做法:由于数据范围只有5000,那么直接暴力O(n^2)也是可行的,既然如此,我们暴力枚举两个交换的元素的下标,思考一下交换之后,整个序列的逆序数会怎么改变。假设我们交换的是a[i],a[j](由于需要得到的是逆序数最小,那么交换的两个数满足,a[i]>a[j]),

2014-09-02 13:23:48 1120

原创 Codeforces 85B. Embassy Queue【线段树、贪心】

题目大意:每个人要办理签证都必须到大使馆中办理三种手续,而且这三种手续办的顺序是固定的。给出办理每种手续的窗口有多少个,办理每个手续花费的时间,有多少人会来办理手续,一级每个人会在什么时间来。要求的是所有人分别在大使馆待的最长时间是多少。做法:一种贪心的做法,由于只有三种手续,那么每个人进入办理的时候,保证选办理同种手续的所有窗口中最早等待的那一个窗口(为什么会有等待?因为该窗

2014-09-01 14:05:28 881

原创 Codeforces 463C. Gargari and Bishops

题目大意:给出一个n*n的棋盘,要在这个棋盘上放两个象(能将以自己为中心的两条斜对角线上的子全部吃掉),要求两个象不能吃到相同的子,问最后最大能够吃到的价值,和需要在哪两个点上放置这两个象。做法:首先我们需要知道在每个点上防置象能吃到多少,怎么解决这个问题?我们可以将左斜方向和右斜方向的每一行编号,然后分别计算出每一行的价值,最后将每个点对应的左斜右斜的伤害加起来再减掉当前点的

2014-08-31 15:16:07 556

原创 Codeforces 463D. Gargari and Permutations【DP】

题目大意:给出1~n的k个排列(2做法:算是不难的DP,dp[i]表示以i为结尾的最长公共子序列的长度,由于每个数在一个排列中只可能出现一次,我们用一个二维数组pos[i][j]表示数字j在第i行出现在第几个位置,再用一个数组cnt[i] 记录i出现了多少次;当第i个数出现了k次之后,说明能够以该数为结尾构成公共子序列,那么dp[i]=max(dp[j]+1),其中i,j满足p

2014-08-31 14:52:41 853

原创 Codeforces 319B. Psychos in a Line【栈】

题目大意:一串数列,每一个值如果大于相邻右一位的值的话,那么就可以把右边这个值“吃掉”(右一位消失,原来的值不变),问需要吃多少次才能到达无法再吃的状态。做法:利用栈。遍历一遍数组,处理每个值的时候,如果栈顶的元素小于该值,那么将其弹出,知道栈顶元素大于该值或者栈为空,栈内的每个元素记录下一个属性:他是在第几次被“吃掉”,进栈的新元素的被吃次数就是它弹出去的元素中的属性的最大值

2014-08-31 14:48:56 1383

原创 Codeforces 144D. Missile Silos【dijkstra】

题目大意:给出一个图,一个源点s,问距离这个源点的最短距离恰好为 l 的点有多少个(这个点可以在边上,可以在节点上)。做法:首先用dijkstra算法求出每个节点到s的最短路d[]数组,然后对于每条边w(u,v)来说有下面三种情况是合法的:1:d[u]l2:d[v]l3:d[v]对于上面每种情况,ans++,另外每个d[i]==l 的

2014-08-31 14:07:20 765

原创 Codeforces 383C . Propagating tree【树状数组,dfs】

题目大意:有一棵树,对这个树有两种操作:1:表示为(1 x val),在编号为x的节点上加上val,然后给x节点的每个儿子加上- val,再给每个儿子的儿子加上-(- val),一直加到没有儿子为止。2:表示为(2 x)查询x节点上的值。做法:由于每次修改操作修改的并不是一个值,而是很多值,那我们将该题抽象成区间修改,点查询的问题。那怎么抽象呢?可以明白的是,每次操作虽然有加有减,但是

2014-08-31 01:09:28 1203

原创 Codeforces 380C. Sereja and Brackets【线段树】

题目大意:给出一串括号,有m个查询(包含a,b)问区间[a,b]之间有多少个匹配的括号做法:处理两个数组r[i](代表从1到i之间有多少个已匹配的右括号),l[i](代表从1到i之间有多少个没有匹配的左括号)。我们要算[a,b]之间的匹配的括号数,首先用r[b]-r[a-1],但是遮掩更有可能a到b之间的右括号是在[1,a-1]之间被匹配的,那么再减去l[a-1],但是减去的这一部分中

2014-08-29 23:36:42 899

原创 Codeforces 377B . Preparing for the Contest【优先队列】

题目大意:有m个bug,n个学生,每个bug有自己的复杂值,每个学生有自己的能力值,只能解决复杂值小于自己能力值的bug,且每天只能解决一个bug,但是每个学生处理bug需要报酬,问在报酬不超过s的情况下,在最短的时间内,能将bug全部解决完。做法:首先明确一点,如果能够解决所有bug,那么解决的天数一定在1~m之间。先判断m天能不能解决,如果不能则输出NO,如果可以再进行下面的操作。

2014-08-29 02:26:44 974

原创 Codeforces 371D. Vessels【并查集】

题目大意:给出一堆从上到下叠起来的容器,有两种操作:第一种是在编号为i的容器中加入x的水(保证水溢出之后会流到下一个最近的容器(如果存在)中);第二种是查询编号为i的容器中有多少水。做法:首先,想想暴力?但是如果直接暴力,那肯定超时了。每次的加水操作都必须一步步的推向能够容纳从上面溢出的水的容器,这样来十万次操作,一定是T了。那该怎么办呢?我们面对一个在 i 容器中加水的操作,要是能短

2014-08-28 19:06:32 793

原创 Codeforces 156B. Suspects

题目大意:福尔摩斯正在处理一件案子。此时已经抓捕了n个嫌疑人,里面只可能有一个是真正的犯人。福尔摩斯正在审问这些嫌疑人。每个嫌疑人的回答只有两种,一种表明他说编号为i的嫌疑人不是犯人,用-i表示;另一种表明他说编号为i的嫌疑人是犯人,用+i表示。聪明的福尔摩斯已经知道了其中有m个人说的是真话。要求那些人说的是真话,那些人说的是假话。做法:这的确是个很有意思的题啊。但是放在这里的话,我们

2014-08-28 18:47:02 753

原创 Codeforces 148E. Porcelain【多重背包】

题目大意:有一个公主一生气就喜欢摔东西。现在有很多个柜子,每个柜子里面装着很多物品,公主每次摔东西只能随机的选择一个柜子,拿出最左边或者最右边的一个物品摔碎,给出公主最多生气的次数,求生完气之后,公主摔掉物品的价值的最大总和。做法:对于每个柜子来说,从左边拿和从右边拿是不一样的,假设最佳方案中,在第i个柜子中需要拿Ki个物品,那么拿着Ki个物品的最大价值我们是可以确定的。一:全

2014-08-28 18:45:10 865

原创 Codefroces 223A - Bracket Sequence【栈优化】

题目大意:有一串只含有 "("  ")"  "["  "]" 的序列,问在该序列的 左右括号能分别配对的 所有子串中的含有方括号的个数的最大值,并输出相对应的子串。做法:利用一个栈来维护,每次如果有能与栈顶的元素配对的右边括号时,将该元素弹出,如果此时弹出的元素代表方括号,那么记录此时出现的下标。否则将该元素压进栈。当然我们压进栈的是当前元素的下标。当处理完整个序列之后

2014-08-26 15:46:07 605

原创 Codeforces 354C. Vasya and Beautiful Arrays【DP,暴力】

题目大意:有一组数,你可以对每一个数做减法,减去的数不超过k,问最后你最大能得到的整个数组的GCD是多少做法:最后要求的是GCD(假设为g),那么也就是说,对于数组中的数a[i]来说,减去某个不大于k的值之后,就能被g整除;换句话说,a[i]%g,只要满足该条件即可.首先,由于只能对数进行减法操作,假设m为数组a中的最小值,ma为最大值;那么答案一定不会超过m,也就是说,答

2014-08-25 17:01:36 1159 1

原创 Codeforces 132C.Logo Turtle【DP,dfs】

题目大意:在一根数轴上有一只机器龟,它能够听从人们给它的指令做出向前走一步(F)和向后转(T)的操作。给出初始操作,你最开始有修改n步指令的权利(每一个指令可以被修改很多次),问在你修改n次之后,海龟离原点的最大距离。做法:很直观的想法,尽可能的将T转化为F,也算是一种贪心的做法吧。我们用dfs(i,j,t,cur),其中i表示当前遍历的命令的序号,j表示从0~i过

2014-08-25 15:18:45 864

原创 Codeforces 372B. Counting Rectangles is Fun【动态规划,暴力枚举】(lowbit()小用法)

题目大意:给出一个由0,1构成的矩阵,询问(a,b)到(c,d)两个点之间的只含有0的矩形有多少个。方法:由于矩阵不大,最多40*40,而且询问量很大(10^5)由此我们考虑o(1)输出答案,首先用一个四维数组预处理出答案,最后直接输出即可。令dp[a][b][c][d]为(a,b)到(c,d)两个点之间的只含有0的矩形的数量,则递推的公式: dp[a][b

2014-08-24 14:22:32 1296

原创 Codeforces 379D. New Year Letter【动态规划、暴力枚举】

题目大意:给出如下定义: s(n)=s(n-2)+s(n-1),其中s为字符串,+为串联,比如s1="ab",s2="cd",s1+s2="abcd",s2+s1="cdab"。给出k,x,n,m,求满足使字符串s(k)中子串“AC”的个数恰好等于x的s1,s2字符串,如果有多种可能,随意输出。做法:我们将“AC”其分成两个部分,一种是在s1,s2内部的“AC”,一种是在s

2014-08-23 22:25:06 721

Hadoop2.5.2搭建真分布式

Hadoop2.5.2搭建真分布式,利用三台虚拟机搭建的简单真分布式例子

2015-12-24

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

TA关注的人

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