质因数分解+状态压缩求完全平方数

摘要: 例题https://www.luogu.com.cn/problem/P10724 小性质:完全平方数的质因子出现数量应该为偶数,因此可以用异或去判断是否为偶数 前缀异或和性质: 因为:\(a xor a=0\),而且异或满足交换律。 所以当前的前缀异或\(sxor\)之前出现过,说明中间的那些\( 阅读全文
posted @ 2024-11-26 19:23 TaopiTTT 阅读(7) 评论(0) 推荐(0) 编辑

形如求某一数字的倍数的方案数的题

摘要: 例题:https://ac.nowcoder.com/acm/contest/95928/D 题意简析:在数组中选取两个数 \(a_i ,a_j\),使得两数乘积为495的倍数,同时可以进行一次(仅一次)的操作:使某个\(a_i\)加1,求出最大方案数 思路:通常遇到这种题目,需要对目标数进行质因数 阅读全文
posted @ 2024-11-25 22:00 TaopiTTT 阅读(2) 评论(0) 推荐(0) 编辑

维护带权并查集

摘要: 大概叫这个名字吧 https://atcoder.jp/contests/abc380/tasks/abc380_e #include<bits/stdc++.h> #define endl '\n' #define lowbit(x) (x&-x) using namespace std; typ 阅读全文
posted @ 2024-11-25 21:34 TaopiTTT 阅读(1) 评论(0) 推荐(0) 编辑

从一道很水的题窥探动态规划优化技巧

摘要: 原题:https://www.luogu.com.cn/problem/P1776 这题虽然标绿,但是数据极水,通过解绑优化即可卡着1s时限通过 未优化代码: const int N=1e5+5; int v[N],w[N],m[N]; int dp[N]; void solve(){ int n, 阅读全文
posted @ 2024-11-14 20:49 TaopiTTT 阅读(6) 评论(0) 推荐(0) 编辑

拆环成链+贪心区间覆盖+倍增

摘要: 好题,先插个眼,以后水平上来了再看 https://www.luogu.com.cn/problem/P4155 #include<bits/stdc++.h> #define endl '\n' #define lowbit(x) (x&-x) using namespace std; typed 阅读全文
posted @ 2024-11-12 20:22 TaopiTTT 阅读(2) 评论(0) 推荐(0) 编辑

链式并查集合并(裸板)

摘要: 对于操作:将一段元素合并为同类。 在合并 \([l,r]\) 这一段数的时候,其实有很多数本来就在一个并查集里。我们只需要合并若干个还没有合并的并查集,而不需要从 \(l\) 到 \(r\) 一个一个合并。因为只要合并了这几个并查集,效果等价于把 \([l,r]\) 直接合并了。 实现方法:每次记录 阅读全文
posted @ 2024-11-06 18:51 TaopiTTT 阅读(19) 评论(0) 推荐(0) 编辑

链式并查集合并+维护区间和

摘要: 用于解决区间合并查询问题 https://ac.nowcoder.com/acm/contest/93847/E #include<bits/stdc++.h> #define endl '\n' #define int long long #define lowbit(x) (x&-x) usin 阅读全文
posted @ 2024-11-04 20:15 TaopiTTT 阅读(3) 评论(0) 推荐(0) 编辑

bitset使用样例

摘要: bitset可将01字符串转换为01数组,快速进行位运算等操作 bitset<int>(string) //将01字符串转换为01数组 例题 https://ac.nowcoder.com/acm/contest/92972/D #include<bits/stdc++.h> #define end 阅读全文
posted @ 2024-10-28 21:03 TaopiTTT 阅读(4) 评论(0) 推荐(0) 编辑

Tarjan模板

摘要: 模板题在此 https://ac.nowcoder.com/acm/contest/86639/B /* tarjan:求强联通分量,本题中运用该算法实现重新构图并toposort */ #include<bits/stdc++.h> #define IOS ios::sync_with_stdio 阅读全文
posted @ 2024-10-28 16:10 TaopiTTT 阅读(3) 评论(0) 推荐(0) 编辑

set.erase()立大功

摘要: set.erase(int x)可以将x删除,利用这个特性,可以做到一次性删除 https://atcoder.jp/contests/abc370/tasks/abc370_d #include<bits/stdc++.h> #define endl '\n' #define int long l 阅读全文
posted @ 2024-10-17 21:46 TaopiTTT 阅读(7) 评论(0) 推荐(0) 编辑