![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
第一次暑期集训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 · 479 阅读 · 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 · 95 阅读 · 0 评论 -
分享来自洛谷的一个代码吧,关于并查集的
P1551 亲戚提交22.30k通过11.69k时间限制1.00s内存限制125.00MB提交代码加入收藏题目提供者JOHNKRAM难度普及-历史分数100提交记录查看题解标签查看算法标签相关讨论进入讨论版查看讨论推荐题目查看推荐展开题目背景若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,...转载 2019-08-11 09:14:27 · 378 阅读 · 0 评论 -
经典算法之拓扑排序
传送门#include <iostream> using namespace std;#define N 13int 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 · 120 阅读 · 0 评论 -
继续畅通工程 hdu1879
省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。Input测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( 1< N < 100 );随后的 N(N-1...原创 2019-08-12 15:04:10 · 110 阅读 · 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 · 278 阅读 · 0 评论 -
洛谷做题笔记------杂记
这个笔记会持续更新,然后也不一定是写AC代码,主要是记录别人代码里的发光点。(不知道有没有必要坚持下来)P1055 ISBN号码这个题,暴力读入,秀的一匹,用了scanf的特性,读入指定字符。因此,读入的都是有用的字符。还学到了:字符(char)转数字(int):减去 ‘0’(字符0),或者减去48。...原创 2019-08-17 17:12:22 · 183 阅读 · 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 · 116 阅读 · 0 评论 -
暑期集训学习笔记———对线段树单点修改的看法(我是一只小萌新,啦啦啦啦啦)
其实,单点修改和建树是差不多的,都是用到了递归具有回溯的性质。单点修改,具体而言:先向下找到要修改的叶子节点(不知道有没有不是修改叶子结点的情况),然后用 **PushUp()**函数更新它的父亲结点,爷爷结点(我就想这样叫),曾爷爷结点,。。。。。。一直到开头的结点。由于二叉树的性质,每层只用更新一个结点就够了。感谢,,XYX大佬,和各位学长们为我们这些老鲜肉提供了大部分理论知识。...原创 2019-07-25 10:31:09 · 164 阅读 · 0 评论 -
筛法求素数(快速筛和普通筛)
先插一个链接,这是我觉着关于这一方面,写的比较好的博客https://blog.csdn.net/Dinosoft/article/details/5829550,尤其是这个博主关于普通筛法的优化。插一个知识点:任何合数,都能写成素数的积的形式。比如 6=2*3; 50=2*5*5。根据上面那个博客,我写两点自己想出来的东西:普通筛法:关于为什么:当前剩下的最小的数就是...原创 2019-07-30 14:16:01 · 924 阅读 · 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 · 334 阅读 · 0 评论 -
最长上升子序列的一点看法(守得云开见月明) OpenJ_Bailian - 2757
题目链接:https://vjudge.net/problem/OpenJ_Bailian-2757关于思路:其实我也不明白:为啥将子问题拆成 “前k个数字的最长子序列” ,就是有后效性的。这个题的正确思路是:“求以a[k]为结尾的子序列”,可能乍一看,这两个思路都是一样的,因为第二个思路容易理解成:拿出来前 k 个数字,然后从这里面找出来 一个上升子序列,但这样理解是错误的:第二种思路应该理...原创 2019-08-04 09:02:50 · 119 阅读 · 0 评论 -
“字符型减'0'可以得到整数型”的原因分析
看看这个篇百度文库的文章吧。https://wenku.baidu.com/view/a6bdc2130812a21614791711cc7931b764ce7b57.html原创 2019-07-28 08:33:43 · 297 阅读 · 0 评论