08 2022 档案

摘要:题目链接 代码 #include <iostream> #include <cstdio> using namespace std; const int N = 1000010; int n; char str[N]; int tr[N][26],cnt[N],idx; int fail[N],q[ 阅读全文
posted @ 2022-08-31 13:22 incra 阅读(20) 评论(0) 推荐(0) 编辑
摘要:思路 注意重复字符串可以重叠!!!比如 aba 重复两次就可以是 ababa 。 代码 #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N = 1000010; i 阅读全文
posted @ 2022-08-30 17:21 incra 阅读(13) 评论(0) 推荐(0) 编辑
摘要:题目链接 思路 我们对所有字符串建 Trie 树,求答案时,直接在插入新的字符串的时候,把答案更新一下就好了。 代码 #include <iostream> #include <cstdio> #include <cstring> using namespace std; typedef pai 阅读全文
posted @ 2022-08-30 14:58 incra 阅读(24) 评论(0) 推荐(0) 编辑
摘要:题目链接 题意 有若干个天平,每个天平是否满足力矩原则,即 wl×dl=wr×dr 。 思路 读入有些麻烦,还得递归,注意细节问题。 我们建树,把每个天平抽象成节点,为了好算我们把一个点的左边或右边是一个子天平,那么这个天平(不是子天平!)的 wl 是负数,并且子 阅读全文
posted @ 2022-08-19 19:07 incra 阅读(16) 评论(0) 推荐(0) 编辑
摘要:题目链接 思路 看一眼题目数据,就知道肯定不能 bruteforce ,所以我们要考虑优化。 首先不难发现,所有逆序对的数量 = k 组里的逆序对数量 + 跨组的逆序对数量,第一个很好求,暴力求出逆序对数量,再乘上 k 就好了,我们重点看第二个怎么求: 首先,任意两个组的逆序对 阅读全文
posted @ 2022-08-19 10:11 incra 阅读(33) 评论(0) 推荐(0) 编辑
摘要:题目链接 题意 如果有一个点 b ,从 1 (我喜欢从 1 开始编号)到 b 的路径(不一定是最短路径)必须要经过点 a ,那么答案数组 ans[a][b]=Y ,否则 ans[a][b]=N 输出 ans 数组。 思路 如果把一个点 a 删掉后有几个原来 阅读全文
posted @ 2022-08-17 10:57 incra 阅读(24) 评论(0) 推荐(0) 编辑
摘要:原题链接 思路 把最短路换成是否可达即可 代码 #include <iostream> #include <cstdio> #include <cstring> #include <unordered_map> #include <vector> using namespace std; const 阅读全文
posted @ 2022-08-15 09:50 incra 阅读(11) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示