首页 > TAG信息列表 > zhengjun

CF700E Cool Slogans / YbtOJ「字符串算法」第3章 后缀自动机 G. 重复子串 题解--zhengjun

题目大意 选出一个字符串序列 \(s\),使得对于每一个 \(s_i\),都是原串的子串,且每个 \(s_i\) 在 \(s_{i-1}\) 中都出现过至少两次,求最大的序列长度。 思路 发现其实可以做到让所有选出的字符串都是上一个字符串的后缀,因为如果后面留了一个尾巴,那么前面的字符串把这个尾巴砍了是不影响

HHHOJ #246 卡车 题解--zhengjun

题目传送门 题目大意 给定一个 \(n\) 个点的树,每个点有权值 \(v_i\),每条边也有权值 \(w_j\),对于树上一条简单路径,它的权值就是路径上(包括两端点)\(\min{\{v_i\}}\times\sum w_j\),求最大的路径权值。 思路 显然可以发现可以将每个点按照 \(a_i\) 从大到小排序,枚举当前的 \(\min\{v_

快读模板--zhengjun

int,char,double,long long,string,char[] 都可以输入输出 double 的输出方法 double x=123.123;fout<<Precision(5)<<x; 表示保留 5 位小数,默认 6 位。 注意一定要文件读入…… #include<bits/stdc++.h> using namespace std;typedef long long ll; struct Precision{int x;Prec

高精度模板--zhengjun

因为之前没有看到过既有负数,还可以压位的高精度运算,所以我就自己发一篇(原来这么简单,我\(1h\)就写好了) 如果有什么\(bug\),请在评论区回复或私聊我,我周末会看的。 本模板支持\(+,-,\times,\div,\bmod,a^b,a^b \bmod x\) 模板 #include<iostream> #include<cstdio> #include<cstrin

NOIP 2021 游记--zhengjun

比赛前一天 上午翻了翻打过的模拟赛(其实是翻 cqy 的提交记录发现有原题的),发现洛谷上都有很多紫题,于是贺了自己的代码过了好几道紫题和一道蓝题。 吃完饭简单收拾了一下就上大巴了。 在大巴上和 fls 坐一起,用我的电脑看了电影——《唐人街探案3》(事先下载下来的),还边吃自己带的零食

CF1555A PizzaForces题解--zhengjun

题目大意 你要得到 \(n\) 片披萨,有三种披萨可供选择: 一个 \(6\) 片,需要 \(15\) 分钟 一个 \(8\) 片,需要 \(20\) 分钟 一个 \(10\) 片,需要 \(15\) 分钟 求最少需要多少分钟才能至少得到 \(n\) 片披萨。 思路 首先看这三组数据,发现一个东西:每次只能得到偶数片披萨,那么如果需要奇数

刷题列表--zhengjun

@目录基本算法枚举贪心分治法递推模拟法图算法图的深度优先遍历和广 度优先遍历最短路径算法最小生成树算法拓扑排序二分图的最大匹配最大流的增广路算法数据结构串排序简单并查集的应用哈希表和二分查找等高效查找法哈夫曼树堆树简单搜索深度优先搜索广度优先搜索简单搜索技巧和

CF662B Graph Coloring题解--zhengjun

题目传送门 题目大意 给你一张无向图,图中每条边是蓝色或者红色的,让你每次选一个点,就会把与这个点相连的边的颜色反转(红变蓝,蓝变红),求最少步数的方案使得最后所有边的颜色都一样。 思路 好像没有 \(2-sat\) 的题解,那我就来一发。 首先分类讨论:要么都变成红色,要么都变成蓝色。 如果

洛谷 P1094纪念品分组题解--zhengjun

题面传送门 思路 因为最多只能两个物品一起,所以排个序,然后用两个指针,如果这两个可以,那就两个都要了,否则就只能要大的一个 代码 #include<bits/stdc++.h> using namespace std; int n,m; int a[30001]; int main(){ scanf("%d%d",&m,&n); for(int i=1;i<=n;i++)scanf("%d",&a[i])

P6474 [NOI Online #2 入门组] 荆轲刺秦王 题解--zhengjun

我一开始就打出来了,可是忘记一个很重要的剪枝,就是如果当前的步数已经超过答案的步数就不用搜了,还有就是每一个点的每一种状态都只能走到一次(其实就是走到一个点,之前使用了相同的魔法已经到过这个点)那么也不用搜下去了。 代码 #include<bits/stdc++.h> using namespace std; int

P6473 [NOI Online #2 入门组] 未了 题解--zhengjun

这个题目名称十分诡异。 然后我可以提供两种做法,复杂度一样,都是\(O(n\log n)\)的。 方法一 因为我们每一次使用魔法,就会让那个什么鬼畜的人物多走个\(a_i\)天,所以就可以贪心,每一次只要取大的就可以了,然后因为每一次都要加在一起看看够不够,所以就可以二分了。 代码 #include<bits/s

tarjan强连通--zhengjun

强连通就是在一个有向图中任何一个点都可以到达除这个点之外的所有点。 然后,在处理的时候,就可以把这一个子图直接变成一个点。 比如说这张图 就可以缩成这张图 原图中的 就是一个强连通 也就是说只要有环,就一定有一个强连通(其实自己一个也算一个强连通) 然后,就是找环的环节~~~

洛谷 P1071潜伏者题解--zhengjun

题面传送门 思路 一看就是一道模拟。 注意一下细节就可以了。 代码 #include<bits/stdc++.h> using namespace std; string a,b,c; int x[26],y[26];//分别从两边映射 int main(){ cin>>a>>b>>c; memset(x,-1,sizeof(x)); memset(y,-1,sizeof(y)); for(int i=0;i<a.length();i

洛谷 P1075质因数分解题解--zhengjun

题面传送门 思路 不就一道模拟吗,于是我就从\(n\)开始找,结果\(T\)了,然后,就想到了从小到大找,找到了就输出\(n\div i\),结果就\(A\)了 代码 #include<bits/stdc++.h> using namespace std; int n; int main(){ cin>>n; for(int i=2;i*i<=n;i++) if(n%i==0){ cout<<n/i; brea

洛谷 P1077摆花题解--zhengjun

题面传送门 思路 一看就是一道\(dp\) 用\(f_{i,j}\)表示摆到第\(i\)种花,已经摆了\(j\)盆花所有的可能性; 初始化:\(f_{0,0}=1\) 状态转移公式: \(f_{i,j}=\sum\limits_{k=1}^{min(a_i,j)}f_{i-1,j-k}\) 这里就直接用滚动数组了。 代码 #include<bits/stdc++.h> #define mod 1000007 u

洛谷 P1059明明的随机数题解--zhengjun

题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了\(N\)个\(1\)到\(1000\)之间的随机整数\((N≤100)\),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学

洛谷 P1069细胞分裂题解--zhengjun

题面传送门 思路 一看,不就是一个分解质因数吗? 这里使用欧拉筛筛素数,如果不会,可以用埃氏筛,反正代码都差不多。 进入正题。 以第二个样例为例: 2 24 1 30 12 先处理出素数表\(prime\)。(我喜欢欧拉筛) 然后分解质因数,用\(a_i\)表示第\(i\)个素数有几个。(主要是省空间) 然后分解出来

洛谷P1025数的划分题解--zhengjun

题目描述 将整数\(n\)分成\(k\)份,且每份不能为空,任意两个方案不相同(不考虑顺序)。 例如:\(n=7\),\(k=3\),下面三种分法被认为是相同的。 \(1,1,5;\) \(1,5,1;\) \(5,1,1.\) 问有多少种不同的分法。 输入格式 \(n,k\) (\(6<n \le 200\),\(2 \le k \le 6\)) 输出格式 \(1\)个整数,即不同

洛谷P1006传纸条题解--zhengjun

题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排做成一个 \(m\) 行 \(n\) 列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里

洛谷 P1008三连击题解--zhengjun

题目背景 本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。 题目描述 将\(1,2, \cdots ,9\)共\(9\)个数分成\(3\)组,分别组成\(3\)个三位数,且使这\(3\)个三位数构成\(1:2:3\)的比例,试求出所有满足条件的\(3\)个三位数。 输入格式 木有