自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 ZRCSPday5

时间分配6:00~6:05审T1并码代码6:05~7:00审T2并直接码自己认为的正解代码,但在样例测试是发现过不了,又仔细想了想,发现是错的,又换了种思路,从1开始扩展,但发现复杂度和暴力代码没区别,就先放过了。7:00~8:00审T3并开始狂想,想着可以三色轮流标记,但发现太长时间没写过图论代码了,一直改不出来,删删改改,一个小时就过去了。8:00~8:30我试着换种思路,但还是不对,就想写了个随机数。8:30~10:00T4太难写了,分类讨论了好几种情况,根本码不对。。。赛后总

2021-09-27 19:45:46 84

原创 那些年我犯过的**错误(╥╯^╰╥)

2021 CSP 7连测 day3时间分配6:00~6:10 审T1题6:10~7:15 尝试码T1题意很简单,就是玩扫雷游戏并发现策略,但是根本想不出来,感觉自己废掉了。。。7:15~745: 审T2题我直接心态崩了!!!不会搞,然后写了个贪心,WA了。。。7:45~8:25 审T3题并码暴力然后发现虽然正解我不会,但我会码暴力。然后我就开始码暴力了,8:25~8:45 审T4题发现是数论题,试着推了一下公式,然后没推出来。天无绝人之路,发现有25的部分分是7以内的,然后我就七

2021-09-22 20:22:30 95

原创 那些年我犯过的**错误

