思路
文章平均质量分 76
我爱AI_AI爱我
不爱
展开
-
利用O(nlogn)的LIS的思路题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5773 题意:T组数据,每组数据是长度为n的数组,其中0可以换为任意的整数(可以使复数)问这个数组的最长上升子序列(严格上升)原创 2016-07-29 22:10:08 · 403 阅读 · 0 评论 -
数学+思维(此题有多种做法,个人觉得思维更有趣)
http://acm.hdu.edu.cn/showproblem.php?pid=5776 题意:T组数据,长度为n的数组,问数组中有没有一段的和能被m整除,输出yes,no 解析:暴力必超时,考虑使用到m。用sum[i]表示从零开始到该点的sum和,通过两个sum相减可以得到一段区间的和。但此题不用这点,此题通过sum[i]对m求和,来降低复杂度。只需判断是否存在两个sum(取余后)是相等原创 2016-07-30 22:46:37 · 442 阅读 · 0 评论 -
最大子序列和(dp+ rmq/队列)
http://exam.upc.edu.cn/problem.php?id=1552 题意:长度为n的数组,再加一限制条件m。求长度最大为m的连续子序列和是多少。m是个正整数 分析:我们都知道如果没有限制条件,求最大连续子序列的和只需用方程:dp[i] = max(0,dp[i - 1] + a[i])即可。复杂度O(n) 此题加上了限制,此时可将dp方程改为:dp[i] =sum[原创 2016-08-08 16:07:01 · 357 阅读 · 0 评论 -
思路+二分
http://exam.upc.edu.cn/problem.php?id=1550 题意:给一堆数字,生成最小堆,要求是输出的数组是字典序最大的(不用构造堆) 思路:最小堆的特点是根节点的值最小,其他随意。为保证字典序最大,我们让左子树全部都比右子树大。只需对数组排序再二分来找。二分是需要 注意是如何分配区间的。用int mid = l + (r - l) / 2;//r - l表示的是一个原创 2016-08-08 16:58:12 · 212 阅读 · 0 评论 -
模拟栈问题(思路)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5818 题意:对于栈A,和B有三种操作分别是1.对A或 B push 2.对A或B pop 3.将A,B合并到后者中 分析:如果只用AB两个栈,无论是标记A,B,还是将A,B对应的位置存在数组中,都难以实现复杂度。这里根据题解的方法,再开一个栈C 那么再开一个栈有什么用呢?这里的栈C,用来原创 2016-08-10 15:59:55 · 247 阅读 · 0 评论 -
其实人家是模拟。。。(思路)(统计cow出现的次数)
链接:http://exam.upc.edu.cn/problem.php?cid=1105&pid=7 题意:给以个长度为n的字符串,其中只有c,o,w三个字母。统计cow出现的次数,可以中间夹字母,但顺序必须是对的。如:cowc ,1.coowww,6 解析:如果当前点是o,那么co的个数只与前面出现过的c的个数有关。如果当前点是w,cow的个数只与前面co个数有关。将所有当前点是w的原创 2016-08-22 15:49:40 · 523 阅读 · 0 评论 -
树上dfs + 思维
the number lamp ai, it is hanging on (and 0, if is there is no such lamp), 表示的是祖先的序号原创 2017-02-21 20:20:54 · 588 阅读 · 0 评论