![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
日常水题
泠楠子
想写一点能让自己记住的东西
展开
-
开关问题 - 异或方程组
再看当前开关的状态与结果的状态是否一致,一致为0,说明掌控这个开关的开关门的异或值为0,不一致则为1,说明掌控这个开关的开关门的异或值为1。可以由此建立异或方程组,每一行代表一个开关,第i行第j列如果为1代表第i个开关受第j个开关掌控,为0代表不受第j个开关掌控。高斯消元后看剩余行的个数也就是自由元的个数,每有一个0 = 0, 答案数乘2。我们可以找每一个开关由哪些开关掌控,每一个开关的值设为动过为1,没动过为0。原创 2023-10-18 19:36:36 · 111 阅读 · 0 评论 -
J. Not Another Path Query Problem
①A > V V的第i位为0时,A的这一位为1,前面与V相同,后面都为0(后面的每一位值其实都可以任意,但如果1多的话后面删边会删的很多,漏掉不少情况,1的数量保持最少可以囊括更多情况,做到不重不漏)然后保留某些边,余下的这些边s, 满足s & A = A,也就是A中为1的s也为1,这样的边才能保留下来。我们用并查集判断联通,复杂度为O(m * 62)判断u、v之间有无“所有边权相与”>=V的路径。原创 2023-10-16 20:31:30 · 282 阅读 · 0 评论 -
B. Building Company
可以将每次奖励存到队列中去,每次奖励使某种员工增加时,就看这种员工可能参加的剩余的项目中有没有能减少限制的。给每一个项目加上若干个限制,每有一种员工达到要求,限制就减一,限制为0时就收获这个项目的奖励。可以用若干个优先队列每一种员工可能会参与到的所有项目,从小到大排序。原创 2023-10-15 19:54:36 · 105 阅读 · 0 评论 -
1310. 数三角形
对于每一种选法,左下角看作第一个点,右上角看作第二个点两点中间的点数就是选法个数,即gcd(a, b) - 1。当共线的斜率大于0时枚举共线的长和宽,设为a、b,则这条线左下角的选法有(n+1-a)*(m+1-b)种。(设横坐标差的绝对值为x, 纵坐标差的绝对值为y )思路:先算出选三个点的所有情况,再减去三点共线的情况。共线的斜率为0时特判。原创 2023-10-11 19:19:48 · 76 阅读 · 0 评论 -
反素数
2、3、5、7、11、13、17、19、23、29这些,还有每个质因子的指数一定大于等于下一个质因子的指数,这样可以保证约数最多的时候数字尽可能小。最大的反素数也就是约数个数最多的数中最小的那个数,可以考虑分解质因子形式。爆搜9个质因子,复杂度不会算,但实测dfs只会跑几千次。原创 2023-10-04 15:47:00 · 89 阅读 · 0 评论 -
阶乘分解质因数
枚举n范围内的质数即可。原创 2023-10-02 20:52:21 · 77 阅读 · 0 评论 -
质数距离 - 如何在较合理的时间复杂度内求2e9范围内的质数
2.在start计算过程中和j+的过程中很容易爆int,注意这部分开ll。3.求大于等于l的第一个p的倍数:(l + p - 1) / p * p。1.对于每次筛最少要从primes[i] * 2开始,不能筛到质数。求l、r之间的指数,范围在2e9,但l、r的差值不大,在1恶范围内。内的质数,然后拿这个指数去筛[l, r]范围内的即可。原创 2023-10-02 19:16:16 · 144 阅读 · 0 评论 -
W、X、Y
从前往后便利,每到一个数就找前面有无能与它配对的数,如果有就组成一对,最后能产生的对儿数就是答案。思路大概就是这样,对儿与对儿之间的那些数随便归到那一对儿里去就行,确保每个数都有一个归属就行。s(x)是若干y(x)的叠加,其中一个y(x)有转折点,在对应位置上s(x)也会有转折点。这样就可以保证差值不会重复,因为现在a数组是非递增的,b数组是递增的。一个非递增的数组减一个递增的数组,想当然新的数组不会有重复的元素了。不等于180度的角的个数就是求转折点的个数。解法不唯一,这是我提供的其中一种。原创 2023-10-01 17:37:30 · 89 阅读 · 0 评论 -
军训场KL
假如hp为100,先雷击再空洞后hp为55,先空洞再雷击后hp为50,前者是[(hp - 10) / 2] + 10 = [hp / 2] + 5,后者是[hp / 2] + 10 - 10 = [hp / 2], 可以看出后者伤害更高。假设k为1e8的话,根据求和公式可以得出(1 + 1e8) / 2 * 1e8 大约在5e16左右,比1e14要大,所以这题纯暴力也是可以过的。(1,12,123,...,123..k)看一眼数据范围,在10的14次方以内,可以计算一下可不可以用暴力做法,原创 2023-09-18 22:06:37 · 67 阅读 · 0 评论 -
176. 装满的油箱 图 - 拆点
有 N 个城市(编号 0、1…N−1)和 M 条道路,构成一张无向图。在每个城市里边都有一个加油站,不同的加油站的单位油价不一样。现在你需要回答不超过 100 个问题,在每个问题中,请计算出一架油箱容量为 C 的车子,从起点城市 S 开到终点城市 E 至少要花多少油钱?假定车子初始时油箱是空的。原创 2023-09-07 16:43:18 · 114 阅读 · 0 评论 -
P1217 [USACO1.5] 回文质数 Prime Palindromes
写一个程序来找出范围 $[a,b] (5 \le a < b \le 100,000,000)$(一亿)间的所有回文质数。因为 $151$ 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 $151$ 是回文质数。线性筛1e8时间复杂度刚好能过,存primes时最好静态开点,直接开一个vector的话会MLE。提示 1: 找出所有的回文数再判断它们是不是质数(素数).第一行输入两个正整数 $a$ 和 $b$。输出一个回文质数的列表,一行一个。### 样例输入 #1。### 样例输出 #1。原创 2023-08-17 22:04:58 · 1469 阅读 · 0 评论 -
Codeforces Round 892 (Div. 2) D. Andrey and Escape from Capygrad - 区间合并
其实只要把l和b当成一个区间就好了,r和a是无效的信息,然后进行区间合并。原创 2023-08-14 22:26:36 · 154 阅读 · 0 评论 -
Educational Codeforces Round 110 (Rated for Div. 2) C. Unstable String
w[i]记录第i个位置能往前找的最大合法长度,pos数组记录每个连续问号串中第一个问号的位置。dp写法:f[i][j]表示第i位,当前位为j,能往前找的最大的合法长度。原创 2023-08-13 18:17:37 · 115 阅读 · 0 评论 -
Educational Codeforces Round 62 (Rated for Div. 2) C. Playlist
然后想最多只能选k个的限制,可以这样想,每次用到的b只能用已选到的最小的值,那可以把每个b都枚举一遍,然后每一次选时长最长的,且b大于等于当前的b的那k个不就好了吗,时间复杂度也才O(n),然后考虑怎么才能每次快速地选到最大的,这时候就可以考虑优先队列了,每次排序都是logn的复杂度,nlogn,完美。一开始肯定要排个序,b相同时t大的在前边,不同时b大的在前面。原创 2023-08-13 18:34:32 · 165 阅读 · 0 评论 -
得不到的爱情 - 塞瓦维斯特定理
塞瓦维斯特定理,如果a、b互质,那么ax + by = c,使这个式子不成立的c的最大解为a * b - a - b。原创 2023-08-12 22:18:32 · 104 阅读 · 0 评论 -
Sum Equals Xor
a + b = a ^ b就意味着a和b的二进制表示中不会有一位同时为1,所以可以从a + b的和入手,如果a + b = 0的话a + b只有一种情况,a + b = 1的话,a + b就有两种情况,a + b = 101的话,就有四种情况,所以我们可以发现情况数是2的j次方(j是二进制表示中1的个数)。思路:可以把一个数分成若干个2的i次方,比如一个数的二进制表示为1011,则这个数可以分成1000 + 10 + 1,然后求1011的种类数就可以从这三个数的种类数出发,原创 2023-08-12 15:58:29 · 41 阅读 · 0 评论