2021 CSP 7连测 day3时间分配6:00~6:10 赶到机房的路上6:10~6:15 审T1题6:15~6:35 淦T1代码感觉太简单了,又检查了几遍,发现似乎没什么细节(但谁知道呢?,于是我开始淦T2了6:35~6:36 审T2题并发现了一个很惊悚的事情看题的第一眼,wocwocwoc !!!这不是第一章例题 费解的开关 吗???我直呼内行,然后开始苦逼的码代码。。。6:32~7:15 开始淦代码,然后发现我太单纯了思路会了,我就以为我会了。然后发现我错了,大错特错!!!

2021-09-12 09:45:37 112

原创 炮兵阵地【二进制+三进制】

真晦气,被抽到讲题题目简述传送门(戳我)给定一个N∗MN*MN∗M的矩阵,求最多能放多少个十字形,且每个十字的中心不被其他十字覆盖。分析考虑每个块是否能放炮兵只与其上两行对应的位置是否放置过炮兵有关,所以在第i行的转移只需考虑第i-1和第i-2行的状态。设置状态:每一行的状态用一个MMM位的二进制数表示(当然用十进制存储,其中第 ppp 位为1/01/01/0 表示该行是///否放置了炮兵。f[i,j,k]f[i,j,k]f[i,j,k] 表示第 iii 行的状态为 jjj,第 i−1i-

2021-09-09 20:32:42 100

原创 那些年我犯过的**错误(╥╯^╰╥)

2021 CSP 7连测 day2时间分配6:00~6:30 审T1+淦代码很简单的暴力,字符串扫一遍,是数字的话把字符转成int ,有前导0的话flag标记一下;是符号的话就跳过,如果不是...的话就flag标记,最后若没标记,就直接输出YES,否则输出NO并用 ... 连接四个数字。6:30~6:50 想T2贪心算法并证明发现先AP结合比PP结合更优,所以可以一个类似于括号匹配的东西,最后数前导P的个数即可(若存在A则之后必不可能存在P,否则可消)若为奇数输出剩余A的个数+1,否则直接输出剩

2021-09-05 21:00:19 72

原创 20210822普转提训练赛

矩阵编码写挂了。。。(。•́︿•̀。)挺简单的 bfsbfsbfs(只是思想简单,手残党表示码不对,委屈不哭按 bfsbfsbfs,生成这个四分树即可。举重就很离谱!!!正瑞OI\text{OI}OI原题,

2021-08-22 16:46:02 125

原创 人工智障CD组大讨论之经典zr普及

A. 如烟莫名其妙挂了,我的想法是 707070 分的。预处理出从每个 ccc 出发能到达的点的有哪些,然后枚举判断即可。复杂度O(n3)O(n^3)O(n3)。然鹅我们发现有一个条件我们没用上:拓扑序为1~N1~N1~N。众所周知:题面上的条件都很有用(bushi(bushi(bushi考虑 f[x][y]f[x][y]f[x][y] 表示 (x,y)(x,y)(x,y) 是否是一个合法的点对,显然有 f[x][x]=1(1≤x≤N)f[x][x]=1(1≤x≤N)f[x][x]=1(1≤x≤

2021-08-13 09:00:00 105

原创 集合幂级数

定义形如∑i=02n−1aixi\sum_{i=0}^{2^n-1}a_ix^i∑i=02n−1​ai​xi,其中 iii 是一个二进制数,表示 {1,2,...,n}\{1,2,...,n\}{1,2,...,n} 的一个子集。基本操作高维前缀和即要求:ci=∑j[j∨i=i]ajc_i=\sum_j[j∨i=i]a_jci​=∑j​[j∨i=i]aj​先考虑一维前缀和:for(int i=1;i<=n;i++) a[i]+=a[i-1];然后考虑二维前缀和:for(int i

2021-08-08 21:37:01 313

原创 21人工智障C组大讨论day6

T1很简单的贪心,证明略。ps: double\text{double}double 过不了,需要用 long double\text{long double}long doubleT2啊啊啊!!!土拨鼠尖叫.jpg.jpg.jpg嗑了一个多小时,然后老师把题删了 ,因为题是假的。 (Oˊ(\text{Ó}(OˊωOˋ)\text{Ò})Oˋ)T3可以先假设某渣男只脚踏两条船。考虑对Ai−BiA_i-B_iAi​−Bi​大到小排序, 那么选A属性的那些物品肯定在选

2021-08-07 16:10:03 94

原创 ----------人工智障C组大讨论day5----------

T1水题,跑两遍 dijkstradijkstradijkstra 求单源最短路就行了。T2考试时有一个肯定不能过的想法,就是从每个‘+’‘+’‘+’开始,跑 bfsbfsbfs,然后对于每个点更新为最小值。然鹅,写挂了…正解:对空格建 A,BA,BA,B 两份图,AAA 内部只连横边,BBB 内部只连竖边,长度都为 000。考虑把转弯表示成在 A,BA,BA,B 之间切换。即对每个空格,在 A,BA,BA,B 之间连长度为 111 的边。以两图中的每个为 +++ 的点为源,做多源最短路。

2021-08-04 18:39:04 91

原创 人工智能C组大讨论 day4

T1一旦一个数使用了第二种操作,可以直接把它看成消失了,因为不对剩下的数造成任何阻碍。所以考虑二分答案。可以把 <=mid<=mid<=mid 的那些数全部看做消失,从序列中移除。判断剩下的序列是否满足条件。T2暴力即正解T3dpdpdp,令 fif_ifi​ 表示以 iii 结尾的前缀的答案。枚举 jjj,如果 sj+1→is_{j+1\to i}sj+1→i​ 是好的字符串那么就用 fj+1f_{j+1}fj+1​ 更新 fif_ifi​,加一些神奇的剪枝就能过了。

2021-08-03 15:25:11 334

原创 网络流&二分图匹配

网络流最大流问题简述:有一个有向图,存在源点 SSS 和汇点 TTT,每条边有一个流量,求从 SSS 到 TTT 最多能经过多少流量。例如,在下图中:最大流为4。最小割割:表示一个切面或切线,将网络分为分别包含源点和汇点的两个子集,该切线或切面与网络相交的边的集合,称为图像的割。最小割:网络的所有割中,边权值和最小的割。具体解释还可以参考百度百科。显然的,最大流=最小割。Ford-Fulkerson算法基本思想:这是一种贪心思想,只要存在从源点到汇点的路径,我们就沿着其中一个扩充

2021-08-02 20:58:50 288

原创 拓扑排序&2/3-SAT

拓扑排序概念:一个有向图的点的序列,满足对于任意一条条边 u→vu\to vu→v,都有 uuu 在序列中的位置在 vvv 之前。例如,在下图中,有合法的序列:1,2,3,41,2,3,41,2,3,4 或 1,3,2,41,3,2,41,3,2,4。其中,有环图一定没有拓扑序。在有向图中,每次选一个入度为0的点,将其加入拓扑序的末尾,再在原图中删除这个点及其所以出边。伪代码如下:add(x,y):...deg[y]++;for(i...n) if(!deg[i]) q.push(i);

2021-08-01 18:53:05 197

原创 强连通&边双&点双

强连通定义给定有向图 G=(V,E)G=(V,E)G=(V,E)。对于 u,v∈Vu,v\in Vu,v∈V,若 GGG 中同时存在 uuu 到 vvv 的路径和 vvv 到 uuu 的路径,则称 uuu 和 vvv 强连通 (strongly connected)\text{(strongly connected)}(strongly connected)。如果对于任意的 u,v∈Vu, v\in Vu,v∈V 都有 uuu 和 vvv 强连通,则称有向图 GGG 为强连通图。

2021-07-31 20:59:50 206

原创 大讨论总结DAY3

题外话没看课表也没看群,导致不知道今天考试,快到九点时见老师还不来觉得不对劲看了眼群才知道今天考试。时间由四个小时缩水到三个小时…QwQQwQQwQpspsps:吐槽一下,题的名字真的很离谱。T1串串写第一题是也由于某些小 bugbugbug 直到九点快四十五才把部分分码出来。知道需要 hashhashhash,但鉴于以往每逢 hashhashhash 必 dedede一小时的经验,我就先跑了。正解其实这题的思想比较简单。T2数环看到题我是懵的,然后苦思冥想二十分钟把样例推出来了,然后写

2021-07-30 20:46:01 93

原创 后缀自动机ヾ(*////▽////*)ゞ

后缀自动机在后缀自动机之前还需要一些前置知识。End pos 集合即结束的位置集合,简称EpEpEp 集合,代表一个子串在原串中出现的右端点。例如在下面这个字符串:ZHOUSHENNISHISHENMEJUESHIDABAOBEI这些加粗的SHSHSH的右端点的位置分别是6,12,15,246,12,15,246,12,15,24,那么在这个字符串里,SHSHSH的EpEpEp 集合就是{6,12,15,24}\{6,12,15,24\}{6,12,15,24}。EpEpEp 相同的子串叫一

2021-07-28 19:56:36 178

原创 后缀数组(๑Ő௰Ő๑)ノ“

后缀数组与LCP后缀数组首先,将一个字符串的所有后缀按字典序排序。后缀数组 sa[i]sa[i]sa[i]:表示所有后缀在排完序后,排名为 iii 的后缀在原串中的位置。名次数组 rank[i]rank[i]rank[i]:表示所有后缀在排序完后,原字符串中第 iii 名现在的排名。显然,sasasa 与 rankrankrank 是互逆的,即rank[sa[i]]=i,sa[rank[i]]=i;rank[sa[i]]=i,sa[rank[i]]=i;rank[sa[i]]=i,sa[rank.

2021-07-27 20:07:22 107

原创 可持久化数据结构ヾ(◍´꒳`◍)ノ゙

可持久化数据结构即可以持久化的数据结构,维护所有历史版本。可持久化线段树(主席树)维护每个节点的左右儿子和权值。每一次修改时对于每个访问的点建立一个新节点,将这个节点修改后的权值和左右儿子填入新店内(本身权值不变)CODEvoid update(int pre,int &t,int l,int r,int pos){ t=++cnt; ls[t]=ls[pre]; rs[t]=rs[pre]; sum[t]=sum[pre]+1; if(l==r) return; int m

2021-07-26 19:04:41 133

原创 简单平衡树 (ノ`д´)ノ ミ ∵.: ┻━┻:·

不简单平衡树Splay算法旋转操作旋转过程如下图所示:右旋 & 左旋代码如下:bool get(int x) { return son[f[x]][1]==x;}void update(int x) { if(x){ siz[x]=cou[x]; if(son[x][0])siz[x]+=siz[son[x][0]]; if(son[x][1])siz[x]+=siz[son[x][1]]; }}void rotate(int x) { int old=f

2021-07-25 19:28:02 148

原创 分治ヾ(◍^▽^◍)ノ゙

普通分治思想:分成两个部分分别处理,然后合并答案朋友一张无向图,每次询问a到b不经过c的最短路。n<=200,Q<=1e5Floyd,不支持删点,可用分治加点模拟删点。复杂度O(n3log⁡n)O(n^3\log n)O(n3logn)[ZJOI2016] 旅行者给定一个网络图和若干组询问,每次询问两点间最短路。n*m<=2e4,q<=1e5沿着长边从中间切成两半,是起点和终点在边的两边,将边上的点跑一边dijkstradijkstradijkstr

2021-07-24 18:58:04 281

原创 考试小结٩(๑>◡<๑)۶

这可能是我拿过的最高分了可能是题比较水T1覆盖二分水题…贪心就行了T2下雨QwQQwQQwQ 999999分,没有特判000的情况…排个序,从最低点开始按矩形扩展(要注意细节!!!T3中位数考试时把此题当成了数据结构,不会写,然后在想暴力代码,打部分分,q=1时直接暴力建新数组,排序输出答案(然而我写挂了。考试时一直在考虑n=m的情况,但没找到什么思路。808080分:二分套二分比较好想,但会被卡。100100100分:可以考虑去一个log⁡\loglog变成二分将A,B,分成两个部

2021-07-23 15:38:42 94

原创 基础字符串(⊙x⊙;)

字符串Hash每个字符对于一个ASCII码,即可用一个数字表示将字符串转换为一个p进制数(常取p=131)hash代码如下:const int p=131;const int mod=99999991;int Hash(string s){ int hash=0; for(int i=0;i<strlen(s);i++) hash=(hash*p+s[i])%mod; return hash;}但单Hash仍比较容易发生冲突,所以可维护字符串长度来降低冲突。STL_has

2021-07-22 18:31:42 254

原创 数据结构day1

DAY1RMQRMQ即为Range Maximun/Minimum Query,范围内的区间最大/小值查询,可用线段树,树状数组,ST表等方法解决倍增ST表实现ST表算法是一种倍增的方式如下专门介绍快速幂预处理出a,a2,a4,a8...a,a^2,a^4,a^8...a,a2,a4,a8...考虑二进制,将aba^bab转换成一些数的乘积显然,若f[i]=a2if[i]=a^{2^i}f[i]=a2i,则f[i]=f[i−1]∗f[i−1]f[i]=f[i-1]*f[i-1]f[i.

2021-07-22 00:22:38 104 1

原创 zhengruioi测试【oj太卡了】

总结T140分代码很简单但是!由于没有认真审题,写成了从大到小排序(主要因为太简单,都没有测样例,我错了!考试时的满分代码想了想,但考试时直觉这道题像trie树,但发现建不了树,然后就放弃了。(赛后知道有人暴搜60分表示很震惊100分思想:因为正着搜并不能直接确定下一个的位置,所以可以考虑倒着搜T2状压dp(考试时也想到了,但状态没想出来…所以我就写了个不知道能骗多少分的暴力然而…oj太卡,提前5分钟交都没交上T1卡成404,好不容易交上T2又卡,然后就没交上,然后就没有然后了…Tw

2021-07-19 18:10:59 275

原创 2021-02-17

区间DP概念以区间长度为阶段方法枚举区间长度,再枚举左端点,之后枚举区间的断点进行转移表示f[i][j]表示消去区间[i,j]需要的最少次数。例题石子合并枚举边界,然后枚举长度f[i,j] 表示从第i个到第j个中,所有的数合并的最小代价动态转移方程 [i][j]=min(f[i][j],f[i][k]+f[k+1][j]+s[j]-s[i-1]);#include<bits/stdc++.h>using namespace std;int f[101][101],s[

2021-02-17 00:00:16 58

原创 2021-02-16

线性dp在线性结构上进行状态转移LIS ,最长上升子序列。问题描述 给定一个长度为n的数列a,求数值单调递增的子序列的长度最长是多少;状态表示 dp[i]表示以a[i]为结尾的“最大上升子序列长度转移方程:dp[i]=max{1+dp[j]}(0<=j<i,a[j]<a[i])const int maxn=100006;int s[maxn];int dp[maxn];int main(){ int n; int res=0; scanf("%d",&n)

2021-02-16 22:52:09 53

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除