摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1914题目大意:问题大概是这样:有一个社团里有n个女生和n个男生,每位女生按照她的偏爱程度将男生排序,同时每位男生也按照自己的偏爱程度将女生排序。然后将这n个女生和n个男生配成完备婚姻。如果存在两位女生A和B,两位男生a和b,使得A和a结婚,B和b结婚,但是A更偏爱b而不是a,b更偏爱A而不是B,则这个婚姻就是不稳定的,A和b可能背着别人相伴而走,因为他俩都认为,与当前配偶比起来他们更偏爱各自的新伴侣。如果完备婚姻不是不稳定的,则称其是稳定的。通过证明,可以得到每一个n女n男的社团,都存在稳定婚姻的 阅读全文
posted @ 2013-08-14 19:44 Mr. Ant 阅读(798) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4585题意大意:很多人想进少林寺,少林寺最开始只有一个和尚,每个人有有一个武力值,若这个人想进少林,必须和比他先进去的人比武并且武力值最接近他的比武,如果有相同的则选择武力值比他小的,问当他进去的时候要和哪个和尚比武。思路:正常情况暴力,n=100000,呵呵。 n*n的操作肯定不行的,最少要优化到nlogn,联想到map,map里的数会自动排序,它是由红黑树实现的,能实现O(n)的排序(对第一关键字排序), 然后再由mp.lower_bound(val)实现logn的查找。 总算法... 阅读全文
posted @ 2013-08-14 11:35 Mr. Ant 阅读(482) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4578题意:有一个序列,有四种操作:1:区间[l,r]内的数全部加c。2:区间[l,r]内的数全部乘c。3:区间[l,r]内的数全部初始为c。4:询问区间[l,r]内所有数的P次方之和。思路:比较复杂的线段树操作。只有一个询问操作,那就是询问[l,r]之间数的p次方之和,我们不可能全部查询的节点,会TLE,最好的情况就是查询到一段[a,b],这段区间内所有的值都相等,那么返回(b-a+1)*val 的值即可。 根据询问操作我们即可意识到我们要维护的是区间内所有值都相同的情况的区间。对于覆盖和加乘操作 阅读全文
posted @ 2013-08-14 11:25 Mr. Ant 阅读(1303) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4632题意:给你一个序列,问你该序列中有多少个回文串子序列,可以不连续。思路:dp[i][j]表示序列i到j中具有的回文串序列数。 当s[i]==s[j], dp[i][j]=dp[i+1][j]+dp[i][j-1]+1 否则dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+1][j-1]; 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespa... 阅读全文
posted @ 2013-08-14 11:06 Mr. Ant 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 250题意:有n首不同的曲子,你唱每首曲子需要花费a的时间以及一个调整的时间b,调整的时间为此首歌的曲调减去上一首歌的曲调的绝对值。思路:我们用dp[i][k]表示前i首歌只唱k首用的最小时间花费,最后拿所有的dp[i][k]和T做比较,满足条件则选取最大的k。这样的思路是没错的,但是...没注意到一种情况,dp[i][k]只要选了就保证序列定下来了,因为取的是绝对值,序列定下来的说明和时长a没关系,所以这时候要保证abs最小,又因为是从前往后推,所以只有排序后才能保证绝对值最小,有点贪心的意味。500思路:dp[i][k]表示i这个状态有k这种钥匙的数量,用位运算枚举所有的状态,后一个状态由 阅读全文
posted @ 2013-08-14 09:33 Mr. Ant 阅读(246) 评论(0) 推荐(0) 编辑