摘要: HDU-1811 Rank of Tetris Problem Description 自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。 为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名 阅读全文
posted @ 2020-05-07 17:44 waryan 阅读(114) 评论(0) 推荐(1) 编辑
摘要: 概要: 进行拓扑排序是从入度为0的入手依次排序。 无等于条件排序 直接进行拓扑排序 含等于条件排序 先对等于条件进行并查集合并然后拓扑排序,且排序的时候注意存边时存的是父节点(需要Find一下) 模板: vector建图 const int maxn = 3e4+10; int deg[maxn]; 阅读全文
posted @ 2020-05-07 17:35 waryan 阅读(129) 评论(0) 推荐(1) 编辑
摘要: 完美K倍子数组 错误原因: 当一个数过大时存map时需要考虑的时候将其取余然后在输入的时候就遍历掉,单独遍历map是不科学的 思路: 1.k的倍数类 2.非k的倍数但是两个数加起来是k的倍数比如2k+3和3k+(k-3) 3.对k取余后是k的一半 #include <iostream> #inclu 阅读全文
posted @ 2020-04-12 12:06 waryan 阅读(341) 评论(0) 推荐(1) 编辑
摘要: 解线性方程 HDU-2669 Romantic 题意: 求ax+by=1的一组x,y,且x为最小的非负值 思路: 由于gcd等于1,所以判断gcd,如果gcd不等于则方程无解 直接上exgcd即可 #include <iostream> #include<algorithm> #include <c 阅读全文
posted @ 2020-04-09 18:28 waryan 阅读(153) 评论(0) 推荐(1) 编辑
摘要: 扩展欧几里得 在讲欧几里得之前我想写说gcd,因为在我学习exgcd时候没有深刻理解递归gcd导致看了很长时间的exgcd的都代码才懂 辗转相除 ​ 在辗转相除的应用中我们可以知道的是gcd(a,b)=gcd(b,a%b);然后层层递归求得当b=0时候的解 贝祖定理 当a,b∈Z,那么一定存在x,y 阅读全文
posted @ 2020-04-09 18:13 waryan 阅读(293) 评论(0) 推荐(1) 编辑
摘要: Aizu ALDS1_6_D Minimum Cost Sort 直接排序太简单了,我们来考虑一下排序的代价,对于一个长度n的由非负整数组成的数组,我们用交换法排序,每次可以交换任意两个元素,而交换的代价,是这两个元素之和,求出排序的最少交换代价,保证数组里没有两个元素相同且元素值小于等于10000 阅读全文
posted @ 2020-04-03 18:21 waryan 阅读(679) 评论(0) 推荐(1) 编辑
摘要: Trie树 概要: 字典树算法主要是对字符串进行处理,最后形成形如下图的trie树 字典树主要用来查询前缀出现次数,字符串以前缀代表,查找单词,对某个单词的操作和询问 在形成字典树的时候遵循的原则: 1.根节点0不标记如图所示,单词是否出现以单词的下个节点来作为判断如果上所示的'$',实际上也就是每 阅读全文
posted @ 2020-04-02 17:02 waryan 阅读(177) 评论(0) 推荐(1) 编辑
摘要: 题意: 取一字符串不相交的前缀和后缀(可为空)构成最长回文串。 思路: 先从两边取对称的前后缀,之后再取余下字符串较长的回文前缀或后缀。 讲解: 这道题主要是需要考虑的情况太多,比如说只有一个字符的情况下我是用if来判断输出还是用以下这种解法 这个解法的巧妙之处就是在于不用考虑是几个字符,因为在输出 阅读全文
posted @ 2020-04-01 19:17 waryan 阅读(169) 评论(0) 推荐(2) 编辑
摘要: Manacher算法-又叫马拉车算法 概要: Manacher算法主要用于求最长回文串,在求最长回文串的时候做了处理使长度均变成了奇数 处理方式:s[0]='$',从s[1]开始两边都有其他符号 然后用一个数组 P[i] 来记录以字符S[i]为中心的最长回文子串向左/右扩张的长度(包括S[i],也就 阅读全文
posted @ 2020-04-01 18:56 waryan 阅读(287) 评论(0) 推荐(1) 编辑
摘要: 一:Kmp算法 概要: Kmp算法中nxt数组为重要组成部分,nxt数组所存的内容为:next[i]表示前i个字符组成的子串的最长相同前缀和后缀的长度,要注意应用中提出的nxt[i]变化(方便在匹配两个字符串时候跳动减少时间复杂度) nxt数组模板: 以i=1为起点的字符串进行处理 void get 阅读全文
posted @ 2020-04-01 18:47 waryan 阅读(142) 评论(0) 推荐(1) 编辑
摘要: ls 查看当前目录下的文件名 ls -l 文件的详细信息ls -lh 文件的大小以字节的形式表示ls -lh --sort::xxx以xxx将文件排序 cat/查看文件内容 cat /var/log/messages 查看系统的变化信息more /var/log/messages 同上,但是满了一个 阅读全文
posted @ 2020-03-28 21:02 waryan 阅读(216) 评论(0) 推荐(1) 编辑
摘要: 同构图:图论当中的术语,假设G=(V,E)和G1=(V1,E1)是两个图,如果存在一个双射m:V→V1,使得对所有的x,y∈V均有xy∈E等价于m(x)m(y)∈E1,则称G和G1是同构的,这样的一个映射m称之为一个同构,如果G=G1,则称他为一个自同构 HDU3926-Hand in Hand 解 阅读全文
posted @ 2020-03-28 21:01 waryan 阅读(469) 评论(0) 推荐(1) 编辑
摘要: 一:Prim算法 void prim(int src)//prim算法是根据点来连接的寻找n-1个点 { int i,j,k,tmp; ll sum=0; for(i=1;i<=n;++i) dis[i]=mt[1][i],vis[i]=0;//初始化距离,标记清0 vis[1]=1;dis[1]= 阅读全文
posted @ 2020-03-24 15:39 waryan 阅读(188) 评论(0) 推荐(1) 编辑
摘要: 一:dijkstra模板(n2) int dis[maxn],vis[maxn]; void dijkstra(int src) { int i,k,j,tmp; for(i=1;i<=n;++i) dis[i]=mt[src][i],vis[i]=0; dis[src]=0; vis[src]=1 阅读全文
posted @ 2020-03-24 15:11 waryan 阅读(192) 评论(0) 推荐(1) 编辑
摘要: 牛牛战队的比赛地 简单三分的做法,一般判断距离问题考虑三分算法. 此题为何三分:可以将此题近似为从无穷小和无穷大到原地聚集则两边的无穷往中间走的过程是减小,所以可能是单峰函数 一般情况下可以先在草稿本上画一画试一试看看三分可不可以算出正确答案 #include<bits/stdc++.h> #def 阅读全文
posted @ 2020-03-10 17:17 waryan 阅读(171) 评论(0) 推荐(1) 编辑