为了能到远方,脚下的每一步都不能|

luckydrawbox

园龄:4个月粉丝:1关注:2

08 2021 档案

扫描线
摘要:这里提供求矩形面积并的扫描线。 你可以根据自己的需要更改基本数据类型 S_B_TS\_B\_TS_B_T: #define S_B_T long long 上面实现了一个以 long long 为基本数据类型的定义。 所有的函数已经完成,所以你只需要用到两个函数: insert(x1,y1,x2,y
2
0
0
动态开点线段树
摘要:和线段树一样,模板中的函数请根据需要自己补充完成,使用前要建树,其实只是多了建点 make\text{make}make 操作。 同时你也可以通过 DOP_S_T_TDOP\_S\_T\_TDOP_S_T_T 更改线段树维护的基本类型。 #define DOP_S_T_T int 上面的基础类型是
1
0
0
线段树
摘要:线段树灵活多变,所以模板中的函数请根据需要自己补充完成。 同时你也可以通过 S_T_TS\_T\_TS_T_T 更改线段树维护的基本类型。 #define S_T_T int 上面的基础类型是 int\text{int}int。 使用前要 build\text{build}build,change\
2
0
0
Trie
摘要:预处理 使用前,请根据需要更改字典树标准 standardstandardstandard。 如果应用范围为 262626 个字母,你可以把 standardstandardstandard 设为 a。 如果应用范围为 010101 串,你可以把 standardstandardstandard 设
3
0
0
二叉堆
摘要:预处理 使用前,请根据需要更改堆类型和比较函数 cmp\text{cmp}cmp。 #define H_T int bool cmp(H_T x,H_T y){ return x>y; } 以上实现了一个 int\text{int}int 类型的大根堆。 操作 #define H_T int str
2
0
0
DP
摘要:目录 ST 表 最长不上升子序列 动态动态规划 DDP
1
0
0
最长不上升子序列
摘要:LIS(n,a):求 a1∼na_{1\sim n}a1∼n​ 中的最长不上升子序列的长度。 int LIS(int n,int *a){ int dp[N],l=1,p; dp[1]=a[1]; for(int i=2;i<=n;i++) if(dp[l]>=a[i]) dp[++l]=a[i];
5
0
0
SP16033 TIPTOP - Tip Top Game
摘要:题意 有一个正整数 nnn,找出它的所有因数,两个人轮流取走一个它的因数,取不到因数的人失败。 如果先手胜利,输出 Yes,否则输出 No。 分析 显然,当一个数的因数有奇数个时,先手会获胜;当一个数的因数有偶数个时,后手会获胜。 于是,这道题就变成了:判断一个数的因数个数是否为奇数。 于是它就变成
2
0
0
AT4538 Flowers
摘要:题意 一个长度为 nnn 的序列,每个元素有两个权值 hi,aih_i,a_ihi​,ai​,从这个序列中选出一个子序列,并满足以下要求: hih_ihi​ 单调递增。 在满足上一条的情况下,这个子序列的 aia_iai​ 之和最大。 分析 设 dpidp_idpi​ 表示以 iii 结尾的符合要求
1
0
0
ST 表
摘要:使用前要确定操作运算,要保证这是一个可重复贡献的运算,如 max⁡,min⁡,gcd⁡\max,\min,\gcdmax,min,gcd 等。 int op(int x,int y){ return max(x,y); } 把上面的 max⁡\maxmax 改成其他运算就可以了。 使用前要初始化,i
1
0
0
排序
摘要:目录 快速排序 归并排序 逆序对
2
0
0
归并排序
摘要:对一个下标在 [l,r][l,r][l,r] 间的数组 aaa 排序。 一般可以这么调用:gsort(a,1,n),把 a1∼na_{1\sim n}a1∼n​ 排好序。 int r[N]; void gsort(int *a,int x,int y){ if(x==y) return; int m
2
0
0
快速排序
摘要:对一个下标在 [l,r][l,r][l,r] 间的数组 aaa 排序。 一般可以这么调用:ksort(a,1,n),把 a1∼na_{1\sim n}a1∼n​ 排好序。 void ksort(int *a,int l,int r){ int i=l,j=r,f=a[(l+r)/2]; do{ wh
2
0
0
常用程序模板
摘要:#include<bits/stdc++.h> #define ll long long using namespace std; long long read(){ long long x=0,f=1;char ch=getchar(); while(!isdigit(ch)){if(ch=='-
3
0
0
必备模板
摘要:目录 常用程序模板 快读快写 离散化 重载运算符 文件输入输出 back
2
0
0
文件输入输出
摘要:这个还用说吗。 freopen("sth.in","r",stdin); freopen("sth.out","w",stdout); back
2
0
0
离散化
摘要:把长度为 nnn 的 aaa 数组映射成只有 1∼tot1\sim tot1∼tot 的整数的 bbb 数组,其中返回值 tottottot 是 aaa 中元素个数。 int discrete(int n,int *a){ int b[N]; for(int i=1;i<=n;i++) b[i]=a
2
0
0
重载运算符
摘要:结构体内 struct asdf{ int x, y; bool operator<(const asdf &a)const{ return x<a.x||(x==a.x&&y<a.y); } }; 结构体外 bool operator<(const int &a,const int &b){ re
7
0
0
数学
摘要:目录 快速幂 龟速乘 高精度 矩阵 质数 约数 同余 高斯消元 线性基 组合计数 莫比乌斯函数 二进制运算 康托展开 扩展卢卡斯定理 扩展 BSGS 二次剩余 多项式 类欧几里得算法 back
2
0
0
莫比乌斯函数
摘要:莫比乌斯函数,记作 μ(N)\mu(N)μ(N)。 当 NNN 包含相等的质因子时,μ(N)=0\mu(N)=0μ(N)=0。 当 NNN 的所有质因子各不相等且 NNN 有偶数个质因子时,μ(N)=1\mu(N)=1μ(N)=1。 当 NNN 的所有质因子各不相等且 NNN 有奇数个质因子时,μ(
3
0
0
组合计数
摘要:排列数 Anm/PnmA_n^m/P_n^mAnm​/Pnm​ long long A(long long m,long long n,long long mod){ long long ans=1; for(long long i=n-m+1;i<=n;i++) ans=ans*i%mod; re
2
0
0
SP4487 GSS6 - Can you answer these queries VI
摘要:块状链表 初始化 用结构体存每个块,一个块就是一个节点。建立一个虚拟的 000 节点作为起点和终点,同时建一个节点 111 开始插入数据。由于有多次插入和删除操作,所以我们要回收内存。 lll rrr lenlenlen bib_ibi​ sumsumsum lmxlmxlmx rmxrmxrmx
2
0
0
CF1561C Deep Down Below
摘要:分析 首先可以确定的两点是: 每个洞穴是互不干扰的。也就是说,第 iii 个洞穴能否通过,只和来第 iii 个洞穴前的 poweripower_ipoweri​ 有关。 必然存在一个 poweri′power_i'poweri′​,使得 poweri<poweri′power_i<power_i'p
1
0
0
线性基
摘要:有一个整数集合 S=a1,a2,…,anS=a_1,a_2,…,a_nS=a1​,a2​,…,an​,它的一个子集合 S′=ak1,ak2,…,akmS'=a_{k_1},a_{k_2},…,a_{k_m}S′=ak1​​,ak2​​,…,akm​​,如果它满足原集合的每个数 ai=ci,1ak1+
1
0
0
高斯消元
摘要:用于求解如下的方程组: {∑i=1nxia1,i=b1∑i=1nxia2,i=b2……∑i=1nxiam,i=bm\begin{cases}\sum_{i=1}^nx_ia_{1,i}=b_1\\\sum_{i=1}^nx_ia_{2,i}=b_2\\……\\\sum_{i=1}^nx_ia_{m,
3
0
0
P2448 无尽的生命
摘要:题意 一个很长的序列 a1,a2,a3,…,a231−1a_1,a_2,a_3,…,a_{2^{31}-1}a1​,a2​,a3​,…,a231−1​,值分别是 1,2,3,…,231−11,2,3,…,2^{31}-11,2,3,…,231−1。 进行 kkk 个操作,每次有两个数 x,yx,yx
2
0
0
CF527C Glass Carving
摘要:题意 有一块 w×hw\times hw×h 的玻璃,每次横着切一刀 (H)(H)(H) 或者竖着切一刀 (V)(V)(V) ,没有两次相同的切割,求最大的矩形碎片面积。 分析 显然,最大矩形碎片面积 最大的长 ×\times× 最大的宽。因为长宽互不干扰,所以我们分开处理。 我们把求长和宽看作查询
1
0
0
P1522 [USACO2.4]牛的旅行 Cow Tours
摘要:题意 直径:一个牧场(连通块)中任意两点最短路的最大值。 给你一张无向带权图,图中有一些连通块,试连接图中两个不同的连通块中的一点,是新的连通块直径最小。 分析 我们需要把图存下来,于是用 wi,j=(xi−xj)2+(yi−yj)2w_{i,j}=\sqrt{(x_i-x_j)^2+(y_i-y_
1
0
0
CF1560B Who's Opposite?
摘要:题意 2k2k2k 个人排成一个圈,编号依次为 1,2,3,…,2k1,2,3,…,2k1,2,3,…,2k,每个人可以透过圆心看到对面的人。 如在下图中,111 可以看到 444,555 可以看到 222。 已知 aaa 可以看到 bbb,问 ccc 可以看到谁?若无解输出 −1-1−1。 分析
5
0
0
同余
摘要:扩展欧几里得算法 扩展欧几里得算法,也叫 exgcd\text{exgcd}exgcd。 时间复杂度为 O(log⁡(a+b))O(\log(a+b))O(log(a+b))。 long long exgcd(long long a,long long b,long long &x,long lon
10
0
0
P7814 「小窝 R3」心の記憶
摘要:提供一个最劣解 你们几十毫秒跑完的东西,我要几百毫秒。 显然,以下几种情况是无解的: n=mn=mn=m。 n=1n=1n=1。 A=A=A=01。 A=A=A=10。 特判一下就好了。 注:下文提到的相反数字指的是:000 的相反数字是 111,111 的相反数字是 000。 为了保证子序列相同,
4
0
0
约数
摘要:正约数集合 试除法 求出 NNN 的正约数集合。 O(N)O(\sqrt N)O(N​)。 int m; int factor[1600]; void q_factor(int n){ for (int i=1;i*i<=n;i++){ m=0; if(n%i==0){ factor[++m]=i;
2
0
0
质数
摘要:质数的判定 暴力判定 O(N)O(\sqrt N)O(N​)。 bool is_prime(ll n){ if(n<2) return 0; ll k=sqrt(n); for(ll i=2;i<=k;i++) if(n%i==0) return 0; return 1; } 随机化 O(klog⁡
3
0
0
矩阵
摘要:矩阵结构体 变量 a[N][N]:表示矩阵。其中 NNN 为自定义常数。 h:行数。 l:列数。 函数 clean():把结构体初始化。 build():把结构体改成单位矩阵。若单位矩阵乘以某个 SSS,结果就是 SSS。 K_Recursion(k,*b):构造 kkk 阶常系数线性递推项,bbb
2
0
0
高精度
摘要:头文件 此模板涉及的头文件较多,建议用 <bits/stdc++.h> 库。 强制转换 此模板支持两种转换: 整型 ⇒BigInteger\Rightarrow\text{BigInteger}⇒BigInteger:BigInteger(n),其中 nnn 是整型。 字符串型 ⇒BigIntege
3
0
0
CF730G Car Repair Shop
摘要:题意 有 nnn 个请求,每次请求一个区间 [si,si+di−1][s_i,s_i+d_i-1][si​,si​+di​−1]: 如果该区间完全没有被占用,占用该区间。 如果该区间有位置已经被占用,占用另一个长度为 sis_isi​,左端点最小的且完全未被占用的区间。 求出每个请求占用的区间。 分
2
0
0
蓝桥杯习题做题记录
摘要:省赛题 第一题 小模拟。 难度:入门\color{#FE4C61}\text{入门}入门。 #include<bits/stdc++.h> #define ll long long #define ld long double using namespace std; //const int N=;
2
0
0
快速幂
摘要:ab mod ca^b\bmod cabmodc。 把 bbb 分解成二进制数,递推求解。 long long qmi(long long a,long long b,long long c){ long long ans=1; while(b){ if(b&1) ans=ans*a%c; a=a*
1
0
0
P7777 『JROI-2』Shelter
摘要:这里提供一个 O(Tlog⁡N)O(T\log N)O(TlogN) 的二分做法。 为了使代价最小,对于第一种抓取方式,我们尽量取较小的数;对于第二种抓取方式,我们尽量取相邻的数。 于是,我们要找到一个数 kkk,使 1∼k−11\sim k-11∼k−1 的数用第一种抓法,k∼nk\sim nk∼
5
0
0
CF453C Little Pony and Summer Sun Celebration
摘要:题意 给一个无向图,nnn 个点 mmm 条边,给定一个 010101 序列 a1…ana_1…a_na1​…an​,如果 ai=1a_i=1ai​=1,要求走到这个点奇数次,否则,要求走到这个点偶数次,请你任选起点,输出满足要求的序列长度和经过点的序列,序列长度不能超过 4×n4\times n4
2
0
0
快读快写
摘要:long long read(){ long long x=0,f=1;char ch=getchar(); while(!isdigit(ch)){if(ch=='-') f=-1;ch=getchar();} while(isdigit(ch)){x=x*10+ch-48;ch=getchar(
1
0
0
CF252A Little Xor
摘要:solution 1 此解法复杂度为 O(n3)O(n^3)O(n3)。 由于数据很小,所以我们暴力枚举左右端点,暴力计算前缀和即可。 代码 #include<bits/stdc++.h> using namespace std; const int N=110; int n,a[N],mx,sum
3
0
0
CF632E Thief in a Shop
摘要:题意 一个背包,nnn 种物品,第 iii 种物品价值为 aia_iai​,每种物品无穷个,只能拿 kkk 个物品,问有哪些可能的价值? 分析 乍一看是一个完全背包模板,于是我们设 dpjdp_jdpj​ 为当价值为 jjj 时最少需要的物品数,可以写出方程式 dpj=min⁡(dpj,dpj−ai
1
0
0
P7756 [COCI2012-2013#3] MALCOLM
摘要:因为只有名字长度相等的同学才能成为好朋友,所以我们就把名字长度相同的同学的排名放入同一个数组内。 vector<int>e[30]; string s; for(int i=1;i<=n;i++) { cin>>s; e[s.size()].push_back(i); } 接下来对于每个长度的名字,
1
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起