摘要: 要统计差值为k的数对(i,j)的数量,这种感觉类似于卷积,我们把和差放到幂次中体现,就可以用NTT做到O(ailogai) 其中,对于差值为0的特殊情况,不仅需要减去数自匹配的n种情况,还要除以2 NTT要预处理step+倍增法优化,否则会TLE 将游戏每轮的操作抽象为数学函数 点击查看代码 #in 阅读全文
posted @ 2024-07-31 20:08 D06 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 考场思路是,离线处理询问,从大到小枚举bi,对每个ai维护已被统计的询问区间 由于数据随机,我们似乎可以感受到已统计询问区间扩张的次数不会太大,于是自然想到有没有办法精准扩张呢?很遗憾,难做 另一个思路是,区间扩张的情况往往集中出现在最大的几个bi 于是引入分块的“大段维护,局部朴素”思想,我们进行 阅读全文
posted @ 2024-07-31 11:46 D06 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 素数的密度约为ln(n),这就是说,1~n中素数的个数约为\(\frac {n}{ln(n)}\) 观察你写出来的DP转移式,可以发现检查时没有必要DP,直接贪心就好了 由于数据随机,最后十分钟“乱搞”两次成功过题,开心~ 点击查看代码 #include <bits/stdc++.h> using 阅读全文
posted @ 2024-07-31 10:58 D06 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 本质不同的合法日期至多只有366个,我们可以先生成所有合法日期,再采用和维护名字一样的方法统计 点击查看代码 #include <bits/stdc++.h> #define pii pair<int,int> using namespace std; int f[1000005],cnt[1000 阅读全文
posted @ 2024-07-31 10:46 D06 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 建立【正向目标】——1号队伍所在的组至多一支队伍的实力不小于L,实力极差超过D 点击查看代码 #include <bits/stdc++.h> using namespace std; struct t1 { int a,id; }t[100005]; bool cmp(t1 a,t1 b) { r 阅读全文
posted @ 2024-07-31 10:39 D06 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 枚举每个数属于哪组,有\(\frac {4^{18}}{24}\)种情况,我们无法承受这样的时间复杂度 但是我们可以用\(2^n\)的时间枚举每个数属于左边两组还是右边两组 由于分组是无序的,我们强制规定a1属于左边两组,时间复杂度降至\(2^{n-1}\) 在每个大组中,用01背包统计合法状态,这 阅读全文
posted @ 2024-07-31 10:33 D06 阅读(2) 评论(0) 推荐(0) 编辑