摘要: 题意: 有两个字符串,给出 Q 个询问,每个询问有两种方式: 1 p i c 把第 p 个字符串的第i 个字符换成 字符 c, 2 i 从位置i 开始,两个字符串连续相同的子串的最大长度为多少。分析: 线段树。 数组len[rt] 保存rt 区间从最左端开始的最长子串, 合并时,如果len[rt<<1]==mid-l+1 则 len[rt]=len[rt<<1]+len[rt<<1|1] ,说明可以把右儿子区间直接接到左儿子区间上,否则由于左儿子区间与右儿子区间断开, len[rt]=len[rt<<1].#include<stdio.h& 阅读全文
posted @ 2012-08-03 21:48 'wind 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出 N 只鱼的坐标,问用半径为 1 的渔网做多可以捕到多少鱼。分析: 以每条鱼为圆心,作半径为1 的圆,枚举两两圆的交点,比较以每个交点为圆心半径 1 的渔网最多捕获的鱼数。#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>const double eps=1e-6;struct node{ double x,y;}q[305];double dis(node a,node b){ return (a.x-b.x)*(a.x-b.x)+(a.y-b. 阅读全文
posted @ 2012-08-03 10:59 'wind 阅读(207) 评论(0) 推荐(0) 编辑