摘要: 1001 循环位移 字符串哈希 将a展开*2 对于每个长度为len_a的序列 进行一次hash存储 并将其插入set中 对于b进行一次哈希 对于每个长度为len_a的连续子串进行一次查询 点击查看代码 #include<bits/stdc++.h> using namespace std; // 2 阅读全文
posted @ 2024-07-20 19:47 archer2333 阅读(105) 评论(0) 推荐(0)
摘要: B-MST 对于整个序列进行一次kruskal 对于序列中 如果需要访问的点数小于300 那么将所有的点的边存入序列中进行kruskal 如果大于300 那么直接对于所有的点进行kruskal 点击查看代码 #include<bits/stdc++.h> #define int long long 阅读全文
posted @ 2024-07-20 19:24 archer2333 阅读(7) 评论(0) 推荐(0)
摘要: A-A Bit Common 通过该题的性质可以知道 偶数的关系不影响能够成立的序列 我们只讨论最后一位为1的数 这些数才能对该序列造成影响 又因为对于每个特殊序列中 每位必定有一个0 所以特殊序列的个数为C(n,k)*2((m-1)*(m-n))*(2(m-1)-1)^(n-k) 点击查看代码 # 阅读全文
posted @ 2024-07-19 19:41 archer2333 阅读(34) 评论(0) 推荐(0)
摘要: E-Novice's Mistake 题意为寻找n*a-b=("n"+"n"+...){a个n的字符串-b的长度} 即为"2" ⋅20−18="22222222222222222222"−18=22=2⋅20−18 使用暴力枚举每个n相加的长度和 又因为n<=100 a<=100000 所有答案t的 阅读全文
posted @ 2024-07-12 13:21 archer2333 阅读(236) 评论(0) 推荐(0)
摘要: rank2 还需努力 7 paoxiaomo不爱DP 很简单的一道DP 赛时看错数据范围导致陷入思考误区 其实只用求每个前缀和对应的答案 然后往后合并区间 一但有区间和等于pre[i]那么将该区间加入 并且计算贡献 如果区间和大于pre[i]那么该答案不符合 点击查看代码 #include<bits 阅读全文
posted @ 2024-06-11 18:51 archer2333 阅读(25) 评论(0) 推荐(0)
摘要: 考虑对每个设置为1且唯一 那么我们发现对于所有的状态都是确定且唯一的 那么我们对于每个点假设它为1且为该列唯一 对于除它之外的点的状态进行存储 又由于这个值过于大 我们考虑使用哈希存储 那么出现次数最多的值即为答案 点击查看代码 map<ull,int>cnt; map<ull,pii>pos; v 阅读全文
posted @ 2024-05-29 17:25 archer2333 阅读(28) 评论(0) 推荐(0)
摘要: D-Intersecting Intervals 我们思考如何计算不交的线段数量 首先总的线段如果全部相交 那么线段数应为n*(n-1)/2 那么对于每对r[i]<l[i]都为不交的线段 所以我们需要计算不交的线段数 同时删去自己本身 点击查看代码 #include<bits/stdc++.h> # 阅读全文
posted @ 2024-05-25 22:15 archer2333 阅读(31) 评论(0) 推荐(0)
摘要: A-Chess For Three 因为序列满足a<=b<=c的情况 显然通过得分可以观察出得分总和必定为偶数 否则不成立 求的是最大平局数 那么直接假设全部都是平局 这时候发现如果c过大会导致后面的局数不是平局 那么只用把c>a+b的情况取出 而此时平均数为a+b 点击查看代码 #include< 阅读全文
posted @ 2024-05-18 14:22 archer2333 阅读(216) 评论(0) 推荐(0)
摘要: 学了一天前端装修了一下园子 (~▽)~ 阅读全文
posted @ 2024-05-06 15:50 archer2333 阅读(18) 评论(0) 推荐(0)
摘要: 因为邀请赛被分配到了数论手的位置 接下来一段时间更新数论专辑 阅读全文
posted @ 2024-05-05 16:22 archer2333 阅读(20) 评论(0) 推荐(0)