07 2017 档案
摘要:#include #include #include #include using namespace std; typedef long long ll; const int N = 4; int Mod; int msize; struct Mat { int mat[N][N]; }; Mat operator *(Mat a, Mat b) { Mat c...
阅读全文
摘要:( a^(n-1) + b^(n-1) ) * ( a + b ) = a^n + a^(n-1) * b + a * b^(n-1) + b^n a^n + b^n = p * ( a^(n-1) + b^(n-1) ) - q * ( a^(n-2) + b^(n-2) ) F(n) = p *
阅读全文
摘要:int sgn(double x) { if(fabs(x) operator &(const Line &b)const { Point res = p; if(sgn((p-q)^(b.p-b.q)) == 0) { if(sgn((p-b.q)^(b.p-b.q)) == 0) ...
阅读全文
摘要:A.mat[0][0] = 1, A.mat[0][1] = 1, A.mat[0][2] = 0, A.mat[0][3] = 0, A.mat[0][4] = 0; A.mat[1][0] = 0, A.mat[1][1] = AX*BX%Mod, A.mat[1][2] = AX*BY%Mod
阅读全文
摘要:参考了某大佬的 我们可以根据(s[n-2], a[n-1]^2, a[n-1]*a[n-2], a[n-2]^2) * A = (s[n-1], a[n]^2, a[n]*a[n-1], a[n-1]^2) 能够求出关系矩阵 |1 0 0 0 |A = |1 x^2 x 1 | |0 2*x*y y
阅读全文
摘要:分析: 后面的环能不能取下来与前面的环有关,前面的环不被后面的环所影响。所以先取最后面的环 设状态F(n)表示n个环全部取下来的最少步数 先取第n个环,就得使1~n-2个环属于被取下来的状态,第n-1个环属于未被取下来的状态。那么F(n) = F(n-2) + 1 + ... (这里的1表示取下第n
阅读全文
摘要:就算告诉我是矩阵快速幂我也推不出递推式呀!!! 官方题解: 对于任意i>=1,当j>=3时,有通过归纳法可以得到 进而推导出 后来自己重新推导了一遍
阅读全文
摘要:关于拼图和逆序数的关系可以看看这个 http://www.guokr.com/question/579400/ 然后求逆序数在判断就行了 按题意生成原始排列,观察发现,每一轮数后方比该数小的数的数量(即对逆序对数的贡献)呈等差数列形式,公差p-1,项数为(num-1)/p+1,(首项为0)照此简化计
阅读全文
摘要:AC自动机模板题,稍微改一改就可以了 AC自动机模板 这个题目坑在是多组样例输入
阅读全文
摘要:题目说是可见字符,ASCII码中可见字符的前面一位是' '空格,next数组大小100就可以了,字符转化成数字需要减去' '这个字符
阅读全文
摘要:#include using namespace std; const int maxn = 1e7 + 5; const int nsize = 26; struct node { node *next[nsize]; node *fail; int sum; }; int cnt; node *root; //构造字典树 void Insert(char *s...
阅读全文
摘要:关键在排序!!! 数组间的排序会超时,所以需要把一个数组映射成一个数字,就可以了
阅读全文
摘要:矩阵快速幂模板 套模板即可
阅读全文
摘要:HDU 2604 Queuing (递推+矩阵快速幂) 这位作者讲的不错,可以看看他的
阅读全文
摘要:斐波那契数列后四位可以用快速幂取模(模10000)算出。前四位要用公式推 HDU 3117 Fibonacci Numbers(矩阵快速幂+公式) f(n)=(((1+√5)/2)^n+((1-√5)/2)^n)/√5 假设F[n]可以表示成 t * 10^k(t是一个小数),那么对于F[n]取对数
阅读全文
摘要:快速幂套模板呀!!!! 矩阵快速幂模板
阅读全文
摘要:ac自动机最详细的讲解,让你一次学会ac自动机。
阅读全文
摘要:Problem Description 最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经
阅读全文
摘要:题意不难理解,给出多个多边形,输出多边形间的相交情况(嵌套不算相交),思路也很容易想到。枚举每一个图形再枚举每一条边 恶心在输入输出,不过还好有sscanf(),不懂可以查看cplusplus网站 根据正方形对角的两顶点求另外两个顶点公式: x2 = (x1+x3-y3+y1)/2; y2 = (x
阅读全文
摘要:POJ 2826 An Easy Problem?! -- 思路来自kuangbin博客 下面三种情况比较特殊,特别是第三种 G++怎么交都是WA,同样的代码C++A了
阅读全文
摘要:首先判断是不是凸多边形 然后判断圆是否在凸多边形内 不知道给出的点是顺时针还是逆时针,所以用判断是否在多边形内的模板,不用是否在凸多边形内的模板 POJ 1584 A Round Peg in a Ground Hole(判断凸多边形,点到线段距离,点在多边形内)
阅读全文
摘要:题意: 题意很好理解,从左边射过来的光线,最远能经过管道到右边多少距离。 分析: 光线一定经过一个上端点和一个下端点,这一点很容易想到。然后枚举上下端点即可
阅读全文
摘要:题意: 给出房子,障碍物,观光线(都为平行于x轴的线段)。问在观光线上能看到整个房子的最长距离 分析: 将房屋的端点与障碍物的端点连线,求出与观光线的横坐标。这些坐标会把观光线分成多个区间,然后枚举每一个区间的中点,来判断这个区间是否能看到整个房子 要注意的是:不一定每个障碍物都在房屋与观光线之间,
阅读全文
摘要:求出正方形的左右端点,再判断是否覆盖
阅读全文
摘要:题意: 一只特别的蚂蚁,只能直走或者左转。在一个平面上,有很多株植物,这只蚂蚁每天需要进食一株,这只蚂蚁从起点为(0,miny)的点开始出发。求最多能活多少天 分析: 肯定是可以吃到所有植物的,以当前方向无限延长成直线,可以剩余的植物都在直线的左边。所以就是求上一个位置到当前位置与下一个位置与当前位
阅读全文
摘要:这个题目要注意的是:给出的矩形坐标不一定是按照左上,右下这个顺序的
阅读全文
摘要:判断以宝藏的坐标和中点的坐标为线段的点是否与墙相交,求最少相交的墙的数量 中点算出来,枚举中点和墙
阅读全文
摘要:枚举每条线段 这条线段上面没有与它相交的线段
阅读全文
摘要:题意: 在一个左下角坐标为(0,0),右上角坐标为(10,10)的矩形内,起点为(0,5),终点为(10,5),中间会有许多扇垂直于x轴的门,求从起点到终点在能走的情况下的最短距离。 分析: 既然是求最短距离,很容易想到最短距离的算法。那么接下来就是构造图了,门的两端点为图中的一个结点(不包括边界点
阅读全文
摘要:用的是初中学的方法
阅读全文
摘要:题意: 找出一条直线,让给出的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有关。于是我们判断后缀
阅读全文
摘要:题意: 给出n个A串和m个B串,将这A串与B串连接(B接在A后面)可以生成n*m个AB串,求不同的AB串的数量 分析: set直接水过 hash可以节省时间
阅读全文
摘要:kmp算法可参考 kmp算法 汇总 用cin会超时
阅读全文
摘要:来源:http://blog.csdn.net/qq_34494458/article/details/75253466 KMP算法,是由Knuth,Morris,Pratt共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法
阅读全文
摘要:[编程题] 最大矩形面积 时间限制:1秒 空间限制:32768K 给定一组非负整数组成的数组h,代表一组柱状图的高度,其中每个柱子的宽度都为1。 在这组柱状图中找到能组成的最大矩形的面积。 入参h为一个整型数组,代表每个柱子的高度,返回面积的值。 输入描述: 输入包括两行,第一行包含一个整数n(1
阅读全文
摘要:[编程题] 拼凑钱币 时间限制:1秒 空间限制:32768K 给你六种面额 1、5、10、20、50、100 元的纸币,假设每种币值的数量都足够多,编写程序求组成N元(N为0~10000的非负整数)的不同组合的个数。 输入描述: 输入包括一个整数n(1 ≤ n ≤ 10000) 输出描述: 输出一个
阅读全文
摘要:题意: [3月的第二个周日02:00:00 , 3月的第二个周日03:00:00) 这个区间都不是PST或PDT,[11月的第一个周日01:00:00 , 11月的第一个周日02:00:00) 这个区间既是PST又是PDT,中间的是PDT,两边的是PST。 分析: 计算星期几可以直接用公式进行计算
阅读全文

浙公网安备 33010602011771号