上一页 1 ··· 12 13 14 15 16
摘要: 赛后独立思考了不算长的一段时间,然后就通过了;赛时没看这道题有些可惜,算是个教训吧 发现两个性质之后,这道题就非常简单了: 1.只有初始位置的贪吃蛇才可能会对最优路径产生影响 2.令贪吃蛇长度-1的操作等价于它停在原地不动 点击查看代码 #include <bits/stdc++.h> using 阅读全文
posted @ 2024-01-24 19:35 D06 阅读(230) 评论(0) 推荐(1) 编辑
摘要: 字符串多模匹配算法——AC自动机 构建不含“叶节点”的Trie图 如果一个节点在环上,那么以它为起点搜索一定能找到这个环 调试程序:栈的输出是倒序的 点击查看代码 #include <bits/stdc++.h> using namespace std; int t[30005][2],tot,fa 阅读全文
posted @ 2024-01-24 16:19 D06 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 可持久化线段树 维护由任意一段区间得到的权值线段树 线段树的深度:\(ceil(log_{2}(n))+1\) 由于询问的特殊性,我们可以直接在线段树上二分,而不需要另写查询函数,从而节省掉1个log的复杂度 点击查看代码 #include <bits/stdc++.h> using namespa 阅读全文
posted @ 2024-01-23 17:05 D06 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 概率算法 每次随机取两个数,有四分之一的概率两个数都在答案中 但我赛后想到并在代码中实现的算法并不是这样的…… 对了,取模真的、真的非常慢 点击查看代码 #include <bits/stdc++.h> using namespace std; int h[1000005]; int a[5005] 阅读全文
posted @ 2024-01-22 21:09 D06 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 链式前向星存图 点击查看代码 #include <bits/stdc++.h> using namespace std; int h[100005],nx[100005],t[100005],cnt; int ans[100005]; int read1() { char cc=getchar(); 阅读全文
posted @ 2024-01-22 17:04 D06 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 基环树上的环形DP 两次DP,一次断开,一次强制连接 点击查看代码 #include <bits/stdc++.h> using namespace std; vector<int>z[500005]; int n,m,c[1000005]; bool b[2000005],v[1000005]; 阅读全文
posted @ 2024-01-22 15:05 D06 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 基环树的直径 两种情况:不经过环和经过环 找环方法:深度优先遍历+限制回溯 【注】较为简便的方法是记录一条边是否被访问过,但由于本题卡时卡空间,为了节省掉代替成对变换的vector数组,代码中只能将其替换为复杂的逻辑判断 归并环上顺、逆时针两种情况:断环为链再复制一倍 用deque实现单调队列 给环 阅读全文
posted @ 2024-01-21 17:13 D06 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 题目样例似乎提供了一些虚无缥缈的思路,但我们的思维不应当局限于此。 若尝试另辟蹊径,答案便呼之欲出了。 点击查看代码 #include <bits/stdc++.h> using namespace std; int read1() { char cc=getchar(); while(!(cc>= 阅读全文
posted @ 2024-01-21 16:07 D06 阅读(44) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16