自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

House

退役acmer,现在FDU研究数据库、分布式、时间序列数据挖掘等相关内容。(欢迎交流,题材不限…尺度不限…)

  • 博客(27)
  • 收藏
  • 关注

原创 POJ 1438 One-way Traffic

题意:与 http://blog.csdn.net/houserabbit/article/details/38958891 类似  只不是将原本的无向图变为混合图思路:在上一篇我也写过了 http://blog.csdn.net/houserabbit/article/details/38958891  首先是找桥  那么就需要先把混合图变成无向图  因为题目说答案存在  因此桥必然

2014-08-31 11:40:02 1143

原创 POJ 1515 Street Directions

题意:一幅无向图  将尽量多的无向边定向成有向边  使得图强连通  无向图保证是连通的且没有重边思路:桥必须是双向的  因此先求边双连通分量  并将桥保存在ans中每个双连通分量内的边一定都可以变成有向边(毕竟是圈组成的图) 边的定向方式分两种:1、对于树枝边u->v  如果low[v]>dfn[u]说明v回不到u上面去  所以ans应该是v->u的边  否则是u->v2、

2014-08-31 10:59:47 1373

原创 UVALive 4839 HDU 3686 Traffic Real Time Query System

题意:寻找图中从一条边到另一条边的路径上必须经过的点的个数思路:首先必经过的一定是割点  因此可以先做点双连通然后缩点  缩完点后形成了树  而且树上的路径是满足“非割点-割点-非割点-割点-…”这样的模式的  路径u->v只需要求出他们的lca  则答案可以通过(dis[u]+dis[v]-dis[lca]*2)/2算出注意:这题缩点是通过边来进行的  因为这样可以使每条边都

2014-08-30 13:56:28 1508

原创 UVA 11604 General Sultan

题意:给出一些0和1组成的串  问  是否存在一个串使得将这个串分解成之前给出的模式串有多种方案思路:首先画出一个下面的图那么我们可以发现  两种方案去拼接同一个串  总是会做模式串A的后缀和模式串B的前缀的匹配(绿色部分)  当然也会存在包含(紫色部分)  因此我们就将问题转化成  从两个模式串开始  不停的按照前缀后缀匹配  最后达到两个方案同时在一个点结束  这样的问题

2014-08-30 13:49:17 1470

原创 UVA 11294 POJ 3648 Wedding

题意:婚礼上新郎新娘坐在桌子两侧  新娘只能看见对面的人  已知一些人有XX关系…  新娘不想看见有关系的同时坐在对面  问  满足条件的情况下  新娘这边做的人是谁思路:新郎那一边的约束最多  有利于解题  那么就变成了  一个人要不要坐新郎这边的2-sat问题  因此可以先求新郎这边的人  然后反一下就是新娘这边的了  注意  新郎是必选点  而且  不能选和新郎有XX关系的…

2014-08-29 20:12:08 1192 2

原创 UVALive 3713 Astronauts

题意:有n个宇航员  他们需要完成A、B、C三种任务  年龄>=平均年龄的人可以做A和C  年龄思路:一类人有2种选择而且必须选1个  因此想到2-sat  根据年龄和讨厌关系来建边  之后先做可行性判断  确定可以后  求出任意一组可行解  不需要字典序最小代码:#include#include#include#includeusing namespace std;

2014-08-29 19:56:54 837

原创 UVALive 5135 HDU 3844 Mining Your Own Business

题意:一些隧道组成矿井  现在要修建尽量少的逃生通道  使得无论哪里发生事故  所有人均能逃出  求方案数思路:这道题比较容易联想到割点  因为只有这种点出事矿井才会不连通  那么首先就找出所有割点分析最少要建几个逃生通道  那当然是每个连通块各一个  因此需要把求出连通块顶点数之积最后考虑特殊情况  没有割点  那么随便两个地方建就好了  不能建一个  万一就那里出事了呢

2014-08-29 19:47:46 1078

原创 UVALive 4255 Guess

题意:给你半个矩阵  如果(i,j)的位置是'-'  则说明sum[i...j]0  如果是'0'  说明sum=0  给出一种满足这个矩阵的序列  序列元素绝对值在10以内思路:很容易想到的是将sum[i...j]转化为sum[j]-sum[i-1]  即用前缀和来表示  那么题中的矩阵就可以转化成前缀和之间的大小比较  也就是说  我们可以通过将前缀和当成点  将大小关系作为边

2014-08-29 19:36:57 1083

原创 UVA 10054 The Necklace

题意:项链散了  每个珠子前端后端分别有颜色  在项链中  相邻的珠子的相邻的那一端颜色相同  问  找到的珠子能不能重新串起一根项链思路:比较经典的欧拉回路题  Fleury算法解决问题代码:#include#include#includeusing namespace std;#define M 60int n,ans,top,m,t,T;int Edge[M

2014-08-29 19:26:11 933

原创 POJ 2793 Cactus

