自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

aozil_yang的博客

点滴记录,记录成长,帮助你我!

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

原创 POJ 3659 Cell Phone Network (树dp)

大体题意:给你一个棵树,要求选择尽量少的点,覆盖所有的点,选择一个点后,它相邻的点全都覆盖。思路:很明显树形dp。令dp[i][0],表示  选择i 这个点, 覆盖了以i 为根的子树所有的点。dp[i][1]表示 i 这个点不选,但选了 它的孩子一个结点,覆盖了以i 为根的子树所有的点。dp[i][2]表示i 这个点不选,但选了它的父亲,覆盖了 以i 为根的子树的所有结点。

2017-02-28 23:02:31 300

原创 UVA 1262 Password (水题)

大体题意:给你两个6行5列的数字矩阵,要求从每一列中选出一个字符来,使得两个矩阵中对应的列都存在,输出第k 小的密码。思路:数据量太小了。直接预处理出来每一列的合法字符,然后根据乘法原理,一步一步接近k 即可。有个坑:就是每一列可能有重复字符,要去重,这根据输出就可以晓得它的实际性。#include #include #include #include #def

2017-02-28 22:56:35 587

原创 Technocup 2017 - Elimination Round 3 -- D. Santa Claus and a Palindrome (贪心+Map瞎搞)

大体题意:给你n 个字符串的权值,要求每个字符串最多使用一次,使得组成一个长的回文串,使得权值最大,如果最大权值为负数,则输出0.思路:真的被这道题恶心到了。做这个题就是细心,讨论好就可以了。我们可以开一个map >mp; 来存取每个字符串的权值,因为相同字符串可以有多个权值,所以用vector存。枚举当前字符串s 时,如果发现不是回文串,直接找 s 对应的回文串,两边同时

2017-02-26 23:56:21 370

原创 UVA 714 Copying Books(二分+贪心)

大体题意:给你n 个数,要求分成m份,使得m份中的最大值最小,要求打印解,如果多解,要求第一份最小,其次第二份最小,,依次类推。思路:最大值最小,肯定是二分了。我们直接二分最大值,找一个最小的答案x。然后我们划分n 个数,因为越往前越小,所以肯定从后向前枚举。然后第i 个数要不要划分的话,有两个依据,当前和超过了x  或者 剩下的可以切的刀数不足 要求的刀数,那么就必须划分

2017-02-26 00:24:34 389

原创 UVA 11882 Biggest Number (dfs搜索+bfs 剪枝)

大体题意:给你一个r*c的数字矩阵,要求从任意一个点开始走,只能上下左右走, 求走的过数连接起来最大是多少?思路:直接dfs每一个数字,在每一层dfs中,加上bfs 判断剩下的数连接起来能否大于当前的ans 不能的话 剪枝了。虽然思路是这样的,但昨天一直TLE, 或许姿势不对,第二天重写了一遍 就好很多了= =#include #include #include #inc

2017-02-25 10:36:48 562

原创 UVA 12219 Common Subexpression Elimination (dfs瞎搞)

大体题意:给你一个字符串按照二叉树的形式,用消除公共表达式的方法可以减少表达式树上的的结点,输出最少的结点的图,详细见原题。思路:写的比较乱,感觉时间还行吧。借鉴一下吧。先写dfs 建树,在写个dfs2 从叶子结点向上更新父结点 重新标号,使得相同类的结点归为一类。在写个dfs3,重新从根节点标号,变得有序。最后print 函数  要么输出数字 要么输出字符串 讨论一下即可

2017-02-20 22:23:30 386

原创 UVA 307Sticks(dfs搜索)

大体题意:给你n个木棍,要求分配这个n 个木棍到x组,使得x组的木棍长度和都相同,问最小的长度和是多少?思路:直接搜索:需要加很多剪枝才能过:1.首先你枚举时,应该枚举组数,而不是长度和,否则循环会很长。2.如果第一个木棍选完了,没找到合适的使它权值和为枚举的答案,就不可能有答案了。3.如果第i个木棍能组成ans,但其余的不能了,也不能有答案了。4.当长度小于ans

2017-02-20 00:35:30 363

原创 Codeforces Round #398 (Div. 2) -- C. Garland (dfs)

