![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
搜索
Strezia
这里介绍不了我
展开
-
CF888G Xor-MST 01字典树&dfs*
linkdfs,mst,01trie,2300题解写的很清楚,也是看了题解才会做。。const int maxn = 2e5 + 10;int n;int a[maxn];int nxt[maxn*30][2], cnt = 1;void insert(int x) { int cur = 1; for(int i = 30; i >= 0; i--) { if(!nxt[cur][(x>>i)&1]) nxt[cur][(x>>i)&1]原创 2022-03-01 17:51:37 · 76 阅读 · 0 评论 -
CF1602D. Frog Traveler 1900 ——bfs
CF1602D题意:从井底距离地面处跳到地面。当距离地面时,可以选择的一个数且向上跳,然后在处休息。然而,当在距离地面时休息,会下滑。问最少需要跳跃的次数,及每次跳跃后(下滑之前)的位置。思路:bfs注意此题和普通bfs不同的地方在于一般的bfs都可以对某个点 遍历所有它能到达的点但这道题若如此做会t,考虑到假如我们从i跳到j,滑落到k,如果k已经被访问过了,那么就没有了访问j的意义。所以我们用vis[]数组表示k是否被访问过,用set表示所有能到达的j,...原创 2021-10-26 20:07:03 · 124 阅读 · 0 评论 -
CF1574D. The Strongest Build 2000 —— 优先队列维护bfs + map*
D题意:给你n个数组,每个数组中取一个数字,要求输出最后和最大的取法。给出m个排序,这m种排序不能取思路:暴搜1.把这m种排序分别映射到map:map<vector<int>, bool> mp, use; mp[i] = 1表示这种取法不能用,use[i] = 1表示这种取法已经被遍历过。2.v[i]表示当前第i组中取的数的index-1(从0开始)3.priority_queue<pair<int, vector<int>..原创 2021-10-17 17:18:44 · 84 阅读 · 0 评论 -
Acwing175 电路维修 —— 双端队列bfs
电路维修模型:如果在一张图上(有向图和无向图),边权只可能是1或0,现在我们想从某个节点(假设为s)到另一个节点(假设为t),怎样才能使得路径上的权值和最大?思路:经典双端队列bfs,若边为0则从队首加入,边为1则队尾加入时间复杂度O(n).tip.该题存图时需注意// Decline is inevitable, romance will last forever.// Acwing175 电路维修//https://www.luogu.com.cn/problem/P1原创 2021-09-25 10:56:49 · 89 阅读 · 0 评论