题意:给你一幅无向图 计算它有多少生成子图是仙人掌 如果它本身不是仙人掌输出0思路:无向图的仙人掌是一个连通图且一条边最多在一个环上对于这道题 需要区分“生成子图”和“导出子图”的概念生成子图:包含G的所有顶点V和其中一些边的子图导出子图:选择G中一些点组成集合V',将E中所有两端点在V'中的边全部找出形成的子图叫点导出子图;选择G中一些边组成集合E',将V中所有与E'中的边有关系的点全部找出形成的子图叫边导出子图。那么这道题就是说你要扔掉一些边 使图还是仙人掌 问方案

2014-08-27 18:27:12 1537

原创 HDU 3594 Cactus

题意:一幅有向图是不是仙人掌思路:有向图仙人掌是强连通图且每条边最多只属于一个环一幅有向图是仙人掌当且仅当满足3个条件:1、dfs树无横向边2、对于节点u的所有儿子v,它们的low[v]3、满足low[v]证明见 http://download.csdn.net/detail/kksleric/4502360代码:#include#include#i

2014-08-27 14:33:55 902

原创 Codeforces Round #262 (Div. 2) (460A 460B 460C 460D)

460A Vasya and Socks题意:n个物品每天用一个  m天得一个  问  最多连续用几天思路:没思路…  就是暴力…代码:#include#include#include#include#include#include#include#include#includeusing namespace std;int main(){

2014-08-26 15:59:10 1187

原创 2014多校联合十(HDU 4972 HDU 4973 HDU 4974 HDU 4975)

HDU 4972 A simple dynamic programming problem题意:篮球比赛有1、2、3分球  现给出两队的分差序列(5:3 分差2  3:5分差也是2)  问有多少种可能的比分思路:比较简单的想法题  可以类一张表“从分差x到分差y一共有几种情况”  很容易发现只有1->2和2->1的时候会多一种情况  其他均是一种  所以只需要统计这种特殊分差即可  注

2014-08-26 15:35:12 1070

原创 HDU 4967 Handling the Past

题意:你有一个栈  一些操作发生在栈上  包括进栈、出栈、询问栈顶  每个操作有一个独一无二的时间  当操作读进来时  要把之前处理的本该在本操作之后的操作全撤销  接着完成现在的操作  再把撤销的操作重做一遍  每次询问操作输出栈顶元素思路:由于时间唯一  那么可以用时间来对应插入的元素以及操作的类型  所以首先离散化时间(这里不去掉重复也行)然后我们把push当作+1  pop

2014-08-20 17:07:31 970

原创 HDU 4966 GGS-DDU

题意:你有n个课程  每个课程有一个规定的毕业学分  修学分有m种方式  每种方式要求先修到x课程x'学分以上才能花费money去修y课程并且将学分修到y'  问  最少花费多少可以毕业思路:一开始想费用流  建完图发现一个问题解决不掉  那就是  一条边如果流过多次怎样才能让费用只计算一次  所以换思路我们知道  为了应付“ 学分修到y' ”这个条件  高层学分一定要“覆盖”低层

2014-08-20 09:45:27 1164

原创 2014多校训练九(HDU 4960 HDU 4961 HDU 4965 HDU 4968 HDU 4969 HDU 4970)

HDU 4960 Another OCD Patient题意:给你一串数字  相邻x个数字合并成一个数字(相加)有一定代价  问  最少花费多少使得串变成回文串思路:读完题感觉像dp  数据范围也像  就开始想怎么表示状态  最简单的应该想到dp[i][j]表示i到j区间变成回文串的最小花费  状态想好了想做法  考虑将串分成AAAABBBBBBBCCC三段  即所有A合成一个数字 

2014-08-19 20:06:13 2150 2

原创 2014多校联合八(HDU 4945 HDU 4946 HDU 4948 HDU 4950 HDU 4951 HDU 4952)

HDU 4945 2048题意:给你一堆数字  问有几个子集可以拼出2048思路:拼数字的规则相当于让数字乘二  所以不是2^i的数字不会拼出2048  那么这些数可选可不选  即为2^cnt种可能之后只要计算出有几个子集不可能拼出2048即可  不过简单的直接dp是2048*100000的复杂度的  会TLE所以要变成先枚举元素  再枚举该种元素个数  再枚举2048种状态 

2014-08-18 18:49:38 1708 1

原创 2014多校联合七(HDU 4937 HDU 4938 HDU 4939 HDU 4941)

好几天没写题解了… 都怪我太弱  补题补不动…HDU 4937 Lucky Number题意:一个数字如果只有3456这四种数字组成  那么这个数字是幸运的  问  给出一个x  它在几种进制下是幸运的  如果无穷输出-1思路:分类讨论  如果x是3或4或5或6  那么一定有无穷个进制满足(从十进制开始…)  直接输出-1除去上述情况  那么我们可以将一个数字写成这样 a0 +

2014-08-18 17:00:35 3191

原创 HDU 4928 Series2

