1156专题

HPU 1156 双斜杠注释

1156: 双斜杠注释 [字符串] 时间限制: 1 Sec  内存限制: 128 MB 提交: 95  解决: 37  统计 题目描述 将C程序代码中的双斜杠注释去掉。 输入 输入数据中含有一些符合C++语法的代码行。 需要说明的是,为了方便编程,规定双斜杠注释内容不含有双引号。 源程序中没空行。 输出 输出不含有双斜杠注释的C++代码,除了注释代码之外,原语句

Codeforces Contest 1156 E Special Segments of Permutation —— 分治

This way 题意: 给你n个数,每个数都是1-n之间且没有两个数相同,一个区间是特殊的如果它的左端点的值+右端点的值=这个区间中最大的值。问你有多少个特殊的区间。 题解: 我看到data structure就在想线段树,CDQ当然也想过,想不出来。问了一下别人,她用一下子就想出来了,非常的敢单,反思一下自己还是太习惯套路了,都没有怎么用别的方法去做过。那么这道题就是for一遍从大到小

Codeforces Contest 1156 D 0-1-Tree ——树形DP

This way 题意: 给你一棵树,每个边都是1或者0,我们称<x,y>是有效的如果从x到y的路上如果经过1的边,那么在之后就不会经过0的边,问你有多少种有效的二元组,注意<x,y>与<y,x>是不一样的。 题解: 一眼题,几乎就是树形DP的模板。 总共大概分为4种状态: 00表示从这里开始连续的0的个数 01表示从这里开始连续的0之后连续1的个数 10表示这里开始连续的1之后连续的0的

Codeforces Contest 1156 C Match Points —— lower_bound

This way 题意: 给你n个数,让他们两两配对,要求每个数最多只有一个数与它匹配,并且两个数的差>=z,问你最大有多少对数可以匹配 题解: 非常敢单,但是有一些细节问题要注意一下。 首先我是先排序,再用lower_bound来做,但是lower_bound的时候要注意每个数只能找后半部分的数,因为找前面的数会出现一个问题:假设有1,10,15,20这四个数,z是9,那么如果lower

hdu 1156

主题思路树状数组: 对线段按x坐标进行排序,从小到大依次遍历,最初开始时把所有点都加入到r边的树状数组中。随着遍历,删去已经遍历过的x坐标的点,并把这些点加入到左边的树状数组中。 需要对树状数组进行统计,以及进行更改。这也是为什么用树状数组。 参考博客:http://www.cnblogs.com/Stomach-ache/p/3871751.html AC 代码 #include <i

Leetcode 1156. Swap For Longest Repeated Character Substring [Python]

交换一个字母,组成最长重复Substring。如果把字母按照重复段拆开成多个Substring(aaabbccaa--> aaa,bb,cc,aa),以每个Substring为对象思考,则最长的Substring就是其后(或前)增加一个相同的字母,并从中找最长的。但是每个字母在原String中的数量有限,所以用Counter记录这个上限,在对每个Substring的添加一个相同字母的时候不可超过这