大体题意:给你一颗树,要求切掉两个边,使得剩下的三个子树权值相同,问切哪两个边? 没有输出-1思路:因为第一次删除肯定是删除一个完整子树。所以直接统计出每个点包含的完整子树的权值之和, 发现一个点的权值之和等于sum/3 的话,就把它切掉,直到切掉两个为止。注意:切掉之后点的权值之和会发生改变。其次 根节点不能被切。#include #define mr make

2017-02-19 00:35:02 457

原创 Codeforces Round #398 (Div. 2) -- B. The Queue (贪心+暴力)

大体题意:告诉你工作站的工作起始时间 终止时间, 和处理一个人的时间间隔。并告诉你n 个人来的时间。 求你要求的话 什么时候去 排队时间最少, 如果你和某个人去的时间一样,你会排在它们后面。思路:暴力贪心就好了。先找有缝的,发现一个人的就诊时间大于上一个人结束时间,那么直接输出 上一个人输出时间。以上找的是不用排队的时间。如果找不到,就要找需要排队的时间。直接枚举每

2017-02-18 22:13:24 304

原创 ICPCCamp2017 Day 5 I Coprime Queries(莫比乌斯函数 + 容斥定理 + 二分)

题意:给你n 个数,和n 个询问,每个询问有l,r,x,问在区间l~r中与x互质的最大位置在哪里?思路:以为是个线段树,想了好久 都没有确切的好的思路。其实是容斥定理。考虑30:质因子分解 30 = 2*3 *5那么我们可以求出l到r中 与30 不互质的数有几个。很显然那些数满足 有2的因子或者有3 的因子或者有5的因子。是一个并集。那么我们就加上2的个数 加上

2017-02-18 03:13:45 497

原创 ICPCCamp2017 Day 5 E HDRF(DFS序列 + 线段树 + 离散化)

大体题意:给你一颗树,ri 为以当前结点为根的最小子树上的权值(单点),每个点有固定的权值vi,每个点的权值都不一样,每次你必须优先访问ri最小的,然后删掉,然后重新计算ri,求这个删除点的路径?思路:比赛中只想到了用dp 记录某个点的最小权值,然后一直跳下去,然后在回来更新dp这样肯定是超时的。因为回来更新太慢了。其实没必要用dp记录最小权值。直接给这棵树 进行dfs序列

2017-02-17 17:33:44 461

原创 ICPCCamp2017 Day 4 B Dissertation(LCS 动态规划--改进版 )

大体题意:给你两个字符串,求LCS的长度,一个不超过100W,一个不超过1000思路:正常的LCS的dp肯定不能进行,这样会超时。令dp[i][j]表示当前枚举的LCS的长度为第i位,字符为第二个字符串的的第j 个字符。dp[i][j] 为第一个字符串的的前哪个位置。那么假设dp[i][j] 是已知的话,那么考虑转移第j+1个字符,假设对LCS没有贡献的话,只能转移 dp[i]

2017-02-17 02:26:55 470

原创 ICPCCamp2017 Day 4 A The Catcher in the Rye(二分+光的折射定律)

大体题意:告诉你有三个矩形连在一起,要求你从第一个矩形左下角出发,到第三个矩形的右上角,在每个矩形中速度不一样,求最少时间?思路:最容易想到的是三分。取第一个矩形的走的高度是x, 第二个玻璃走的高度是y,列一个函数发现是一个凹函数。三分就好了。但是时间是0.25s  过不了。不过有大神 有一个小技巧,就是把这三个矩形 缩小h倍。  最后算完 在乘回去。  (好猛= =)

2017-02-16 22:51:03 423

原创 ICPCCamp2017 Day 4 F Factory(三分套三分)

