题意:给两串字符串,操作1:替换其中一个字符串的某个位置的字符 操作2:查询从p开始相等的最长连续长度
分析:树状数组可以维护一个区间内公共长度(连续)的情况,查询时用二分查找最远的端点即可。还可以用线段树去做,线段树能处理的问题很多,这题只要往右区间合并就行了。
收获:1.线段树的区间合并又做一题(虽然我写的还没AC) 2. 树状数组写起来方便又奇效!
代码1(树状数组):
/************************************************* Author :Running_Time* Created Time :2015-8-26 9:46:09* File Name :I.cpp ************************************************/#include #include #include #include #include #include #include #include #include #include #include #include #include
代码2(线段树):
/************************************************* Author :Running_Time* Created Time :2015-8-26 9:46:09* File Name :I.cpp ************************************************/#include #include #include #include #include #include #include #include #include #include #include #include #include
代码3(unAC):
/************************************************* Author :Running_Time* Created Time :2015-8-26 9:46:09* File Name :I.cpp ************************************************/#include #include #include #include #include #include #include #include #include #include #include #include #include