
板子
spnooyseed
冲破大学的束缚,内心与实力并肩高升
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最小表示法
有N片雪花,每片雪花由六个角组成,每个角都有长度。 第i片雪花六个角的长度从某个角开始顺时针依次记为ai,1,ai,2,…,ai,6。 因为雪花的形状是封闭的环形,所以从任何一个角开始顺时针或逆时针往后记录长度,得到的六元组都代表形状相同的雪花。 例如ai,1,ai,2,…,ai,6和ai,2,ai,3,…,ai,6,ai,1就是形状相同的雪花。 ai,1,ai,2,…,ai,6和ai,6,ai...原创 2020-04-30 13:48:29 · 188 阅读 · 0 评论 -
二维矩阵hash
给定一个M行N列的01矩阵(只包含数字0或1的矩阵),再执行Q次询问,每次询问给出一个A行B列的01矩阵,求该矩阵是否在原矩阵中出现过。 输入格式 第一行四个整数M,N,A,B。 接下来一个M行N列的01矩阵,数字之间没有空格。 接下来一个整数Q。 接下来Q个A行B列的01矩阵,数字之间没有空格。 输出格式 对于每个询问,输出1表示出现过,0表示没有出现过。 数据范围 A≤100,M,N,B...原创 2020-04-30 13:30:01 · 368 阅读 · 0 评论 -
马拉车算法模板
大佬博客 马拉车用于解决最长回文子串问题,重点是子串,而不是子序列,想了解最长回文子序列的可以看下这篇博客传送门。对于这种问题,当然最简单粗暴的方法就是暴力求解,但太暴力也不好,毕竟会TLE。所以对于求最长回文子串的问题有一种神奇的算法——马拉车算法,神奇就神奇在时间复杂度为O(n)。 我先说一下大概思路,就是用一个Len[i]数组去存第i个位置到mx位置的长度,然后用id记录上一次操作的位置,m...转载 2020-03-20 14:35:01 · 662 阅读 · 0 评论 -
凸包模板
凸包算法(Graham扫描法)详解 先说下基础知识,不然不好理解后面的东西 两向量的X乘p1(x1,y1),p2(x2,y2) p1Xp2如果小于零则说明 p1在p2的逆时针方向 如果大于零则说明 p1在p2的顺时针方向 struct node{ double x,y; node friend operator -(node a,node b)//对减法符号进行重载 ...转载 2020-03-17 00:09:00 · 153 阅读 · 0 评论 -
线性筛素数 欧拉数 莫比乌斯函数 约数个数 约数和
#include <iostream> using namespace std; const int N = 1e5 + 10 ; int tot ; int mu[N] ; // 莫比乌斯函数 int phi[N] ;// 欧拉函数 int prime[N] , vis[N] ; int d[N] ; // 约数个数 int a[N] ; // 每个数最小因子出现的次数 in...原创 2019-09-20 18:00:08 · 254 阅读 · 2 评论 -
分层最短路
#include <queue> #include <iostream> #include <cstring> using namespace std; const int N = 1e4 + 10000; const int M = 1e5 + 10 ; int e[M] , ne[M] , h[N] , w[M] , idx ; int dis[N] ; b...原创 2019-09-20 18:01:12 · 135 阅读 · 0 评论 -
扩展剩余定理
#include <iostream> using namespace std; const int N = 100 ; typedef long long ll ; ll m[N] , c[N] ; ll exgcd(ll a , ll b , ll &x , ll &y) { if(b == 0) { x = 1 , y = 0 ; return ...原创 2019-09-20 18:01:55 · 84 阅读 · 0 评论