摘要:
题意: 找出一条直线,让给出的n条线段在这条直线的投影至少有一个重合的点 转化一下,以重合的点作垂线,那么这条直线一定经过那n条线段。现在就是求找到一条直线,让这条直线经过所有线段 分析: 假设存在这一条直线,我们以无穷远处作为支点,然后旋转,直到碰到一个线段的端点就停止旋转,此时还是穿过了所有线段 阅读全文
摘要:
题意: 给出一个矩形范围,给出n条线段,这n条线段一定与矩形上下边界相交且互不相交,将矩形分成n+1个划分。给出m个玩具的坐标。求每个划分放的玩具数,玩具保证不会在线段和左右边界上。 分析: 判断点是否在两条直线中间,利用叉积,如果在两条直线间,必定会有两个叉积一个小于0,一个大于0(不能把相乘小于 阅读全文
摘要:
题意: 一个字符串S 问其中有几个子串能满足以下条件: 1、长度为M*L 2、可以被分成M个L长的小串 每个串都不一样 分析: hash方法,一个种子base,打表出nbase[i]表示base的i次方 将以i位字符开头之后的串hash成一个无符号长整型:hash[i]=hash[i+1]*base 阅读全文
摘要:
题意: 给出一个字符串,让你往后添加最少的字符,使其成为回文串。 分析: 题目就相当于求后缀字符串为回文串的最长长度,判断回文串要O(n)时间,直接判断肯定不行。我们从后往前枚举,每次字符串与上一个字符串仅相差一个字符,所以我们将字符hash,每次的hash值就与上一个hash有关。于是我们判断后缀 阅读全文