BZOJ2298 [HAOI2011]problem a 【dp】】的更多相关文章

题目 一次考试共有n个人参加,第i个人说:"有ai个人分数比我高,bi个人分数比我低."问最少有几个人没有说真话(可能有相同的分数) 输入格式 第一行一个整数n,接下来n行每行两个整数,第i+1行的两个整数分别代表ai.bi 输出格式 一个整数,表示最少有几个人说谎 输入样例 3 2 0 0 2 2 2 输出样例 1 提示 100%的数据满足: 1≤n≤100000 0≤ai.bi≤n 题解 一个人的话意思就是自己的分数排名在区间\([a_i + 1,n - b_i]\)之间,且这个区…
题目 给n个人安排座位,先给每个人一个1~n的编号,设第i个人的编号为ai(不同人的编号可以相同),接着从第一个人开始,大家依次入座,第i个人来了以后尝试坐到ai,如果ai被占据了,就尝试ai+1,ai+1也被占据了的话就尝试ai+2,--,如果一直尝试到第n个都不行,该安排方案就不合法.然而有m个人的编号已经确定(他们或许贿赂了你的上司...),你只能安排剩下的人的编号,求有多少种合法的安排方案.由于答案可能很大,只需输出其除以M后的余数即可. 输入格式 第一行一个整数T,表示数据组数 对于每…
Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) Input 第一行一个整数n,接下来n行每行两个整数,第i+1行的两个整数分别代表ai.bi Output 一个整数,表示最少有几个人说谎 Sample Input 32 00 22 2Sample Output1HINT 100%的数据满足: 1≤n≤100000   0≤ai.bi≤n 思路:很明显,有x人比他成绩好,y个人比他成绩差,那剩下…
HDOJ 1423 Greatest Common Increasing Subsequence [DP][最长公共上升子序列] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 8768 Accepted Submission(s): 2831 Problem Description This is a problem from ZOJ 24…
HDOJ 1501 Zipper [DP][DFS+剪枝] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 10886 Accepted Submission(s): 3925 Problem Description Given three strings, you are to determine whether the third str…
HDOJ 1257 最少拦截系统 [DP] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 50753 Accepted Submission(s): 19895 Problem Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹…
HDOJ 1159 Common Subsequence[DP] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 44280 Accepted Submission(s): 20431 Problem Description A subsequence of a given sequence is the given sequence wit…
HDOJ_1087_Super Jumping! Jumping! Jumping! [DP] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 44670 Accepted Submission(s): 20693 Problem Description Nowadays, a kind of chess game called "Super…
https://www.bnuoj.com/v3/contest_show.php?cid=9146#problem/D [题意]给定n1个A,n2个B,排成一排,要求A最多能连续k1个紧挨着,B最多能连续k2个紧挨着.问排队的方案数. [思路]dp.dp[i][j][k][l]表示当前已经排了i个A,j个B,有k个A紧挨着,l个B紧挨着,那么由dp[i][j][k][l]可以推出dp[i+1][j][k+1][0]和dp[i][j+1][0][l+1] 初始化dp[0][0][0][0]为1,…
http://codeforces.com/contest/811/problem/C [题意] 给定一个自然数序列,在这个序列中找出几个不相交段,使得每个段的异或值之和相加最大. 段的异或值这样定义:段中每个不同数字(不重复)相异或. 段有这样的要求:段中任意一个数字不会在段外出现. [思路] 首先预处理每个数字第一次出现和最后一次出现的位置,这样对于一个区间[l,r]就很容易判断是否为满足题意的段. 然后区间DP,dp[i]表示子序列[1,i]的最大值. 状态转移:对于dp[i],最小值为d…