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