08 2015 档案

摘要:题意:给一个树图,每个点的点权(比如颜色编号),m个询问,每个询问是一个区间[a,b],图中两点之间唯一路径上有多少个不同点权(即多少种颜色)。n 2 #define pii pair 3 #define INF 0x3f3f3f3f 4 #define LL long long 5 usi... 阅读全文
posted @ 2015-08-27 16:45 xcw0754 阅读(681) 评论(0) 推荐(0)
摘要:题意:国王想把他的国家划分成若干个省。他的国家有n个城市,是一棵树,即n-1条边,编号为1..n。为了防止管理太过分散,每个省至少要有B个城市,为了能有效的管理,每个省最多只有3B个城市。每个省必须有一个省会,这个省会可以位于省内,也可以在该省外。但是该省的任意一个城市到达省会所经过的道路上的城市(... 阅读全文
posted @ 2015-08-26 18:03 xcw0754 阅读(310) 评论(0) 推荐(0)
摘要:题意: 给一个无向图,再给一系列操作(以下3种),输出最后的平均查询结果。(1)D X 删除第x条边。(2)Q X k 查询与点X相连的连通分量中第k大的点的权值。(3)C X v 将点X的权值改为v。思路: 第一点,由于需要删除边,不是很方便,所以可以先将所有操作存起来,反序来操作,这样删边就... 阅读全文
posted @ 2015-08-26 11:45 xcw0754 阅读(173) 评论(0) 推荐(0)
摘要:题意: 一根长度为n的木条,随机选k个位置将其切成k+1段,问这k+1段能组成k+1条边的多边形的概率?思路: 数学题。要求的是概率,明显与n无关。 将木条围成一个圆后再开切k+1刀,得到k+1段。组不成多边形就是其中有一段特别长,比其他k段加起来还要长。先算出不能围成多边形的概率,那么就是圆... 阅读全文
posted @ 2015-08-24 17:48 xcw0754 阅读(427) 评论(0) 推荐(0)
摘要:题意:你一开始有1元钱,接下来又n=1啦,比前者要好。这个画坐标轴的话,前者是直线段,后者是向右上方向的直线段。 (4)在第3中,我们是假设了只有1个问题,如果有2,3,4个呢?看只有2个的,我们先算算回答第一个问题,max(20,p*x),x是表示后面那个问题所能拿到的最大期望值,还没有算呢。所... 阅读全文
posted @ 2015-08-24 15:58 xcw0754 阅读(360) 评论(2) 推荐(0)
摘要:题意:给出a和b,表示在直角坐标系上的x=[-a,a] 和 y=[-b,b]的这样一块矩形区域。给出一个数s,问在矩形内随机选择一个点p=(x,y),则(0.0)和p点组成的矩形面积大于s的概率是多少?思路: 由于4个象限上的区域是一样的,所以只需要在第一象限上求概率即可。可以根据面积的大小来求概... 阅读全文
posted @ 2015-08-24 11:31 xcw0754 阅读(219) 评论(0) 推荐(0)
摘要:题意:一种刮刮卡一共有n种图案,每张可刮出一个图案,收集n种就有奖,问平均情况下买多少张才能中奖?用最简的分数形式表示答案。n 2 #define pii pair 3 #define INF 0x3f3f3f3f 4 #define LL long long 5 using namespace s... 阅读全文
posted @ 2015-08-24 10:11 xcw0754 阅读(678) 评论(0) 推荐(0)
摘要:题意:有两个盒子各有n个糖(n 2 #define pii pair 3 #define INF 0x3f3f3f3f 4 #define LL long long 5 using namespace std; 6 const int N=40086; 7 double cal(double p,i... 阅读全文
posted @ 2015-08-23 21:16 xcw0754 阅读(488) 评论(0) 推荐(1)
摘要:题意:你在点A,目的地是点B,A和B的距离为D。中间隔了好多条河(所有河不会重叠),每条河有3个参数(P,L,V),其中P表示距离A点的长度,L表示河的长度,V表示河里的船的速度。假设每条河中仅有1条自动船,以速度V左右匀速运动,碰到河的端点就反向走。那么从A点到B点的期望是多沙? 注意:A点到B... 阅读全文
posted @ 2015-08-23 17:02 xcw0754 阅读(392) 评论(0) 推荐(0)
摘要:题意: 每个点都可以走多次的TSP问题:有n个点(n 2 #define pii pair 3 #define INF 0x3f3f3f3f 4 #define LL long long 5 using namespace std; 6 const int N=17; 7 int g[N][N],... 阅读全文
posted @ 2015-08-23 15:23 xcw0754 阅读(1322) 评论(0) 推荐(0)
摘要:题意:给n个坐标。一个坐标(x,y)若有无存在的坐标满足x1=y就会淘汰掉该点。 1 #include 2 #define pii pair 3 #define INF 0x3f7f7f7f 4 #define LL long long 5 using namespace std; 6... 阅读全文
posted @ 2015-08-22 17:11 xcw0754 阅读(187) 评论(0) 推荐(0)
摘要:题意: 给一个序列,是从1~n共n个的自然数,接下来又m个区间,对于每个区间[a,b],从第a个到第b个从序列中分离出来,翻转后接到尾部。输出最后的序列。思路: 这次添加了Split和Merge两个基本操作,还有个比较困难的翻转操作。翻转操作只需要将需要翻转的序列独立成树,给根加上翻转标记之后再... 阅读全文
posted @ 2015-08-22 14:57 xcw0754 阅读(258) 评论(0) 推荐(0)
摘要:题意:一家宠物收养所负责处理领养者与遗弃宠物业务,有人来领宠物,则领一只最理想的。若没有宠物了,领养者们就得等到宠物来,宠物一来立刻送给其中一个等待者。如果有两个理想的选择,则选择那个值较小的。收养所时刻只存在人or宠物or没有存在任何!思路: 这题主要是树中可能存在人或者宠物,但两者不可能同时存... 阅读全文
posted @ 2015-08-21 23:28 xcw0754 阅读(354) 评论(0) 推荐(0)
摘要:题意: 作为一名出纳员,我的任务之一便是统计每位员工的工资。但是我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一个相同的量。 工资的频繁调整很让员工反感,尤其是集体扣除工资的时候,一旦某位员工发现自己的工资... 阅读全文
posted @ 2015-08-21 12:18 xcw0754 阅读(379) 评论(0) 推荐(0)
摘要:题意:给一棵n个节点的树(无向边),有q个询问,每个询问有一个值s,问有多少点对(u,v)的xor和为s? 注意:(u,v)和(v,u)只算一次。而且u=v也是合法的。思路:任意点对之间的路径肯定经过LCA的,但是如果如果知道某个点t到根的路径xor和为e,那么就能够得知 x^e=s中的x应该是多少... 阅读全文
posted @ 2015-08-20 21:53 xcw0754 阅读(341) 评论(0) 推荐(0)
摘要:题意:给两个字符串s和t,如果能插入一些字符使得s=t,则输出yes,否则输出no。插入规则:在s中选定一个字符c,可以在其后面插入一个字符k,只要k!=c即可。思路:特殊的情况就是s和t的最长相同字符的前缀不等长,则肯定插不进去,如s="aab",而t="aaab"。还有就是,如果第一个字符就不相... 阅读全文
posted @ 2015-08-20 17:41 xcw0754 阅读(447) 评论(0) 推荐(0)
摘要:题意:有n种商品,每种商品中有a个糖果,如果买这种商品就送多b个糖果,只有第一次买的时候才送。现在有m元,最多能买多少糖果?思路:第一次买一种商品时有送糖果,对这一次进行一次01背包,也就是只能买一次。然后对这种商品来一次完全背包,此时不送糖果,也可以多买。 1 #include 2 #defin... 阅读全文
posted @ 2015-08-20 17:33 xcw0754 阅读(176) 评论(0) 推荐(0)
摘要:题意:给出一个公司每一天的营业额,求每天的最小波动值之和。该天的最小波动值= min { 绝对值| 该天以前某一天的营业额-该天的营业额 | }。第一天的最小波动值就是其自己。思路:Splay伸展树的入门题,仅有splay,insert,rotate这三个主要的函数而已。 将一个数字(营业额)插入... 阅读全文
posted @ 2015-08-20 10:21 xcw0754 阅读(221) 评论(0) 推荐(0)
摘要:题意:给一个n*m的矩阵,每个格子中有一个数字,每个格子仅可以走一次,问从(1,1)走到(n,m) 的路径点权之和。思路: 想了挺久,就是有个问题不能短时间证明,所以不敢下手。 显然只要n和m其中一个是奇数,逐行/列绕就可以到达终点,可是恰好都是偶数呢?由于绕不到,那至少得舍弃1个,但是弃哪个比... 阅读全文
posted @ 2015-08-18 23:32 xcw0754 阅读(143) 评论(0) 推荐(0)
摘要:题意:给一个r*c的矩阵,某些格子中可能有一些怪物,可以在一行或一列防止一枚大炮,大炮会扫光整行/列的怪,问最少需要多少炮?输出炮的位置。思路: 先每行和列都放一个炮,把炮当成点,把怪当成边,一边连接行炮,另一边是列炮,只要其中任何一个扫了,另一个就不必了。所以明显是求最小点覆盖,用最少的点(即炮... 阅读全文
posted @ 2015-08-18 10:37 xcw0754 阅读(894) 评论(2) 推荐(0)
摘要:题意: 给出每个男的心目中的女神排序,给出每个女的心目中的男神排序,即两个n*n的矩阵,一旦任意两个非舞伴的男女同学觉得对方都比现任舞伴要好,他们就会抛弃舞伴而在一起。为了杜绝这种现象,求每个男的最后所搭配的女伴是谁。思路: 怎么感觉题意有点问题,输出的是第i行的男人所搭配的女人,即输出的是... 阅读全文
posted @ 2015-08-17 20:46 xcw0754 阅读(523) 评论(0) 推荐(0)
摘要:题意: 有n+1个城市按顺序分布在同一直线上,现在需从0号城市按顺序走到n号城市(保证可达),从0号城市到i号城市需要消耗ai个糖果,每个城市都可以通过买/卖糖果来赚取更多的钱,价格分别是buyi和selli,保证selli<buyi。由于身上最多只能带C个糖果,且在起点0号城市时身上是没有钱的,问 阅读全文
posted @ 2015-08-17 17:21 xcw0754 阅读(450) 评论(0) 推荐(0)
摘要:题意:有一个含n个元素的序列,接下来有q个询问区间,对每个询问区间输出其 f(L,R) 值。思路: 天真单纯地以为是道超级水题,不管多少个询问,计算量顶多就是O(n2) ,就是暴力穷举每个区间,再直接开个1e8大的int数组保存其结果不就行了?呵呵,限制你内存,看你怎么死!即使给了你这么大的内存,... 阅读全文
posted @ 2015-08-16 19:00 xcw0754 阅读(367) 评论(0) 推荐(0)
摘要:题意:目前有一部分可用内存,分为m个大小固定的区域。现有n个程序要执行,每个程序在不同大小的内存中运行所需的时间不同,要使运行完所有程序所耗时最少,问每个程序在哪块区域中从什么时间运行到什么时间,以及运行完所有程序的平均周转时间。思路:各种记录有点麻烦! m个区域看成m台内存大小为该区域大小的计算... 阅读全文
posted @ 2015-08-16 13:04 xcw0754 阅读(313) 评论(0) 推荐(0)
摘要:题意:如上图的一块板子,其中部分格子已经亮起,每当按下一个格子,其上下左右及自己共5个格子的亮暗状态会改变(亮变暗,暗变亮)。给定一块板子的初始状态,问要使得每个格子都亮起来,需要按多少次,以及按哪些格子?思路: (1)对于任意一个格子,如果这个格子改变了偶数次状态,则等价于没有发生改变。我们可以... 阅读全文
posted @ 2015-08-16 10:57 xcw0754 阅读(287) 评论(0) 推荐(0)
摘要:题意: Tina有一个球,它的名字叫zball。zball很神奇,它会每天变大。在第一天的时候,它会变大1倍。在第二天的时候,它会变大2倍。在第n天的时候,它会变大n倍。zball原来的体积是1。Tina想知道,zball在第n−1天时的体积对n取模是多大呢?思路: 如果n是一个合数,那它肯定是... 阅读全文
posted @ 2015-08-15 22:55 xcw0754 阅读(280) 评论(0) 推荐(0)
摘要:题意:给出两个集合S和T,集合中每个元素是个字符串,而T集合中任一元素都是个子弹,可以打S中的任一怪物,如果子弹是怪物的子串,那么才有伤害值1,若在怪物中出现多次,次数为该子弹打到该怪物的伤害值。每个子弹可以射不同怪物分别一次。求用完所有子弹,每个怪物受到的伤害值。思路:先将所有子弹插到Trie树中... 阅读全文
posted @ 2015-08-13 17:17 xcw0754 阅读(303) 评论(0) 推荐(0)
摘要:题意: 给一个n*n的矩阵,每个格子中有正整数w[i][j],试为每行和每列分别确定一个数字row[i]和col[i],使得任意格子w[i][j]=g[i][j]再求最大权和匹配的,但这个最大权和并没有关系。我们可以将row[i]看成一个男的,col[i]看成一个女的,这样男女的总数就相等。 一... 阅读全文
posted @ 2015-08-12 11:59 xcw0754 阅读(624) 评论(1) 推荐(1)
摘要:题意:给一个二进制数(包含3种符号:'0' '1' '?' ,问号可随意 ),要求将其转成格雷码,给一个序列a,若转成的格雷码第i位为1,则得分+a[i]。求填充问号使得得分最多。思路:如果了解格雷码的转换,相信能很快看出一些端倪。偷别人的图: 分析一下:所给的二进制数要转成格雷码,只... 阅读全文
posted @ 2015-08-11 23:16 xcw0754 阅读(480) 评论(0) 推荐(0)
摘要:题意:给一个序列,找出1个连续子序列,将其平分成前,中,后等长的3段子序列,要求【前】和【中】是回文,【中】和【后】是回文。求3段最长为多少?由于平分的关系,所以答案应该是3的倍数。思路:先Manacher求最长子串,利用期间所记录的P 数组,穷举一下所有可能的前两串,再用O(1)时间判断第3串... 阅读全文
posted @ 2015-08-11 22:26 xcw0754 阅读(318) 评论(0) 推荐(0)
摘要:题意: 有n个蚂蚁n棵树,蚂蚁与树要配对,在配对成功的一对之间连一条线段,要求所有线段不能相交。按顺序输出蚂蚁所匹配的树。思路: 这个题目真是技巧啊,不能用贪心来为每个蚂蚁选择最近的树,这样很可能是相交了的。 整体最优能让每条线段不相交,证明: 假设a1-b1与a2-b2相交。则dis(a1... 阅读全文
posted @ 2015-08-10 22:57 xcw0754 阅读(439) 评论(0) 推荐(0)
摘要:KM算法大概过程: (1)初始化Lx数组为该boy的一条权值最大的出边。初始化Ly数组为 0。 (2)对于每个boy,用DFS为其找到一个girl对象,顺路记录下S和T集,并更新每个girl的slack值。若不能为其找到对象,则转3。 (3)找出非T集合的girl的最小slack值为d,更... 阅读全文
posted @ 2015-08-10 20:42 xcw0754 阅读(1588) 评论(0) 推荐(0)
摘要:题意: 给n个点编号为0~n-1,0号点为根,给m条边(含自环,重边),每条边有个代价,也有带宽。给定c,问代价不超过c,树形图的最小带宽的最大值能达到多少?思路: 点数才60,而带宽范围也不大,可以进行二分穷举最小带宽,将小于穷举值的边“禁用”,进行求树形图!只要能求得树形图,说明带宽还能继续... 阅读全文
posted @ 2015-08-09 22:39 xcw0754 阅读(221) 评论(0) 推荐(0)
摘要:题意: n个城市,m条路,每条路有个危险值,要使得从s走到t的危险值最小。回答q个询问,每个询问有s和t,要求输出从s到t最小的危险值。(5万个点,10万条边)思路: 其实要求的是任意点对之间的最小瓶颈路的权值。 先对图求一次MST,那么所有的瓶颈路都在上面。但是q0)16 ... 阅读全文
posted @ 2015-08-09 12:43 xcw0754 阅读(399) 评论(0) 推荐(0)
摘要:题意:ZJiaQ希望把木人桩摆在自家的那个由1*1的地砖铺成的1*n的院子里。由于ZJiaQ是个强迫症,所以他要把一个木人桩正好摆在一个地砖上,由于木人桩手比较长,所以两个木人桩之间地砖必须大于等于两个,现在ZJiaQ想知道在至少摆放一个木人桩的情况下,有多少种摆法。思路:题意类似于“要求找到所有满... 阅读全文
posted @ 2015-08-09 09:53 xcw0754 阅读(207) 评论(0) 推荐(0)
摘要:题意: 秦始皇要在n个城市之间修路,而徐福声可以用法术位秦始皇免费修1条路,每个城市还有人口数,现要求徐福声所修之路的两城市的人口数之和A尽量大,而使n个城市互通需要修的路长B尽量短,从而使得A/B最大。问A/B最大是多少?(1000个城市)思路: 老徐可免费修得1条路,那么剩下最多也只需要修n... 阅读全文
posted @ 2015-08-08 14:48 xcw0754 阅读(386) 评论(0) 推荐(0)
摘要:题意:求解最小生成树,以及最小瓶颈生成树上的瓶颈边。思路:只是求最小生成树即可。瓶颈边就是生成树上权值最大的那条边。 1 //#include 2 #include 3 #include 4 #include 5 #include 6 #define INF 0x7f7f7f7f 7 #d... 阅读全文
posted @ 2015-08-08 11:16 xcw0754 阅读(175) 评论(0) 推荐(0)
摘要:题意:Bessie要从牧场1到达各大牧场去,他从不关心他要走多远,他只关心他的水袋够不够水,他可以在任意牧场补给水,问他走完各大牧场,最多的一次需要多少带多少单位的水?思路:其实就是要让所带的水尽量少,即所选的每条路都要尽量短,即最小瓶颈生成树。其实也就是最小生成树。再求生成树上权值最大的边即可。 ... 阅读全文
posted @ 2015-08-08 10:56 xcw0754 阅读(245) 评论(0) 推荐(0)
摘要:题意:给定一个含n个元素的序列,求下式子的结果。S(i,j)表示为seq[i...j]之和。注:对于log20可视为1。数据量n 2 #define INF 0x7f7f7f7f 3 #define pii pair 4 #define LL long long 5 using namespace ... 阅读全文
posted @ 2015-08-07 23:11 xcw0754 阅读(626) 评论(0) 推荐(0)
摘要:题意: 有n个人可供邀请去hiking,但是他们很有个性,每个人都有个预期的人数上下限[Li,Ri],只有当前确定会去的人数在这个区间内他才肯去。一旦他答应了,无论人数怎样变更,他都不会反悔。问最多能邀请多少人去?输出邀请顺序(包括那些不去的人)。思路: 有点像贪心法的《活动时间安排》?但是本题... 阅读全文
posted @ 2015-08-07 12:59 xcw0754 阅读(255) 评论(0) 推荐(0)
摘要:题意:有n个人坐在圆桌上,每个人带着糖果若干,每次只能给旁边的人1科糖果,而且坐相邻的两个人最多只能给一次(要么你给我,要么我给你),问是否能将糖果平均分了。思路: 明显每个人最多只能多于平均值2个糖果,因为他只能分别往左和右边的人给1颗。而多于平均值1的人可以任意选1个方向,只要到最后所有人满足... 阅读全文
posted @ 2015-08-06 21:47 xcw0754 阅读(768) 评论(13) 推荐(1)
摘要:题意: 给一个由n*m个正方形格子组成的矩形,其中每个格子的边都是可以走的,长度给定,规定:如果在进入该路前需要拐弯,或者走完该路需要拐弯,都是需要付出双倍距离的(每条路最多算2倍)。问从起点到终点的最短路经长。思路: 这个题目超级难搞,思路很简单,就是很麻烦!!!我将1个点4个方向的路长都记录... 阅读全文
posted @ 2015-08-05 21:15 xcw0754 阅读(292) 评论(0) 推荐(0)
摘要:题意: 给一个所有你可能想得到的奇葩无向图,要求给每条边定向,使得每个点的入度与出度之差不超过1。输出1表示定向往右,输出0表示定向往左。思路: 网络流也是可以解决的!!应该挺简单理解的。但是由于复杂度的问题,EK和Dinic都搞不定,ISAP才行。 利用欧拉回路的思想。既然每个点的入度与出度... 阅读全文
posted @ 2015-08-05 20:58 xcw0754 阅读(439) 评论(0) 推荐(0)
摘要:题意:给一个序列A,设序列B的中的元素有(Ai+Aj)(1≤i,j≤n),那么求B中所有元素的异或之和。而序列A是这样来的:A1=0,Ai=(Ai−1∗m+z) mod l。思路:相同的元素异或结果为0,所以可以去掉,也就是剩下A中的元素ai+ai那些而已。 小心乘法会溢出 1 #include ... 阅读全文
posted @ 2015-08-04 23:45 xcw0754 阅读(242) 评论(0) 推荐(0)
摘要:题意: 给一个带权无向图,求其至少有3个点组成的环的最小权之和。思路: (1)DFS可以做,实现了确实可以,只是TLE了。量少的时候应该还是可以水一下的。主要思路就是,深搜过程如果当前点搜到一个点访问过了,而其不是当前点的父亲,则肯定有环,可以更新答案。深搜过程要记录路径和,父亲,是否访问过等等... 阅读全文
posted @ 2015-08-02 14:58 xcw0754 阅读(342) 评论(0) 推荐(0)
摘要:题意:有n个站排成一列,针对每个站的位置与距离关系,现有多个约束条件,约束条件分两种:(1)确定的。明确说明站a距离站b多少个单位距离。(2)不确定的。只知道a在b的左边至少1个单位距离。 根据已知条件,问有没有冲突?不冲突则输出reliable。思路: 第2种条件比较好确定,如果知道如何用最短路... 阅读全文
posted @ 2015-08-02 13:28 xcw0754 阅读(185) 评论(0) 推荐(0)
摘要:题意: 判断是否能将字符串S分成三段非空回文串。思路: 先预处理出前缀回文串和后缀回文串的位置,将位置分别装入两个集合中,O(n)。 针对每个前缀回文串的终点位置,挑出不相交的后缀回文串,对中间那段进行暴力匹配即可。只有20个case,不会超时的。 具体的算法参考HIHOCODER HIHO... 阅读全文
posted @ 2015-08-01 23:03 xcw0754 阅读(234) 评论(0) 推荐(0)
摘要:题意:给定一个序列,要求从这个序列中挑出k个数字,使得n%a1%a2%a3....=0(顺序随你意)。求k的最小值。思路:排个序,从大的数开始模起,这是因为小的模完还能模大的么? 每个元素可以选,也可以不选,两种情况。递归穷举每个可能性,O(2n)。 1 //#include 2 #includ... 阅读全文
posted @ 2015-08-01 22:52 xcw0754 阅读(203) 评论(0) 推荐(0)
摘要:题意:假设一个序列S有n个元素,现在有一堆约束,限制在某些连续子序列之和上,分别有符号>和d。而c是两个字符构成,判断前1个字符足矣。思路: 首先考虑要用点来表示什么,可以看到所给的是区间,也就是首尾的位置,可令sum(a)表示序列a[1...a]的和,那么表达式大概为sum(a+b)-sum(a... 阅读全文
posted @ 2015-08-01 17:57 xcw0754 阅读(209) 评论(0) 推荐(0)
摘要:题意: 给一个n*m矩阵,每个格子上有一个数字a[i][j],给定L和U,问:是否有这样两个序列{a1...an}和{b1...bn},满足 L 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #d... 阅读全文
posted @ 2015-08-01 15:23 xcw0754 阅读(221) 评论(0) 推荐(0)
摘要:题意: 有一个集合Z,其元素都是整整数,但是数量未知。现有n个约束,形如 [a,b]=c 表示整数区间[a,b]中有c个元素在Z中出现。问集合Z最小可能含多少个元素?思路: 对于所给的区间 cnt[b-a]>=k这可以保证了该区间内个数不少于k。但是由于两边都是闭区间,所以要变cnt[b-(a-... 阅读全文
posted @ 2015-08-01 11:45 xcw0754 阅读(173) 评论(0) 推荐(0)