01 2019 档案
摘要:参考博客 时间复杂度对比: Dijkstra: O(n2) Dijkstra + 优先队列(堆优化): O(E+V∗logV) SPFA: O(k∗E) ,k为每个节点进入队列的次数,一般小于等于2,最坏情况为O(V∗E) BellmanFord: O(V∗E) ,可检测负圈 Floyd: O(n3
阅读全文
摘要:优先队列建立小根堆方法1: 优先队列建立小根堆方法2: 重载cmp的方法: 关于vector的 push_back(edge(a,b) ):
阅读全文
摘要:题目 题意: 无向图,给n个城市,n*n条边,每条边都有一个权值 代表修路的代价,其中有k个点有发电站,给出这k个点的编号,要每一个城市都连到发电站,问最小的修路代价。 思路: prim:把发电站之间e[i][j]都设置为0,然后模板套进去就行。 krusl:把所有的发电站都先弄进一个并查集(做法比
阅读全文
摘要:介绍的内容 博客2 题目:欧拉回路 题意: 欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个图,问是否存在欧拉回路? #include<iostream> #include<cstdio> #include <cctype> #include<algorith
阅读全文
摘要:题目链接 思路: 如果n=3。 3->1,2(孤立) ,那么正向拓扑,应该是2 3 1,因为1要比2先出来,所以这种不满足。 逆向: 1->3,2 。此时若优先级从大到小,则2 1 3,逆向输入就是3 1 2 。
阅读全文
摘要:#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define ll long long #define mem(a,x) memset(a,x,sizeof(a)...
阅读全文
摘要:题目链接 题意: m个查询,每个查询输入a b,表示 顶点a b之间涂色。 规定只能涂颜色0 或者颜色 1,一个节点相连的边 必须涂成相同的颜色。 问 ,输入m组 a b之后,会不会犯规。 思路: 判断 a b 所在的环 边的数量 是奇还是偶。 奇数就不能,偶数就能。 用并查集: 找到他们公共的祖先
阅读全文
摘要:题目链接 题意: 小Hi的学校总共有N名学生,编号1-N。学校刚刚进行了一场全校的古诗文水平测验。 学校没有公布测验的成绩,所以小Hi只能得到一些小道消息,例如X号同学的分数比Y号同学的分数高S分。 小Hi想知道利用这些消息,能不能判断出某两位同学之间的分数高低? 思路: 学生a比学生b的分数高,可
阅读全文
摘要:题目 参考代码 思路: 一个三角形的面积=1/2 absinC,即1/2| a x b | (a b为向量),利用矩阵,算得S=1/2 * abs(x1*y2 - x2*y1) (x1,y1,是向量a的横纵坐标。x2,y2是向量b的横纵坐标)。 证明 由此,三角形面积的两倍 一定是个整数,所以三角形
阅读全文
摘要:题目 题意: 初始给你n个数,通过m个操作, 操作0是使区间范围内的每一个a[i]都变成 根号a[i] ,操作1是查询区间范围内数字的和。 思路: 如果一个节点sum[rt]是1的话,根号1还是1,重复遍历这个节点会大大增加计算次数。n和区间左右端点的范围都 <=1e5,所以一个节点最多遍历不超过1
阅读全文
摘要:题目 题意: 一个长度为n的排列。输入n个数 a[ i ],a[ i ] ∈ [1,n],要求找到长度最小的区间 [ l , r ],满足区间[ l , r ]内的数是连续的,且同时包含 数 x 和 数 y 。 思路: 容易得: 要想得到这个区间,这个区间内必须满足 “最大值 - 最小值 == r
阅读全文
摘要:题目 参考博客地址 题意: n范围[1,8000] , li 和 ri 的范围[0,8000]。 n个操作,每个操作是把 [li , ri]内的点修改成一个颜色c。 n个操作过后,按颜色从小到大 输出每种颜色分别有几块。 1 #include<iostream> 2 #include<cstdio>
阅读全文
摘要:题目 题意: n(n<=10000) 个人依次贴海报,给出每张海报所贴的范围 li,ri(1<=li<=ri<=10000000) 。求出最后还能看见多少张海报。 思路: 由于 li ri 都比较大,所以用离散化压缩一下空间,这里可以把所有的 li ri 都放在一个结构体数组 b[i] 中排序 再离
阅读全文
摘要:题目 题意: 出题人的妹子送了出题人一个手环,这个手环上有 n 个珠子,每个珠子上有一个数。 有一天,出题人和妹子分手了,想把这个手环从两个珠子间切开,并按顺时针顺序展开成一条链。 可以发现,这条链一共有 n 种可能性。求这 n 种可能性的逆序对数之积模 1000000007。 思路: 找出第一个排
阅读全文
摘要:单点修改: 不需要差分 区间修改,单点查询: //参考 假设现在有一个原数组a(假设a[0] = 0),有一个数组d,d[i] = a[i] - a[i-1],那么 a[i] = d[1] + d[2] + .... + d[i] d数组就是差分数组 所以求a[i]就可以用树状数组维护d[i]的前缀
阅读全文

浙公网安备 33010602011771号