摘要:
比赛链接:http://codeforces.com/gym/100861 A模拟,注意两个特殊的缩写。 B排序+离散化 C贪心,就像搭积木一样,全是1*1*1的小方块,要想让表面积尽可能小,那就把他们往一个角落堆。比如 3 3 1 2 3 4 5 6 7 8 9这样的数据,那么排出来就是。 9 8 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5787 题意:求[L,R]区间内的数字,使得所有长度为k的子数列内所有数位都不同。 K<=5的所以可以直接记录到前k个数字的值是多少。dp(l,p1,p2,p3,p4)分别记录就可以了。 弱智了WA了好几 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5783 题意:给n个数,要求划分成多个段,使得每一个段的任意前缀和都不小于0。 从后往前截取,这样不会影响到未截取的部分。维护当前的前缀和,每次截取不要忘记给前缀和置零。 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5791 题意:给两个数列,求有多少个公共子序列。 dp(i,j)表示a1~ai和b1~bj的公共子序列个数,当ai==bj的时候,dp(i,j)=dp(i-1,j)+dp(i,j-1)+1。否则dp(i, 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5763 题意:给定两个字符串a和b,其中a中的字符串如果含有子串b,那么那部分可以被替换成*。问有多少种替换方法。 kmp求出b在a中完全匹配后的结尾位置,然后dp(i)表示匹配到i时替换的方案数(不替换 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5773 题意:给n个数,其中0可以用任何数字代替,问如何替换0使整个数列中的LIS最长。 0可以用任何数字替换,那显而易见不管如何最长的情况就是0全部用上。这是网上的思路,维护前缀和sum表示0的个数,在 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5877 题意:给一棵树和各点的权值a,求点对(u,v)个数,满足:1.u是v的祖先,2.a(u)*a(v)<=k。 对于这棵树,我们先存好树的结构。再离散化,最后dfs的时候往线段树里插点,那对应idx的 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5726 题意:给定数列,求区间[L,R]的GCD的值,并求出有多少个子区间满足和[L,R]的GCD相等。 RMQ预处理所有区间的GCD,枚举所有区间的左边界i,起初固定右边界j,二分枚举右边界j的最大值, 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5723 题意:求最小生成树,并且求这棵最小生成树上所有边走过次数的期望。 走过次数的期望=Σ边被走过次数*边权/(n*(n-1)/2) 求边被走过的次数,相当于关心这个边的两侧分别有多少点,走的次数就是两 阅读全文
摘要:
题目链接:http://poj.org/problem?id=2182 题意:给定1~n个数和n个位置,已知ai表示第i个位置前有ai个数比当前位置的数小,求这个排列。 和刚才YY的题意蛮接近的,用树状数组维护当前数组内数字分别是第几大的,倒着查询,每次查尽可能靠右的位置,可以保证取的数字是未取到并 阅读全文