05 2016 档案

摘要:题目链接: http://codeforces.com/contest/664/problem/B 题意: 给你一个等式,把等式左边的问号用1到n(n为等式右边的数)的数填好,使得等式成立 题解: 贪心求出最小最大值,如果n在这个范围则有解,否则无解。 构造解: 取最小值或最大值,然后从第一个数开始 阅读全文
posted @ 2016-05-31 21:23 fenicnn 阅读(201) 评论(0) 推荐(0)
摘要:题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=1083 代码: 阅读全文
posted @ 2016-05-31 11:43 fenicnn 阅读(215) 评论(0) 推荐(0)
摘要:题目链接: http://www.codeforces.com/contest/629/problem/E 题解: 树形dp。 siz[x]为x这颗子树的节点个数(包括x自己) dep[x]表示x这个节点的深度,从1开始(其实从什么开始都可以,我们这里用到的只是相对距离) 对于查询u,v,总共有三种 阅读全文
posted @ 2016-05-30 22:41 fenicnn 阅读(220) 评论(0) 推荐(0)
摘要:题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4681 题意: 给你a,b,c三个串,构造一个d串使得d是a,b的子序列,并且c是d的连续子串。求d最大的长度。 题解: 枚举a,b串开始匹配c的位置,(结束的位置可以贪心出来),然后前后都用最长公共子序 阅读全文
posted @ 2016-05-30 17:27 fenicnn 阅读(202) 评论(0) 推荐(0)
摘要:题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1640 题解: 先求最小生成树,记录最大边。 然后求最大生成树,保证所有边小于等于最小生成树的最大边。 阅读全文
posted @ 2016-05-30 14:15 fenicnn 阅读(175) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5637 题意: http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=675&pid=1003 题解: 令n=(1<<1 阅读全文
posted @ 2016-05-30 13:12 fenicnn 阅读(203) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5682 题意: 选择一些节点的beautiful值,让所有边相连的两个端点的beatiful值的差的绝对值的最大值最小 题解: 一看到让最大值最小,或者最小值最大就应该想到二分法。 这样就能把问题变为判 阅读全文
posted @ 2016-05-30 10:36 fenicnn 阅读(220) 评论(0) 推荐(0)
摘要:题目链接: http://www.codeforces.com/contest/446/problem/A 题解: dp1[x]表示以x结尾的最大严格升序连续串,dp2[x]表示以x开头的最大严格升序连续串 阅读全文
posted @ 2016-05-30 09:36 fenicnn 阅读(148) 评论(0) 推荐(0)
摘要:题目链接: http://codeforces.com/contest/670/problem/E 题解: 用STL的list和stack模拟的,没想到跑的还挺快。 代码: 阅读全文
posted @ 2016-05-30 00:39 fenicnn 阅读(181) 评论(0) 推荐(0)
摘要:题目链接: http://codeforces.com/contest/670/problem/D2 题解: 二分答案。 阅读全文
posted @ 2016-05-30 00:16 fenicnn 阅读(215) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5638 题意: 给你一个DAG图,删除k条边,使得能个得到字典序尽可能小的拓扑排序 题解: 把拓扑排序的算法稍微改一下,如果某个顶点的入度小于k也把它加到优先队列里面去。 k减小后队列里面会有些点不满足 阅读全文
posted @ 2016-05-29 21:18 fenicnn 阅读(248) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5294 题意: 给你个无向图: 1、求最少删除几条边就能破坏节点1到节点n的最短路径, 2、最多能删除多少条边同时保证1到n的最短距离不变。 题解: 首先用spfa或dijcstra跑出所有最短路组成的 阅读全文
posted @ 2016-05-29 18:59 fenicnn 阅读(161) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5293 题意: 给你一些链,每条链都有自己的价值,求不相交不重合的链能够组成的最大价值。 题解: 树形dp, 对于每条链u,v,w,我们只在lca(u,v)的顶点上处理它 让dp[i]表示以i为根的子树 阅读全文
posted @ 2016-05-29 15:44 fenicnn 阅读(788) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=13013 题意: 给你一颗树,现在有两个操作,一种是改变某条边的权值,一种是查询点u到v之间的路径的最大边权。 题解: 树链剖分入门题。 我看的一些博客: http: 阅读全文
posted @ 2016-05-29 02:01 fenicnn 阅读(1204) 评论(0) 推荐(0)
摘要:题目链接: http://www.codeforces.com/contest/655/problem/D 题意: 题目是要求前k个场次就能确定唯一的拓扑序,求满足条件的最小k。 题解: 二分k的取值,做拓扑排序的时候只要每次只有一个元素没有前驱就可以唯一了。 阅读全文
posted @ 2016-05-28 15:42 fenicnn 阅读(135) 评论(0) 推荐(0)
摘要:题目链接: http://codeforces.com/contest/676/problem/D 题意: 如果两个相邻的格子都有对应朝向的门,则可以从一个格子到另一个格子,给你初始坐标xt,yt,终点坐标xm,ym,现在你可以选择在原地把地图上所有格子顺时针旋转90度;或者往上下左右走一格,问走到 阅读全文
posted @ 2016-05-28 14:34 fenicnn 阅读(205) 评论(0) 推荐(0)
摘要:题目链接: http://codeforces.com/contest/673/problem/D 题意: 给四个不同点a,b,c,d,求是否能构造出两条哈密顿通路,一条a到b,一条c到d。 题解: 构造法,看例子: input: 5 6 5 2 4 1 output: 5 4 3 1 2 4 5 阅读全文
posted @ 2016-05-28 02:03 fenicnn 阅读(119) 评论(0) 推荐(0)
摘要:题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=4500 题解: 从行向列建边,代表一个格子a[i][j],对每个顶点的所有操作可以合并在一起用sum[xi]表示, 那么题目相当于是要求sum[xi]+sum[xj]==a[xi][xj]; 阅读全文
posted @ 2016-05-28 00:37 fenicnn 阅读(195) 评论(0) 推荐(0)
摘要:题目链接: http://www.codeforces.com/contest/675/problem/C 题意: 给一个数组,每个数与他相邻的数相连,第一个与最后一个相连,每个数的数值可以左右移动,问最少的移动次数使所有的数都为零。 题解: 把数组分成若干个部分,每个部分和都为0,每部分最多移动l 阅读全文
posted @ 2016-05-27 21:19 fenicnn 阅读(114) 评论(0) 推荐(0)
摘要:题目链接: http://www.codeforces.com/contest/675/problem/E 题意: 对于第i个站,它与i+1到a[i]的站有路相连,先在求所有站点i到站点j的最短距离之和(1<=i<j<=n) 题解: 这种所有可能都算一遍就会爆的题目,有可能是可以转化为去求每个数对最 阅读全文
posted @ 2016-05-27 20:38 fenicnn 阅读(167) 评论(0) 推荐(0)
摘要:题目链接: http://codeforces.com/contest/673/problem/C 题解: 枚举所有的区间,维护一下每种颜色出现的次数,记录一下出现最多且最小的就可以了。 暴力n*n. 阅读全文
posted @ 2016-05-27 18:36 fenicnn 阅读(140) 评论(0) 推荐(0)
摘要:题目链接: http://acm.fzu.edu.cn/problem.php?pid=2044 题意: 给出 一大堆数,找出2个出现次数模3 为1 的两个数字 题解: 把一个数分为几位拆开统计,统计完后,把所有的位数都模三,这样剩下的数就为a和b的叠加了,但是信息丢失太多了,没有办法把a,b区分开 阅读全文
posted @ 2016-05-27 00:29 fenicnn 阅读(168) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34651 题意: 给定一个有向图,每一条边都有一个权值,每次你可以选择一个节点v和一个整数d,把所有以v结尾的边权值减小d,把所有以v为起点的边的权值增加d,最后要让 阅读全文
posted @ 2016-05-26 20:25 fenicnn 阅读(175) 评论(0) 推荐(0)
摘要:题目链接: http://codeforces.com/contest/676/problem/C 题解: 把连续的一段压缩成一个数,对新的数组求前缀和,用两个指针从左到右线性扫一遍。 一段值改变一部分的情况考虑的不够周到,wa了两次。 阅读全文
posted @ 2016-05-26 15:34 fenicnn 阅读(171) 评论(0) 推荐(0)
摘要:题目链接: http://codeforces.com/contest/672/problem/C 题意: 公园里有两个人一个垃圾桶和n个瓶子,现在这两个人需要把所有的瓶子扔进垃圾桶,给出人,垃圾桶,瓶子的坐标,问两个人需要走的最短距离和。 题解: 首先必须要有一个人先去检一个瓶子,然后走到垃圾桶, 阅读全文
posted @ 2016-05-25 20:11 fenicnn 阅读(221) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5691 题解: 和tsp用的状压差不多,就是固定了一些访问顺序。 dp[i][j]表示前cnt个点中布满状态i且最后一个为j的状态的最大乘积和。 则有dp[i|(1<<k)][k]=max(dp[i|( 阅读全文
posted @ 2016-05-24 21:53 fenicnn 阅读(245) 评论(0) 推荐(0)
摘要:题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=4443 题解: 二分答案,判断最大匹配是否>=n-k+1; 阅读全文
posted @ 2016-05-24 15:42 fenicnn 阅读(176) 评论(0) 推荐(0)
摘要:题目链接: http://codeforces.com/contest/675/problem/A 题意: 给你一个等差数列,问你b是不是其中的一项。 即是否存在大于等于0的整数k使得a+k*c==b。只要求(b-a)%c==0&&(b-a)/c>=0就可以了。 但是,我就是写成了二分。。而且还写搓 阅读全文
posted @ 2016-05-24 01:01 fenicnn 阅读(156) 评论(0) 推荐(0)
摘要:题目链接: http://codeforces.com/contest/675/problem/D 题意: 给你一系列点,叫你构造二叉搜索树,并且按输入顺序输出除根节点以外的所有节点的父亲。 题解: n有10^5,如果直接去建树,最会情况会O(n^2)t掉。 因此我们需要利用一些二叉搜索树的性质: 阅读全文
posted @ 2016-05-24 00:40 fenicnn 阅读(220) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5693 题解: 一种朴实的想法是枚举选择可以删除的两个或三个数(其他的大于三的数都能凑成2和3的和),删掉。然后一直递归下去。但删除子串的操作不容易,而且搜索复杂度有点大,记忆化判相同子序列也不容易。 阅读全文
posted @ 2016-05-23 15:05 fenicnn 阅读(219) 评论(0) 推荐(0)
摘要:题目链接: http://www.codeforces.com/contest/666/problem/B 题意: 给你n个城市,m条单向边,求通过最短路径访问四个不同的点能获得的最大距离,答案输出一个满足条件的四个点。 题解: 首先预处理出任意两点的最短距离,用队列优化的spfa跑:O(n*n*l 阅读全文
posted @ 2016-05-23 00:07 fenicnn 阅读(185) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5695 题解: 求出字典序最大的拓扑序。然后把求好的数列翻转过来就是满足条件的数列,然后模拟求一下value就可以了。 阅读全文
posted @ 2016-05-22 19:42 fenicnn 阅读(136) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5151 题解: 有n个椅子,编号为1到n。 现在有n个同学,编号为1到n,从第一个同学开始选择要坐的位子,并且这个同学不能坐同时满足下面三个条件的椅子。 1、左右都有相邻的位子 2、左右相邻的位子都是空 阅读全文
posted @ 2016-05-21 23:10 fenicnn 阅读(238) 评论(0) 推荐(0)
摘要:题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=4554 题解: 如果没有硬石头的话,就是’*‘点对应的行列建边,然后跑最大匹配 硬石头什么作用?它可以让同一行或同一列存在不只一个炸弹,因此我们可以将一个硬石头的上下拆成两列,左右拆成两行, 阅读全文
posted @ 2016-05-20 23:50 fenicnn 阅读(232) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33787 题意: 用1*2或2*1的长条把n*m方格铺满的方案数。裸的轮廓线dp。 代码: 阅读全文
posted @ 2016-05-20 21:17 fenicnn 阅读(160) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4685 题解: 这一题是poj 1904的加强版,poj 1904王子和公主的人数是一样多的,并且给出了一个完美匹配,而这一题王子和公主的人数是不同的,而且没有给出任何匹配。因此借鉴1904的做法,我们 阅读全文
posted @ 2016-05-20 02:27 fenicnn 阅读(193) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5564 题意: 求长度在[L,R]范围,并且能整除7的整数的总数。 题解: 考虑最原始的想法: dp[i][j][k]表示长度为i,并且对7取模得到j的以k结尾的数。 则有状态转移方程dp[i+1][( 阅读全文
posted @ 2016-05-19 20:30 fenicnn 阅读(243) 评论(0) 推荐(0)
摘要:题目链接: http://poj.org/problem?id=1904 题意: 有n个王子和n个公主,王子只能娶自己心仪的公主(一个王子可能会有多个心仪的公主),现已给出一个完美匹配,问每个王子都可以取哪些公主,并且保证取了一个公主后,全局还是存在完美匹配。 题解: 1、建图: 如果王子u对公主v 阅读全文
posted @ 2016-05-19 20:05 fenicnn 阅读(179) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5597 题意: http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=658&pid=1003 题解: f0(1)=2; 阅读全文
posted @ 2016-05-12 23:02 fenicnn 阅读(185) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5568 题意: 求所有长度为k的严格升序子序列的个数。 题解: 令dp[i][k]表示以i结尾的长度为k的所有严格升序子序列的个数,则有状态转移:dp[i][k]+=dp[j][k-1](其中,arr[ 阅读全文
posted @ 2016-05-12 17:48 fenicnn 阅读(200) 评论(0) 推荐(0)
摘要:My: 阅读全文
posted @ 2016-05-09 21:02 fenicnn 阅读(238) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5593 题意: http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=654&pid=1004 题解: 先自底向上跑一遍 阅读全文
posted @ 2016-05-09 17:22 fenicnn 阅读(144) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5592 题意: http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=654&pid=1003 题解: 对给的n个数做差 阅读全文
posted @ 2016-05-09 14:14 fenicnn 阅读(144) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5647 题解: 令dp[u][0]表示u所在的子树中所有的包含i的集合数,设u的儿子为vi,则易知dp[u][0]=(dp[v1][0]+1)*...*(dp[vk][0]+1)。 令dp[u][1]表 阅读全文
posted @ 2016-05-09 00:53 fenicnn 阅读(147) 评论(0) 推荐(0)
摘要:题目链接: http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=3870 题解: 如果x xor y>max(x,y),那么就会有x和y的最高位不同(二进制表示),并且对于最高位小的那个数的最高位的位置,最高位大的那个数在相同的位置应 阅读全文
posted @ 2016-05-08 23:17 fenicnn 阅读(133) 评论(0) 推荐(0)
摘要:题目链接: http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=3941 题解: 先吧所给的区间合并,得到若干个独立的区间。 然后从左到右把所有的区间都铺满个,并且对每个独立的区间的最后一个点考虑放和不放两种情况(dfs做,总复杂度也 阅读全文
posted @ 2016-05-07 22:49 fenicnn 阅读(301) 评论(0) 推荐(0)
摘要:题目链接: http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=3946 题解: 用dijkstra跑单元最短路径,如果对于顶点v,存在一系列边(ui,v)使得dis[v]最小(dis[v]表示0到v的距离)。这些边能且只能选一条,那 阅读全文
posted @ 2016-05-07 22:41 fenicnn 阅读(227) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=20885 题意: 求二维最长严格递增子序列。 题解: O(n^2)的算法很好想,不过这里会t掉,只能O(nlogn) 于是用二分来维护: 先把所有的数按x递增排序,x 阅读全文
posted @ 2016-05-07 01:50 fenicnn 阅读(898) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1677 题意: 玩俄罗斯套娃,问最后至少还剩几个。 题解: 这题可以和拦截导弹做对比,因为这里是二维的,按w递减h递增的方式来保证在保存的序列中按h升序来排的,从而为二分查找打下基础。 否则,如果按h降 阅读全文
posted @ 2016-05-06 01:29 fenicnn 阅读(180) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1257 题解: 阅读全文
posted @ 2016-05-05 20:38 fenicnn 阅读(181) 评论(0) 推荐(0)
摘要:题目链接: http://poj.org/problem?id=2063 题意: 你现在有现金m元,你要做n年的存款投资,给你k种投资方式,每种需要现金vi元,能获得xi元的理论,一年到期后你要利用拿到的本息和重新投资,问这样做n年最后能拿到的最大本息和是多少。 题解: dp[i]表示你花i元去投资 阅读全文
posted @ 2016-05-05 19:45 fenicnn 阅读(180) 评论(0) 推荐(0)
摘要:题目链接: http://poj.org/problem?id=2392 题意: 给你k类方块,每类方块ci个,每类方块的高度为hi,现在要报所有的方块叠在一起,每类方块的任何一个部分都不能出现在ai以上的高度,问这些方块能叠的最高高度。 题解: 首先按ai升序排序,尽量让高度限制低的先排掉,如果不 阅读全文
posted @ 2016-05-05 13:13 fenicnn 阅读(188) 评论(0) 推荐(0)
摘要:题目链接: http://codeforces.com/problemset/problem/154/A 题意: 给你一个字符串,和若干模板串(长度为2),至少删除多少个字母,使得字符串的字串里面没有模板串。 题解: dp[i][j]表示合法子串s[0...i]的最后一位为j时的最小花费(花费指删除 阅读全文
posted @ 2016-05-05 01:35 fenicnn 阅读(183) 评论(0) 推荐(0)
摘要:题目链接: http://codeforces.com/problemset/problem/57/C 题意: 给你一个数n,表示有n个数的序列,每个数范围为[1,n],叫你求所有非降和非升序列的个数。 题解: 由于对称性,我们只要求非降序的个数就可以了(n个数全部相等的情况既属于非升也属于非降) 阅读全文
posted @ 2016-05-05 01:18 fenicnn 阅读(398) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5155 题意: 给n*m的零一矩阵,问它的左视图和正视图都为全1的所有情况。 题解: n,m不超过50,所以可以跑O(n^4); 另dp[i][j]代表前i行(每一行至少放一个,因为这样就可以只考虑列会 阅读全文
posted @ 2016-05-02 00:45 fenicnn 阅读(214) 评论(0) 推荐(0)
摘要:题目链接: http://poj.org/problem?id=1971 题意: 二维空间给n个任意三点不共线的坐标,问这些点能够组成多少个不同的平行四边形。 题解: 使用的平行四边形的判断条件:对角线互相平分的四边形是平行四边形。 所以我们枚举每一条线段,如果有两条线段的中点是重合的,那么这四个顶 阅读全文
posted @ 2016-05-01 01:25 fenicnn 阅读(444) 评论(0) 推荐(1)