摘要:
题意 给定一个n*n大小的矩阵A,求以A为公比的等比数列的前k项和。 解题思路 直接从1到k矩阵快速幂每项相加肯定是会超时的,而如果用公式计算需要求逆矩阵非常麻烦,而且有可能会溢出。 因此我们使用分治求解。 当n为奇数时, 当n为偶数时, 分治求解即可。 #include <bits/stdc++. 阅读全文
摘要:
题意 给定一个长度为n的序列,计算有多少个子区间满足子区间第K小的数不在子区间第K位。 找出所有不满足条件的区间。枚举所有的ai和左端点al,找出满足ai是区间[l,r]中第r-l+1小的右端点r,则右端点r一定是一段区间。 例如 3 4 2 1 6 5 l i 则r=[3,6] 当l向左移动时,如 阅读全文
摘要:
就是个解方程。 #include <bits/stdc++.h> #define IO ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); using namespace std; double ansx, ansy; bool pingxing(do 阅读全文
摘要:
题目大意 给定三个正整数n,m和p,将(0,0) (n,m) (0,p) 这三个点相连,求围成的三角形中的格点数目(三角形边上的格点不算) 利用皮克定理求出。 皮克定理 顶点全在格点上的多边形面积S=n+T/2-1。 n为多边形内部格点数量,T为多边形边上的格点数量。 解题方法 内部格点数量n=S- 阅读全文
摘要:
题目大意 n个点构成的城堡,给出每个点的坐标。若要修建距离城堡最近距离为L的城墙,问城墙的最短长度。 凸包模板题,用Andrew算法求出凸包然后加上半径为L的圆的周长即可。 题目链接 Andrew算法 首先对所有点按照x大小进行升序排序,如果x相同就按照y大小升序排序。 构造下凸包 前两个点直接入栈 阅读全文
摘要:
题目大意: 已知 a,b,c,d,n,m已知, 求f(n,m). 数据范围 1<=N,M<=10^1000 000,a<=a,b,c,d<=10^9 题目链接 首先用到费马小定理将n和m缩小到int范围。 费马小定理 其中p为质数,a为不是p的倍数的正整数。 首先用到高中的数列。 F(n,m)=a· 阅读全文