摘要: 分析:直接就这么翻肯定是不行的,换一种想法:有括号就是把括号里的字符串倒着输出,如果在括号里又遇到了括号就继续倒着输出,相当于递归. 我们可以用递归直接做,也可以用一层循环搞定,每次从左括号跳到右括号,再从右括号跳到左括号,之后走一步,就能输出处理后的字符串了,而不会死循环了. 阅读全文
posted @ 2017-09-23 19:23 zbtrs 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 分析:看了题后没别的思路,感觉就是dp,普通dp的话状态和方程实在是不好设计,观察数据,发现N非常小,暗示了这道题要用状压dp来做. 先枚举每个集合,再用O(n^2)的暴力看这个集合内有多少个冲突,如果冲突数量不大于k,那么就可以分成1个集合了,否则一定要分成多个集合,那么枚举它的子集j,状态转移方 阅读全文
posted @ 2017-09-23 16:33 zbtrs 阅读(203) 评论(1) 推荐(1) 编辑
摘要: 分析:并不是特别难的一道题,用到了贪心算法. 首先可以明确的一点是我们要尽量偷贡献最大的数据,要先满足每一个公司的贡献都大于等于K,以这个作为首要条件.那么我们可以先把每个快递公司的快递按照贡献从大到小排序,每次选贡献最大的,满足要求了就考虑下一个快递公司,如果过程中用超过了s个或者处理完后发现还有 阅读全文
posted @ 2017-09-23 15:39 zbtrs 阅读(209) 评论(0) 推荐(0) 编辑
摘要: Professor Homer has been reported missing. We suspect that his recent research works might have had something to with this. But we really don't know m 阅读全文
posted @ 2017-09-23 12:11 zbtrs 阅读(212) 评论(0) 推荐(0) 编辑
摘要: John有n个任务,但是有些任务需要在做完另外一些任务后才能做。 输入 输入有多组数据,每组数据第一行有两个整数1 <= n <= 100 和 m。n是任务个数(标记为1到n),m两个任务直接关系的数量。在此之后,有m行,每行有2个整数i和j,代表任务i必须在任务j之前完成。用n = m = 0结束 阅读全文
posted @ 2017-09-23 08:55 zbtrs 阅读(157) 评论(0) 推荐(0) 编辑