摘要:
2021.7.15 13-18 p.m. A Triangles 题意 :给出三个点坐标判断三角形形状(可能不能构成三角形)、 思路 : 首先判断三点确定的直线斜率是否相等,防止除法精度丢失,化成乘法 (x0-x1)(y1-y2)==(x1-x2)(y0-y1) 判断形状直接算出 三边的长度的平方 阅读全文
摘要:
1.前向星存储 前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序, 并记录下以某个点为起点的所有边在数组中的起始位置和存储长度,那么前向星就构造好了. 比如有起点终点和权值为以下的边: 1 2 1 // 1->2 权值为1 2 3 2 3 阅读全文
摘要:
最近在学最小生成树得时候又用到了并查集,一起来整理一下 1.并查集 并查集就是字面意思,将两个单独得集合合并成一个大的集合。 并查集关键在于两个操作:合并和查找 先要完成查找操作(合并操作在查找的基础上) int find(int x) { return root[x] == x ? x : roo 阅读全文
摘要:
KMP模板 1.next数组的实际含义 next数组从-1开始,主串a,子串b,next[j]=k,满足b[0,k-1]==b[j-k,j-1],k同时也为b子串前缀的下标,j为b子串后缀的下标 get_next函数如下: void get_next(string b,int *next) { in 阅读全文
摘要:
1.n叉树父子关系公式: 第i个节点,父亲为第j个节点,公式如下: j = [(i-2) / n] + 1 (其中[]表示括号内 向下取整 ) 2.LCS(最长公共子串)dp 做法 (子串不一定在主串中 连续 ) 和01背包类似,分为相等或不相等, dp[i][j]表示a主串中第i个字符,j表示b主 阅读全文
摘要:
一个规律题目要多做多积累 , 脑子不太灵活 CF1487 Cat Cycle 题目大意: 两只猫A,B, A猫从n → n-1 → n-2 ... → 1 → 2 ... → n ; B猫从1 → 2 → ... → n → n-1 → ... → 1 当两猫要相遇时,B猫往所移动得方向+1,而A猫 阅读全文
摘要:
2020.12.20 求质因数的方法 CF1444A Division #include<bits/stdc++.h> #define ll long long #define fp(i,a,b) for(int i=a;i<=b;i++) #define sfp(i,a,b) for(int i= 阅读全文
摘要:
**树状数组的操作以及运用** 小萌新学完树状数组神奇操作以后,初步认识到了数据结构的强大 tqi! 博客记录一下学习,树状数组主要是对数据的离散化处理,把原本n的复杂度降为logn,整体思想跟二分类似,用二进制的形式对数进行类似的处理。 1. 树状数组的离散化处理 (定义) 用d[]数组作为树状数 阅读全文
摘要:
新生赛以后就正式成为一名acmer啦 ~虽然没有打过比赛 要好好学算法,拿一个牌嘛~ 这里就记录算法学习情况,也怕自己偷懒,学一个就记录,看看长时间拖更就是在摸鱼,摸鱼和鸽子都是本质 ,加油! 开坑时间 2020.12.9 2020.12.9 今日快排走起(加模板) quicksort! void 阅读全文
摘要:
初次意识到程序的时间复杂度(tle多了 ) 第一次写博客(被大佬们的博客所折服orz) 拿打素数表的程序为例 优化前代码: #include<iostream> #include<cmath> #define ll long long using namespace std; int a[10000 阅读全文