- 博客(75)
- 资源 (1)
- 问答 (2)
- 收藏
- 关注
原创 【题解】土豪聪要请客
题意给定一张 n×mn \times mn×m 的地图,在其中找到一个矩形,使得周长最大,输出这个周长−1-1−1 的值思路用一个例子来引入吧丽姿考虑这样一个图形:假设我们考虑这个点首先向上扩展到顶接着保持当前高度,向左右找,看能否在宽度上进行扩展,发现不行(对于这里不太理解的,可以暂时放着,下面有一个能扩展的,到时再理解)记录答案接着找下一个点:向上扩展,当然在这里不能扩展了然后向左右扩展:更新答案接着选择下一个点向上向左右(不行)更新答案再选择下一个点
2021-05-14 20:11:55 320 1
原创 【总结】Miller-Rabin 素数测试
前置芝士:质数的基本判断及方法素数筛 link0x01 问题描述给定一个数 n,n∈Z且2≤n≤263−1n,n \in \mathbb{Z} 且 2 \leq n \leq 2^{63}-1n,n∈Z且2≤n≤263−1,判断 nnn 是否为质数。时间限制:1000ms1000 \text{ms}1000ms/空间限制:128MB128 \text{MB}128MB0x02 问题分析考虑到 nnn 的范围,如果使用传统的方法(枚举 1→n1 \to \sqrt{n}1→n的数,判断是否能.
2021-05-02 22:36:16 379 1
原创 (计算几何)【题解】[COCI2019-2020#2] Zvijezda
有趣。。。首先设这些边的编号为 111~nnn ,一个点被相对的两条边包含,即一个点被编号相距 n2\frac{n}{2}2n 的两条边包含每条边都可以把整个平面分为两部分:有多边形的和没有多边形的,我们称有多边形的这一个区域为在这条线的“内部”那么这个点需要同时满足在编号相距 n2\frac{n}{2}2n 的两条边的 “内部”,设这两条边为 x,x+n2x,x+\frac{n}{2}x,x+2n (需要膜的请大家自行脑补)所以如果这个点被 x,x+n2x,x+\frac{n}{2}x,x+
2021-02-21 19:09:01 469
原创 【题解】P6676 [COCI2019-2020#2] Slagalica
和大众的做法都不太一样,思路比较简单,实现。。。也比较简单这题部分分真的能提示很多(为什么洛谷上没有部分分),考场上本来在想怎么拿部分分,然后看了一下部分分,想了一下他们的性质,然后。。。就想出正解了。。。但是不会实现嘤嘤嘤首先我们看看编号为 222 和 333 的块的性质:他们按规则接在某一个块后面,是不会改变这个块的突出情况的比如:555 的右边原本是凸出的,我们把 333 接在 555 后面以后,整个块的右边还是凸出的换句话说,当我们在全部给出的块中去除所有 222 和 333 的块,求出字
2021-02-20 19:36:58 316
原创 【总结】分块
0x00 写在前面新年假期想学点东西,本着简单的想法,找了个感觉最简单的分块来学近期目标:数列分块入门 尽量去做,另外做一些蓝到紫难度的题0x01 分块是什么&&可以做什么分块,顾名思义,就是把一个要维护的序列分成几个块来处理,要查询区间信息,就把区间拆分到块里,从而通过提取块内的信息达到降低时间复杂度的目的做一个形象的比喻,科任老师要清作业,如果直接把全班的作业交上来数肯定会很累,于是科任老师分了个小组,小组长负责清出本组有多少人交,科任老师就只需要向每个小组长去询问,时间大
2021-02-08 23:42:15 348
原创 【题解】干草堆
T4实在做不动,就来颓一篇题解1.简化题意就是把一个数列分成若干段,使得这些段的和从前往后不上升,在满足这个要求的情况下段数最多2.思路考场上当开始想了一个贪心的思路,就是正着遍历,当这个阶段高度是最优的时候,下一个阶段就直接顺承这个阶段的宽度但是很容易就会hack:43 1 3 3上面这个数据,i=2i=2i=2 时高度最优为 111 ,但是后面就放不下了,相反,如果在 i=2i=2i=2 时只放一层,此时宽度为 444,这样后两个都能放虽然这是错的,但是一个很巧的思路就是倒着:把
2021-02-08 15:26:17 240
原创 友谊赛题解
A-Rainyrabbit 爱邮递算法 1每次重建快递站后直接深搜一遍累加贡献就好了,然后 O(1)\mathcal{O}(1)O(1) 回答。你可以获得 10pts 的好成绩。算法 2菊花图,这个很简单啊。如果加的是花心,相当于其他城市都加 111,否则就是花心的城市加 111,其他城市加 222。结合算法 1 可以获得 30pts 的好成绩。算法 3一条链的话也是送的,直接拆拆贡献用棵线段树维护即可。结合算法 1,2 可以获得 60pts 的好成绩。算法 4做法 1考虑树怎么做
2021-02-04 15:54:42 284
原创 【题解】CF27B Tournament
首先我们是可以很容易的得到缺失的那条边的两端但是这道题是有向的,那么我们就需要知道到底是谁赢了谁引理:如果一个人赢的场次比另一个人多,那么这个人的实力就应该要强一点呀但是这只是一个很zz的感觉,显然需要一些些可能并不是很严谨但可以理解的证明如下假设一张已经完全的图中有两个点 a,ba,ba,b,现在 aaa 的出度是要比 bbb 多的设 bbb 的出度为 x,x∈Zx,x\in \mathbb{Z}x,x∈Z,aaa 的出度为 x+k,k>0,k∈Zx+k,k>0,k\in \mat
2021-01-23 20:14:20 227 1
原创 【题解】康娜的线段树
题目小林是个程序媛,不可避免地康娜对这种人类的“魔法”产生了浓厚的兴趣,于是小林开始教她OI。今天康娜学习了一种叫做线段树的神奇魔法,这种魔法可以维护一段区间的信息,是非常厉害的东西。康娜试着写了一棵维护区间和的线段树。由于她不会打标记,因此所有的区间加操作她都是暴力修改的。具体的代码如下:struct Segment_Tree{#define lson (o<<1)#define rson (o<<1|1) int sumv[N<<2],minv[N&
2021-01-14 13:53:33 1093 4
原创 (期望DP)【题解】SP1026 FAVDICE - Favorite Dice
题目一个n面的骰子,求期望掷几次能使得每一面都被掷到。link题解一个期望DP的常用状态设计方法:dp[i]表示当前已选了 iii 种点数,还需一直选到 nnn 种点数的丢骰子数的期望。显然dp[n]=0,答案为dp[0]现在考虑转移:则每次丢骰子有两种状态。和之前的点数一样,有 in\frac{i}{n}ni 的概率出现。记为 XXX。和之前的点数不一样,有 n−in\frac{n-i}{n}nn−i 的概率出现。记为 YYY。那么所以当前这一状态 E(i)=E(X)+E(Y
2021-01-14 13:46:51 736 1
原创 (数位DP)【题解】CF611B-New Year and Old Property
题意给出A、B,请你求出从 A 到 B 之间的所有数中,有多少数转化为 222 进制后,只有一个零。1≤a,b≤10181\leq a,b\leq 10^{18}1≤a,b≤1018思路加上数据范围考虑就是一道很明显的数位 DP 好吧在进行搜索的时候我们可以保存一个当前 000 的个数,搜完后判断当前 000 的个数是不是为 111 ,是的话就累加答案,最后加个记忆化就行了code:int dp[MAXN][MAXN];int dfs(int pos,bool lim,int cnt0){
2021-01-12 13:49:53 141 1
原创 (期望DP)【总结】期望DP
1st1^{st}1st 什么是期望感觉是一个比较难懂的东西(假设某随机试验XXX共有nnn种互斥的事件可能发生,其中第i个事件发生的概率为PiP_iPi,价值为XiX_iXi,则这个随机试验的期望是E(X)=∑PiXiE(X)=\sum P_iX_iE(X)=∑PiXi。很不好懂,对吧那么我们只需要把它简单的理解为加权平均数就好2ed2^{ed}2ed 期望的一些性质1. E(X+Y)=E(x)+E(Y)E(X+Y)=E(x)+E(Y)E(X+Y)=E(x)+E(Y)证明:左式=∑
2021-01-12 11:39:03 3757 8
原创 【题解】括号染色
用 dp[x][y][i][j] 表示 xxx 到 yyy 这个区间左端点染 iii,右端点染 jjj 的方案数。首先用栈预处理出每个左端点对应的右端点,然后转移的时候考虑三种情况:区间长度为 222,这时候枚举 444 种染色情况,每种方案都是 111。match[x]==ymatch[x]==ymatch[x]==y 时,先处理 x−1x-1x−1 到 y−1y-1y−1,再根据边界的染色情况进行转移。match[x]!=ymatch[x]!=ymatch[x]!=y 时,先分别处理 xxx 到
2021-01-08 18:35:40 969
原创 【题解】 Stock Market 股票市场
题目描述尽管奶牛们天生谨慎,她们仍然在住房抵押信贷市场中受到打击,现在她们开始着手于股市。 Bessie很有先见之明,她不仅知道今天 S(2<=S<=50)S (2 <= S <= 50)S(2<=S<=50) 只股票的价格,还知道接下来一共 D(2≤D≤10)D (2 \leq D \leq 10)D(2≤D≤10) 天的(包括今天)。 给定一个 DDD 天的股票价格矩阵(1≤价格≤1000)(1 \leq 价格 \leq 1000)(1≤价格≤1000) 以及初始资
2021-01-08 18:29:00 535 1
原创 【常用】对拍器
#include<cstdio>#include<iostream>#include<ctime>using namespace std;int main(){ for(int T=1;T<=10000;T++){ system("make.exe");//make.exe为随机生成数据的工具 double st=clock(); system("my.exe");//自己写的代码 double ed=clock(); system("
2021-01-05 21:23:32 248
原创 (思维)(dp)【题解】CF909C Python Indentation
Python的代码中不需要写begin、end或者大括号去标记开头或结尾。 我们将考虑一种Python非常简化的子集,它的语句只有两种类型。 每行只写一个简单语句,比如赋值。 For语句是一个较复杂的语句,他们可能包含一个或多个其他的语句。 For语句由一个单独的行组成,以“For”前缀和循环体开头。 循环体是一个语句块,比循环头缩进一级。 循环体可以包含这两种类型的语句。循环体不能为空。 给你一个没有缩进的序列,求有多少种方式添加缩进可以形成一个完整的Python代码。 输入格式: 第一行:N 接下来N行
2020-12-29 13:56:22 153 1
原创 (线段树)(滑动窗口)【题解】「NOI2016」区间
题目题意在数轴上有 nnn 个闭区间从 111 至 nnn 编号,第 iii 个闭区间为 [li,ri][l_i,r_i][li,ri]现在要从中选出 mmm 个区间,使得这 mmm 个区间共同包含至少一个位置。换句话说,就是使得存在一个 xxx ,使得对于每一个被选中的区间 [li,ri][l_i,r_i][li,ri],都有li≤x≤ril_i \leq x \leq r_ili≤x≤ri对于一个合法的选取方案,它的花费为被选中的最长区间长度减去被选中的最短区间长度。区间$ [l_i,
2020-12-14 14:11:50 201 1
原创 【题解】程序判断电路的类型
一句话题意以图论方式给出一个电路,判断此电路的特征题解首先,根据TYJ老师的讲解,我们可以知道在一个电路中,若电源与一个用电器之间只有导线,则可以看做用电器与电源直接相连,如下图:在这张图中L1,L2由于和电源的正极只用导线相连,所以可以视为L1,L2的左端就是+极,L3的右端就是-极OK,当我们明白了这一点后,我们再引入几个定理假设这个电路无短路情况,首先对电路进行上述变形若这个电路中所有用电器两端都直接连接正负极,则这个电路一定是并联的...
2020-12-11 23:05:19 2020 2
原创 【题解】noip2006 组合数问题
组合数 \binom{n}{m}( mn ) 表示的是从 nn 个物品中选出 mm 个物品的方案数。举个例子,从 (1,2,3)(1,2,3) 三个物品中选择两个物品可以有 (1,2),(1,3),(2,3)(1,2),(1,3),(2,3) 这三种选择方法。根据组合数的定义,我们可以给出计算组合数 \binom{n}{m}( mn ) 的一般公式:\binom{n}{m}=\frac{n!}{m!(n-m)!}( mn )= m!(n−m)!n!
2020-12-04 13:49:17 1118 5
原创 【题解】矩阵
有一个$n \times n$的矩阵,每个位置$(i, j)$如果是 `.` 表示为白色,如果是 `#` 表示为黑色。初始时,每个位置可以是黑色或白色的,$(i, j)$位置的值会作为$a_{i, j}$给你。现在有一种操作,选择两个整数$i, j \in [1, n]$,记$(i, 1), (i, 2), \ldots, (i, n)$的颜色为$C_1, C_2, \ldots C_n$,将$(1, j), (2, j), \ldots, (n, j)$的颜色赋为$C_1, C_2, \ldots
2020-11-22 23:15:28 831 1
原创 (未分类)【总结】线段树
线段树是什么?有一类区间问题可以抽象成如下模型。给定包含 nnn 个数的数组 a1,a2,⋯a_1, a_2, \cdotsa1,a2,⋯。有两种操作查询区间 [l,r][l, r][l,r] 最小的数。修改第 aia_iai为 xxx。这里,为了解决这个问题,我们介绍一种灵活的数据结构——线段树。我们用一棵二叉树来表示线段树,线段树中的每个结点都表示一个区间。每个非叶子结点都有左右两棵子树,分别对应区间的 “左半” 和 “右半”。为了方便起见,我们给根结点编号为 111。对于每个结点,
2020-11-21 11:05:07 197 5
原创 【游记】【总结】CSP-2020
一、游记Day -一段时间复习了一波Day -1好心的GM给我们开了一场模拟赛,手感&RP很好,成绩:300/400,排名2/16 (肯定就是这场比赛把我的RP用光了,就是的就是的)Day 0考前坐校车去的NK,车上和Yrl复习了一下板子 (主要是在听歌和睡觉)到了考场,脑胡了一下背包和最短路(都没考),默默注视着LPC肚子痛找不到厕所(233233233)考中当收到密码就去看了题,但这里是失算了,看到T1就情不自禁想去想,没去先看后面的题可以写代码时就很急的把T1打了,过了大
2020-11-15 14:23:55 115
原创 【常用】高精度
一个封装了+,−,×,÷+,-,\times,\div+,−,×,÷的高精度结构体struct BigSum{ int a[MAXN];//已经倒序 int len; };void print(BigSum a){ for(int i=a.len;i>=1;i--){ printf("%d",a.a[i]); }}BigSum operator + (BigSum a,BigSum b){ BigSum c; c.len=1; int x=0; int lena=a.l
2020-11-05 22:51:38 90
原创 【常用】快读、快输
int read(int &x){ char c=getchar(); int t=1; x=0; while(c<'0' || c>'9'){ if(c=='-') t=-t; c=getchar(); } while(c>='0' && c<='9'){ x=(x<<1)+(x<<3)+(c-'0'); c=getchar(); } return x*=t;}void write(int x){
2020-11-05 22:49:16 361
原创 【常用】c++打开所有优化指令
c++打开所有优化指令#pragma GCC optimize(2)#pragma GCC optimize(3)#pragma GCC optimize("Ofast")#pragma GCC optimize("inline")#pragma GCC optimize("-fgcse")#pragma GCC optimize("-fgcse-lm")#pragma GCC optimize("-fipa-sra")#pragma GCC optimize("-ftree-pre")#
2020-11-05 22:47:37 1073
原创 【计划】CSP-2020复习计划
11/2 最短路 Dijkstra Bellman-Ford SPFA Floyd[ ]11/3 ST表 最小生成树11/4 背包 LCS、LIS、LCIS
2020-11-01 17:38:51 111 2
原创 初等数论【整除性篇】之习题证明
目录1题目:证明2题目证明3题目证明4题目证明5题目1题目:证明:任意奇数的平方减1是8的倍数证明设这个奇数为a+1a+1a+1,aaa为偶数它的平方-1为a2+2a=a(a+2)a^2+2a=a(a+2)a2+2a=a(a+2)∵\because∵aaa为偶数∴\therefore∴在aaa与a+2a+2a+2中肯定有一个数可以被4整除∴\therefore∴a(a+2)a(a+2)a(a+2)为888的倍数得证2题目当nnn是偶数时,2∣3n+12|3^n+12∣3n+1;当n
2020-10-17 13:09:55 2211
原创 【题解】蜈蚣
在一条山路的转角处,WYH发现了一条有中指一样粗的有N节的蜈蚣。这只蜈蚣马上就吸引了HKE的眼球,HKE深深地爱上了这条魔性的蜈蚣。它的很多对足在前进的时候像波浪一样,颇是有毒。但是,热爱解剖动物的MZL却准备把蜈蚣切了。HKE很失落,于是MZL承诺不会完全肢解它,只把它的N节切成M段,每一段包含原蜈蚣完整的一节或多节。HKE看到他心爱的蜈蚣会切掉是会觉得恶心的。蜈蚣的每一节都有一个权值W[i],切下来的一段(W[i],W[i+1],...,W[j])带给HKE的恶心值是W[i] xor W[i+1
2020-10-07 19:56:59 1953 3
原创 【总结】LCA
LCA是什么,能吃吗基本概念:祖先:有根树中,一个节点到根的路径上的所有节点被视为这个点的祖先,包括根和它本身公共祖先:对于点a和b,如果c既是a的祖先又是b的祖先,那么c是a和b的公共祖先深度:子节点的深度=父节点深度+1,一般我们定根的深度为1最近公共祖先:树上两个节点的所有公共祖先中,深度最大的那个称为两个点的最近公共祖先(LCA)例子在这样一张图中,我们来回答一些问题,加深对LCA的印象4的祖先有哪些答案:4,2,17的祖先有哪些答案:7,5,3,19的祖先有哪些
2020-10-06 20:37:01 148 1
原创 【题解】最优贸易
题目题目描述C国有nnn个大城市和mmm 条道路,每条道路连接这 nnn个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 mmm 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道路在统计条数时也计为 111条。CCC国幅员辽阔,各地的资源分布情况各不相同,这就导致了同一种商品在不同城市的价格不一定相同。但是,同一种商品在同一个城市的买入价和卖出价始终是相同的。商人阿龙来到 CCC 国旅游。当他得知同一种商品在不同城市的价格可能会不同这一信息之后,便决定在旅游的
2020-10-05 07:53:06 312 1
原创 【题解】加分二叉树
题目题目描述设一个 nnn 个节点的二叉树tree\text{tree}tree 的中序遍历为(1,2,3,\ldots,n)(1,2,3,…,n),其中数字 1,2,3,\ldots,n1,2,3,…,n 为节点编号。每个节点都有一个分数(均为正整数),记第 ii 个节点的分数为 d_idi ,\text{tree}tree 及它的每个子树都有一个加分,任一棵子树 \text{subtree}subtree(也包含 \text{tree}tree 本身)的加分计算方法如下:\text{sub
2020-10-04 15:51:09 2645 6
原创 【题解】求树的直径
问题描述给定一棵树,树中每条边都有一个权值,树中两点之间的距离定义为连接两点的路径边权之和。树中最远的两个节点(两个节点肯定都是叶子节点)之间的距离被称为树的直径,连接这两点的路径被称为树的最长链。后者通常也可称为直径。算法:不妨设1号节点为根,“N个节点,N-1条边的无向图”就可以看作“有根树”。设d[x]表示从节点x出发走向以x为根的子树,能够到达最远节点的距离。设x的子节点为y1,y2,……,yt,edge(x, y)表示边权,显然有:d[x] = max{d[yi] + edge(x, y
2020-10-04 14:47:08 532
原创 【题解】求树的重心
定义树的重心定义为,当把节点x去掉后,其最大子树的节点个数最少(或者说成最大连通块的节点数最少),那么节点x就是树的重心。通俗的理解:这个点去掉后,剩下的联通块尽量平均算法:树上任选一结点 uuu 开始 DFS,沿路统计其所有子树的大小和以它为根的子树的大小,这样也就可以得到一个点所有子树的大小及的大小还有一个问题,如果这个点不是根节点,那么删掉后剩下的连通块不止有他的子树,还有他上面的部分,这部分可以由总结点减去他自己的子树大小得到我们知道一个性质:删除重心后所得的所有子树,节点数不超过原树的
2020-10-04 14:44:56 1919 3
原创 【题解】没有上司的晚会
题目题目描述某大学有 nnn 个职员,编号为 1…n1\ldots n1…n。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数rir_iri ,但是呢,如果某个职员的直接上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请你编程计算,邀请哪些职员可以使快乐指数最大,求最大的快乐指数。输入格式输入的第一行是一个整数 nnn。第 222 到第 (n+1)(n + 1)(n+1
2020-10-04 14:42:08 331
原创 【题解】残缺棋盘
题目棋手楚继光和张琪曼一动不动地在棋盘前已经沉默地坐了五个小时。他们全神贯注地盯着每粒棋子。突然,楚继光说:“原则上我是反对在下棋时说话的,但是我现在不得不开口问:现在究竟该谁走下一步棋了?”张琪曼说:“谁先走都不重要了,现在的问题是:谁把这个棋盘上的格子损坏了?”正如图所示,有一正方形棋盘,其边长为2k(1<k<10)2^k(1<k<10)2k(1<k<10),其中有一格损坏。现在想用如图中间所示形状的硬纸板将没有坏的所有格子盖起来。而硬纸板不得放入坏格中和棋
2020-09-05 20:00:07 727 3
原创 【题解】[清华集训2015]灯泡
题目题目描述相比 Wildleopard 的家,他的弟弟 Mildleopard= 比较穷。他的房子是狭窄的,而且在他的房间里仅有一个灯泡。每天晚上,他徘徊在自己狭小的房子里,思考如何赚更多的钱。有一天,他发现他的影子的长度随着他在灯泡和墙壁之间走动时会发生变化。一个突然的想法出现在他的脑海里,他想知道在房间里他的影子的最大长度。输入格式输入文件的第一行包含一个整数 TTT,表示测试数据的组数。对于每组测试数据仅有一行包含三个实数 HHH,hhh 和 DDD,HHH 表示灯泡的高度,hhh 表示
2020-09-04 22:27:38 711 1
问一道欧拉函数的模板题(我已经转化了一步题意)
2021-08-25
问一道题,如何使用线段树实现(c++)
2021-08-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人