题意:0序列为 a1、a2、a3……an 根据运算规则ai=ai+1-ai计算i序列  如果序列单调则为合理序列  问从0开始到第几序列是合理的  如果一直合理就是nice  如果一开始就不合理就是ugly思路:照着题解做 - -b  负责度证明很是精妙  具体见官方题解这里有一点需要补充  就是压缩0的那个优化  压缩只能在串首和串尾进行  因为要保证答案不变还有不是每次压缩

2014-08-11 11:11:09 1255

原创 HDU 4921 Map

题意:给n个节点  他们形成了最多10条链  每条最多1000的长度  每个节点有个val  你可以选择任意位置截断链  断点前的所有节点被你获得  通过题中计算公式得出你的val  问  通过随机截断  获得val的期望是多少思路:期望=所有方案val的和/方案数这里明显有分层的现象  而且每层最多10个元素  因此想到状压  那么我们只要逐层统计  每层计算一下能对“所有方案v

2014-08-10 14:27:44 1241

原创 HDU 4916 Count on the path

题意:给定一棵树和m个询问  每个询问要求回答不在u和v两节点所形成的路径上的点的最小标号思路:一开始以为是LCA…  不过T了好几次…  后来发现不用LCA也可做考虑每个询问u和v  如果他们的lca不是1  则1一定是答案  不过求lca会T  那么我们只需要在遍历树的时候给节点染色  染的颜色就是1的儿子的颜色  如果x这个点在y的子树中(y是1的儿子)那么他的颜色就是y

2014-08-09 19:41:25 1607

原创 CodeForces 451D Count Good Substrings

题意:一个只包含a和b的字符串  问  它有几个长度为偶数和长度为奇数的“压缩回文串”  压缩的概念是  相邻的相同字符压缩成一个字符思路:串经过压缩一定满足如下形式 ……ababab……  那么这样只要两端的字符相同则中间一定是回文的  因此对于一个a它作为左端点形成的回文串个数就等于它右边的a的个数  那么长度是奇数还是偶数呢  可以这么判断  如果a在奇数位置上和它匹配的a也在奇

2014-08-09 19:28:59 1016

原创 HDU 4917 Permutation

题意:一个序列p1、p2、p3……pn是由1、2、3……n这些数字组成的  现给出一些条件pi思路:很容易想到用一条有向的线连接所有的pi和pj  那么就构成了有向无环图(题中说有解所以无环)又因为pi各不相同  那么题目就变成了有向无环图的拓扑排序的种类数题目中边数较少  所以可能出现不连通情况  我们先讨论一个连通集合内拓扑排序的种类数题目中m较小  可以利用状

2014-08-08 10:05:00 1452

原创 2014多校联合六(HDU 4923 HDU 4925 HDU 4927 HDU 4930)

HDU 4923 Room and Moor题意:给出A序列 求满足题目所写的B序列 使得方差最小思路:可以想到最后的结果中 B序列的值一定是一段一段的 那么我们可以类似贪心去搞 对于一段序列我们可以求出什么样的b值使得方差最小 即序列中1的个数除以序列长度 又因为B是单调的 可以用一个单调栈去模拟 复杂度远远小于n^2 不要被吓怕…HDU 4925 Apple Tree题意:n*m的格子 要么种苹果 要么施化肥 施肥后的格子的相邻格子如果种了苹果 则苹果数翻倍 问最多

2014-08-07 19:45:37 1043

原创 HDU 4912 Paths on the tree

题目:给定一棵树和一些路径  问  最多能选出多少路径放在树上  使得各个路径间没有点交叉思路:LCA+贪心对于一条路径  我们可以将它分成两部分  即 从u到lca 和 从v到lca  易知lca位于树上深度最浅的地方  而且如果这个lca被一条路径覆盖了  那么下面的子树都相当于被覆盖了考虑到以x点为上述的lca点  那么如何选择经过x的路径呢  可以想到如果一条路

2014-08-06 14:04:22 1271

原创 HDU 4919 Exclusive or

题意:求题目中的式子 - -b思路:推递推公式  比赛时候队友就说数字上有关系  but没推出来 - -b  题解有过程:推的过程中最巧妙的就是利用异或的性质  相邻两个数字相当于修改二进制最后两位  不过这样做通过异或出来的结果是相同的题目中数字太大  用java比较好写  处理递推的问题常用记忆化搜索代码:import java.util.*;import

2014-08-06 11:15:27 1802

原创 2014多校联合五(HDU 4911 HDU 4915 HDU 4920)

HDU 4911 Inversion题意:n个数字 通过k次相邻交换 使得逆序对数最少思路:如果序列为 XXXABYYY 假设A和B位置互换 易知X和AB、Y和AB的逆序对数不变 换句话说一次交换最多使逆序对减少1 那么只需要求原逆序对数和k进行比较即可HDU 4915 Parenthese sequence题意:?可以代表(或) 那么输入的字符串能构造出几种合法的括号序列呢 输出无解、唯一解、多解思路:这题是我YY的… 首先我们可以计算出(和)应该填几个 如果计算出?不满足我

2014-08-05 19:32:08 1422

空空如也

空空如也

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

TA关注的人

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