高斯消元 目录 高斯消元 ACWing207. 球形空间产生器(点击访问) 求解思路 代码 ACWing208. 开关问题(点击访问) 思路 代码 总结 欣赏 线性空间 定义 ACWing209. 装备购买 代码 总结: AcWing210. 异或运算 思路:注意线性空间的推广! DEBUG总结 高斯消元对应的矩阵有两种: 常规的线性方程组 异或操作(不需要乘上一个数再相减,直接异或即可) 概念理解起来不太费力,重点是代码实现. ACWing207. 球形空间产生器(点击访问) 这道题目重点是考…
颓了十天回来做题果然…… 感觉还是很有收获的,这两以前都没学过 bzoj1013: [JSOI2008]球形空间产生器sphere poj1830(upd) 之前做得很烂还被 D飞*2 了..重做一次 对于一个灯,把能把它点亮的其他灯设为1,然后高斯消元. 注意在这里的系数只是一个判断的手段,判断是否受到影响,并不是参与运算的(之前纠结了很久) 用二进制状压判断无解多解比较方便.(之前直接判当前位是不是0直接break错的一逼) #include<cstdio> #include<ios…
Hash的基本知识 字符串hash算法将字符串看成p进制数字,再将结果mod q例如:abcabcdefg 将字母转换位数字(1231234567)=(1*p9+2*p8+3*p7+1*p6+2*p5+3*p4+4*p3+5*p2+6*p1+7*p0)%q=0~q-1经验值 p=131,1331时,冲突最小q取2^64(unsigned long long) 例如abd=(124)131=(1*131^2+2*131^1+4*131^0)=hash("abd")溢出不用管 先预处理出字…
137. 雪花雪花雪花 有N片雪花,每片雪花由六个角组成,每个角都有长度. 第i片雪花六个角的长度从某个角开始顺时针依次记为ai,1,ai,2,-,ai,6. 因为雪花的形状是封闭的环形,所以从任何一个角开始顺时针或逆时针往后记录长度,得到的六元组都代表形状相同的雪花. 例如ai,1,ai,2,-,ai,6和ai,2,ai,3,-,ai,6,ai,1 就是形状相同的雪花. ai,1,ai,2,-,ai,6和ai,6,ai,5,-,ai,1 也是形状相同的雪花. 我们称两片雪花形状相同,当且仅当它…
题目描述 原题连接 Y岛风景美丽宜人,气候温和,物产丰富. Y岛上有N个城市(编号\(1,2,-,N\)),有\(N-1\)条城市间的道路连接着它们. 每一条道路都连接某两个城市. 幸运的是,小可可通过这些道路可以走遍Y岛的所有城市. 神奇的是,乘车经过每条道路所需要的费用都是一样的. 小可可,小卡卡和小YY经常想聚会,每次聚会,他们都会选择一个城市,使得3个人到达这个城市的总费用最小. 由于他们计划中还会有很多次聚会,每次都选择一个地点是很烦人的事情,所以他们决定把这件事情交给你来完成. 他们…
题目描述 原题链接 一群小丑演员,以其出色的柔术表演,可以无限量的钻进同一辆汽车中,而闻名世界. 现在他们想要去公园玩耍,但是他们的经费非常紧缺. 他们将乘车前往公园,为了减少花费,他们决定选择一种合理的乘车方式,可以使得他们去往公园需要的所有汽车行驶的总公里数最少. 为此,他们愿意通过很多人挤在同一辆车的方式,来减少汽车行驶的总花销. 由此,他们可以很多人驾车到某一个兄弟的家里,然后所有人都钻进一辆车里,再继续前进. 公园的停车场能停放的车的数量有限,而且因为公园有入场费,所以一旦一辆车子进入…
放在原来这个地方不太方便,影响阅读体验.为了读者能更好的刷题,另起一篇随笔. 0x00 基本算法 0x01 位运算 [题目][64位整数乘法] 知识点:快速幂思想的灵活运用 [题目][最短Hamilton路径] 知识点: 状压DP.我的题解总是写得不好,大家还是看书吧qwq P2114 [NOI2014]起床困难综合症 知识点:状态压缩 0x02 递推与递归 [题目][费解的开关] 知识点:搜索?递推?模拟? +状压 [题目] 4座塔的Hanoi 知识点:递推 [题目][约数和问题] 知识点:数…
// 快速幂,求a^b mod p int power(int a, int b, int p) { int ans = 1; for (; b; b >>= 1) { if (b & 1) ans = (long long)ans * a % p; a = (long long)a * a % p; } return ans; } // 64位整数乘法的O(log b)算法 long long mul(long long a, long long b, long long p) {…
目录 AcWing895. 最长上升子序列 方法一 方法二 当询问最长子序列是哪些的时候 896. 最长上升子序列 II 思路 O(NlogN)做法:贪心+二分 代码 AcWing\897. 最长公共子序列 思路 代码 AcWing898. 数字三角形 思路 参考资料 AcWing895. 最长上升子序列 方法一 采用从前往后推的方法 #include <bits/stdc++.h> using namespace std; #define N 1006 typedef long long l…
并查集简介 并查集的两类操作: Get 查询任意一个元素是属于哪一个集合. Merge 把两个集合合并在一起. 基本思想:找到代表元. 注意有两种方法: 使用一个固定的值(查询方便,但是在合并的时候需要修改大量的值,比较复杂) 使用树形结构,这样合并的时候可以直接让一个叫另一个 eg. f[root1] = root2 并查集的路径压缩以及按秩合并 路径压缩:在每一次进行合并的时候,顺便更改每一个节点的值.(均摊复杂度:\(O(logN)\)) 按秩合并:每一次查询的均摊复杂度是\(O(logN…