
第一次暑期集训19年
过去的时间,再也不会更新的专栏。
麻达拉
お前も舞うか
展开
-
关于二分查找~~~left与right工作下标
对从小到大排好的数组,一定要 left=mid+1。否则,就会一直有left = mid=right-1<right,导致无法跳出循环。 对一个找不到的数(不在数组里),要是想取相邻的下标里,较大的那个,就要 写成:left=mid+1; right=mid; 要是想取较小的那个下标,就写成:left=mid+1; right=mid-1; 关于这两点知识,写的比较好...原创 2019-08-06 17:12:37 · 522 阅读 · 0 评论 -
The Suspects POJ - 1611
以下为AC代码,思路:用并查集来合并集合就可以了,把每个社团当作一个集合和并。最后,找出0号学生所在的集合的根节点,然后遍历所有学生,如果和0号学生的根节点相同,说明他们在一个集合当中。 #include<iostream> #include<cstdio> using namespace std; int n,m; const int maxn=30010; int...原创 2019-08-10 14:18:07 · 110 阅读 · 0 评论 -
分享来自洛谷的一个代码吧,关于并查集的
P1551 亲戚 提交22.30k 通过11.69k 时间限制1.00s 内存限制125.00MB 提交代码加入收藏 题目提供者JOHNKRAM 难度普及- 历史分数100 提交记录查看题解 标签 查看算法标签 相关讨论 进入讨论版 查看讨论 推荐题目 查看推荐 展开 题目背景 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,...转载 2019-08-11 09:14:27 · 412 阅读 · 0 评论 -
经典算法之拓扑排序
传送门 #include <iostream> using namespace std; #define N 13 int main() { int map[N][N]; //邻接矩阵 // 初始化矩阵的值全部为0表示各个顶点间没有边连接 for(int i = 0; i <= N-1; i++){ for(int j = 0; j...转载 2019-08-11 16:32:00 · 139 阅读 · 0 评论 -
继续畅通工程 hdu1879
省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。 Input 测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( 1< N < 100 );随后的 N(N-1...原创 2019-08-12 15:04:10 · 128 阅读 · 0 评论 -
P1308
这个代码的关键思路是,在字符串的最后面加上一个空格,使所有的单词都满足后面有一个空格的性质,通过后面的空格来定位一个单词的结束。 #include <stdio.h> #include <string.h> int main() { char a[11], b[1000001]; gets(a); gets(b); strcat(a," "...转载 2019-08-21 14:30:36 · 305 阅读 · 0 评论 -
洛谷做题笔记------杂记
这个笔记会持续更新,然后也不一定是写AC代码,主要是记录别人代码里的发光点。(不知道有没有必要坚持下来) P1055 ISBN号码 这个题,暴力读入,秀的一匹,用了scanf的特性,读入指定字符。因此,读入的都是有用的字符。 还学到了:字符(char)转数字(int):减去 ‘0’(字符0),或者减去48。 ...原创 2019-08-17 17:12:22 · 219 阅读 · 0 评论 -
快速幂模板
#include<iostream> #include<cstdio> using namespace std; //计算a的b次方。 int quick_pow(int a,int b) { int base=a,ans=1; while(b) { if(b&1) ans*=base; b>>=...原创 2019-08-06 10:52:18 · 133 阅读 · 0 评论 -
暑期集训学习笔记———对线段树单点修改的看法(我是一只小萌新,啦啦啦啦啦)
其实,单点修改和建树是差不多的,都是用到了递归具有回溯的性质。单点修改,具体而言:先向下找到要修改的叶子节点(不知道有没有不是修改叶子结点的情况),然后用 **PushUp()**函数更新它的父亲结点,爷爷结点(我就想这样叫),曾爷爷结点,。。。。。。一直到开头的结点。由于二叉树的性质,每层只用更新一个结点就够了。 感谢,,XYX大佬,和各位学长们为我们这些老鲜肉提供了大部分理论知识。 ...原创 2019-07-25 10:31:09 · 191 阅读 · 0 评论 -
筛法求素数(快速筛和普通筛)
先插一个链接,这是我觉着关于这一方面,写的比较好的博客https://blog.youkuaiyun.com/Dinosoft/article/details/5829550,尤其是这个博主关于普通筛法的优化。 插一个知识点:任何合数,都能写成素数的积的形式。比如 6=2*3; 50=2*5*5。 根据上面那个博客,我写两点自己想出来的东西: 普通筛法:关于为什么: 当前剩下的最小的数就是...原创 2019-07-30 14:16:01 · 949 阅读 · 0 评论 -
lazy-tag思想———— 线段树
介绍Lazy思想:lazy-tag思想,记录每一个线段树节点的变化值,当这部分线段的一致性被破坏我们就将这个变化值传递给子区间,大大增加了线段树的效率。 ——yicbs 在此通俗的解释我理解的Lazy意思,比如现在需要对[a,b]区间值进行加c操作,那么就从根节点[1,n]开始调用update函数进行操作,如果刚好执行到一个子节点,它的节点标记为rt,这时tree[rt].l == a &a...转载 2019-07-26 07:37:23 · 372 阅读 · 0 评论 -
最长上升子序列的一点看法(守得云开见月明) OpenJ_Bailian - 2757
题目链接:https://vjudge.net/problem/OpenJ_Bailian-2757 关于思路:其实我也不明白:为啥将子问题拆成 “前k个数字的最长子序列” ,就是有后效性的。这个题的正确思路是:“求以a[k]为结尾的子序列”,可能乍一看,这两个思路都是一样的,因为第二个思路容易理解成:拿出来前 k 个数字,然后从这里面找出来 一个上升子序列,但这样理解是错误的:第二种思路应该理...原创 2019-08-04 09:02:50 · 136 阅读 · 0 评论 -
“字符型减'0'可以得到整数型”的原因分析
看看这个篇百度文库的文章吧。 https://wenku.baidu.com/view/a6bdc2130812a21614791711cc7931b764ce7b57.html原创 2019-07-28 08:33:43 · 315 阅读 · 0 评论