作者:Akvicor

Find them, Catch them

POJ-1703 Find them, Catch them 并查集 数组建两倍于n的长度,分为两段,两段对应位置属于同一个人 D 时: 将第一段的p和第二段的q相互连接,同时第一段的q和第二段的p相互连接,代表 p、q 属于不同帮派。 A 时: 先判断在第一段内 p、q 是否相互连接,如果连接则一

Akvicor 发布于 2019-06-13

小希的迷宫

HDU-1272 小希的迷宫 并查集判断,只要每次连接的 p、q 之前并未相互连接即可 每组数据只能组成一个迷宫 /** * author: Akvicor * created: 2019-06-13 17-17-53 **/ #include <bits/stdc++.h> u

Akvicor 发布于 2019-06-13

How Many Tables

HDU-1213 How Many Tables 使用并查集求出一共有几个集合就可以 /** * author: Akvicor * created: 2019-06-13 16-05-22 **/ #include <bits/stdc++.h> using namespace

Akvicor 发布于 2019-06-13

The Suspects

POJ-1611 The Suspects 并查集板子题 /** * author: Akvicor * created: 2019-06-13 15-21-28 **/ #include <cstdio> #include <cstring> #include <iomanip>

Akvicor 发布于 2019-06-13

直线划分平面

如果一个平面中有n条直线,最多能将平面划分成多少区域。 当1条线时 2个平面 当2条线时 4个平面(交叉1根线等多出2个平面) 当3条线时 7个平面 (交叉2根线等多出3个平面) 当4条线时 11个平面 (交叉3根线等多出4个平面) 其实已经可以递推了,前n项和

Akvicor 发布于 2019-05-31

判断两个线段相交

如何判断两条直线是否相交? 这很容易。平面直线,无非就是两种关系:相交 或 平行。因此,只需判断它们是否平行即可。而直线平行,等价于它们的斜率相等,只需分别计算出它们的斜率,即可做出判断。 但倘若我把“直线”换成“线段”呢——如何判断两条线段是否相交? 这就有些难度了。和 直线 不同,线段 是有固定

Akvicor 发布于 2019-05-29
C

C++输出格式控制

叙述在输出数据时,为简便起见,往往不指定输出的格式,由系统根据数据的类型采取默认的格式,但有时希望数据按指定的格式输出,如要求以十六进制或八进制形式 输出一个 整数,对输出的小数只保留两位小数等。有两种方法可以达到此目的。 使用控制符的方法 使用流对象的有关成员函数 使用控制符的方法 #includ

Akvicor 发布于 2019-05-28

素数判定

所谓素数,是指恰好有两个约数的正整数。 埃氏筛法 区间筛法 Miller-Rabin素性测试 判定单一的一个数是不是素数,素性测试: bool is_prime(int n){ /* 判定一个数是不是素数 ,假设输入的数都是正整数 */ for (int i = 2; i * i <= n

Akvicor 发布于 2019-05-28

线段树

线段树(segment tree),顾名思义, 是用来存放给定区间(segment, or interval)内对应信息的一种数据结构。与树状数组(binary indexed tree)相似,线段树也用来处理数组相应的区间查询(range query)和元素更新(update)操作。与树状数组不同

Akvicor 发布于 2019-05-28
C

Linux/Unix 环境下实现精确计算程序运行的时间

写程序时,程序的运行效率很重要,其往往是评价程序优劣性的直接标准。程序运行效率的最简单方法就是计算程序的运行时间。为了提高程序效率,使用适当的方法对程序的各个部分进行运行时间的计算是很有必要的。 在 Linux/Unix 环境下,计算 C 程序运行时间可以通过以下三个函数来实现: clock()、t

Akvicor 发布于 2019-05-27
上一页 下一页