大体题意:给你二维坐标面上n个点,让你求出一个点,到这n个点的距离和最小?思路:赛后才想出怎么做来= =写一写表达式:sqrt((x0-x1)^2 + (y0-y1)^2 ) + sqrt((x0-x2)^2 + (y0-y2)^2 ) + sqrt((x0-x3)^2 + (y0-y3)^2 ) ....观察发现,x0是一个凹凸函数(二次函数)关系,y0也是一个凹凸函数(

2017-02-16 21:11:38 654

原创 ICPCCamp2017 Day 3 F Median on Binary Tree(树dp)

觉的不写博客不行了,要不然以后都忘了= =大体题意:给你一个完全二叉树,标号为层次标号1~n,定义一个a(0求每个a的最大值。思路:题意很绕,比赛没做出来。观察a的值,(k-a+1)/2 这是1~ (k-a)的中位数。观察图发现:我们可以把中位数x左边的标成-1,右边的都标成+1那么这个子树的权值之和就是a 。可能大家觉得不好处理,应该是权值之和-1

2017-02-16 00:37:42 390

原创 HDU 3966 Aragorn's Story (树链剖分)

大体题意:给你一棵树,给你三种操作,u到v 结点之间的结点 加上K,减去k ,查询结点u的权值?思路:数据比较大,肯定不能直接暴力。通过这个题目学习到了树链剖分(可以百度一下)。这个题目用树状数组就足够了。简单记录一下 树链剖分。第一个dfs  记录每个结点深度和 重儿子(子孙最多的儿子)。第二个dfs 就开始把重边化成重链了。并且重新编号(因为树状数组和线段树只能

2017-02-13 01:50:33 473

原创 例题7-10 UVA 11212 Editing a Book (IDA*搜索)

大体题意:给你一个n 个数全排列数组,要求你可以选择一个连续的序列 随便插到一个位置,求最少几步 能到达严格上升的序列?思路:正解是IDA*搜索。一开始简单的以为是BFS ,一想 他还是一个 全排列的数组 用康托展开不正好可以完美哈希么,就写了个bfs  加了一些剪枝 ,9个数的数据跑的非常慢。应该用dfs。根据刘汝佳的分析,有几个地方分析的非常巧妙。我们可以利用后继不

2017-02-09 15:13:40 375

原创 HDU 5643 King's Game (约瑟夫环问题的变形 递推)

大体题意:有n 个人,进行比赛,第一轮比赛 从1开始报数,报到1的出局,第二轮报2,,,,  问最后谁没出局?思路:一看就是约瑟夫环问题的变型了。在简单记录一下思考的过程吧:n 个人 编号为0,1,2,,,,,n-1.假设这一局k-1 出局了。那么重新编号:k  k+1 k+2,,,, n-1  0 1   k-20  1     2              

2017-02-08 23:32:53 633

原创 HDU 5918 Sequence I (2016长春区域赛, KMP)

大体题意:给你a数组和b 数组和p,问有多少个子序列,aq,a(q+p),a(q+2p).,., 完全等于b 数组。思路:两个数组最大是1e6.又是字符串匹配问题,首先想到kmp算法。这个题目里面b 数组是固定的,直接获得b 的next数组。然后我们划分成p 个a数组,这p 个字符串分别与b 数组进行匹配即可。吐槽:当然还在想万一模板串比查找串的长度小,或者大怎么办

2017-02-08 23:26:27 477

原创 HDU 5978 To begin or not to begin (简单博弈--找规律)

大体题意:给你k 个黑球和1个红球,两个轮流抽,抽到红球算赢,问先手赢的概率大还是后手大,还是概率相等?思路:写几个小的数手算一下 就看到规律了。如果k 是偶数的话,那么先手的概率是 ((n+2)/3)/(n+1)  大于后手的概率 输出1如果k 是奇数的话,那么先手后手概率都是1/2.#include #include #include using namespac

2017-02-08 20:23:54 981

原创 HDU 5983 Pocket Cube (简单模拟)

大体题意:给你一个2*2*2的魔方,问你能否一步到达各个面的颜色完全一样。思路:其实挺简单的,题意已经给足了提示,已经告诉你了魔方怎么进行标号。(就是那个图)只要给魔方标号,怎么转就很简单了,可以预处理一个b 数组和c 数组,分别是魔方转一个面时候的侧面的八个面和上面的四个面,循环赋值即可。这样 写好循环赋值函数后,转六个面只需要更改b数组和c数组即可。详细见代码:#i

2017-02-06 15:49:43 1258

原创 Codeforces Round #395 (Div. 2) -- C. Timofey and a tree(并查集+缩点)

大体题意:给你一棵树,要求找一个结点来作为根节点,使得所有的子树颜色都一样,整棵树不是子树,其余的是,存在的话输出那个点。思路:并查集+缩点。先把颜色一样的,并且连在一起的点缩成一个点。(类似连通块) 缩点后也一定是树。这样最后的形式就是  一个根结点连接着很多其他结点,这样枚举所有的边,统计一下缩点的度数。找出那个度数为总和-1的那个点就是答案,没有的话,就是NO咯。

2017-02-03 01:57:24 443

空空如也

空空如也

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

TA关注的人

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