AFO
追踪最近的用户名外显变动记录。
最近的文章、讨论、云剪贴板与社区记录
## 前言 或许故事真的结束了,冬令营应该还是会去的,之后就正式退役了。 ## OI生涯 记得开始学是在初一上吧,当时和舍友一起去的,当时机房还挺热闹,我们只能站在边上听,当时或许根本不会想到这些人中最后只剩下了两个,也想不到我就是其中之一。 一开始学的还是挺痛苦的,C++的语言入门还是相当繁琐枯燥的,第一次新生模拟赛…
对于每组询问,我们先遍历一遍路径串,求出一次完整的循环后 $ x,y $ 坐标的偏移量,记作 $ a,b $ ,同时,我们记录下第一轮循环中所有遍历到的点,记作 $ (X_i,Y_i) $ ,则一个关键点 $ (x_i,y_i) $ 能被遍历到当且仅当存在一个 $ j $ ,满足 $ x_i=X_j+ka,y_i=Y_…
考虑对于一组 $ l,r $ ,若存在一个 $ [l',r']\subsetneq [l,r] $ ,使得 $ f(l,r)=f(l',r') $ ,那么 $ [l,r] $ 肯定不会产生贡献,问题变成了关于支配对的处理。 显然,产生贡献的极短区间的总数可以是 $ O(n^2) $ 的(树为一条链),我们无法得到所有的…
在讨论《评测机配置比官方差能申诉吗》回复:
@[_cbw](luogu://user/1188782) 但是T3在洛谷上用时也在 $ 1.3s $ 左右,ccf上过了。
首先,可以发现树套树是做不了的。 我们发现询问和操作如同矩形,并且操作都在询问之前,可以考虑使用扫描线。 具体的,我们将 $ l_1,l_2,r_1,r_2,x $ 的操作变为在 $ l_1 $ 行处将 $ [l_2,r_2] $ 区间 $ +x $ ,在 $ r_1+1 $ 行处将 $ [l_2,r_2] $ 区间…
由于每次必须将边权减少正整数,所以边权为 $ 0 $ 就不能继续操作了,我们可以先考虑序列中存在 $ 0 $ 的情况。 我们考虑减少边权的策略,首先,如果一个人将一条边减为 $ 0 $ ,那么接下来两个人都不能再往回走了,情况变成了一条链。 进一步地,我们发现接下来每个人都必须将走过的边权减为 $ 0 $ ,否则下一个…
换根dp好题。 可以发现,蓝线所连的 $ 3 $ 个点无非就是两种情况,$ 3 $ 点互为祖先关系和其中两点为兄弟关系,笔者首先写了个错误的 dp ,进一步思考,发现对于第二种情况,假设存在多组,那么我们并不能判定他们之间能否连起来,具体可以参考满二叉树的情况。 那么怎么规避掉第二种情况呢?可以发现,第二种情况只有可能…
二项式反演好题,但难点在于双射的巧妙的构造。 直接求出 $ ans_{i,j} $ 看起来非常困难,我们不妨将恰好转化为钦定,用二项式反演解决。定义一个 $ p_i #include #include int n,mod,f[505][505],s[505][505],ans[505][505],fac[260005]…
作业2-1。 好题,加强了对线段树区间定位的理解。 要快速解决询问,首先要解决的就是区间定位的问题,显然我们不能像正常线段树直接定位出所有需要的点,因为广义线段树的查询操作时间复杂度无法得到保证,得到所有点是不现实的,于是我们考虑观察这些点的排布特点。 参考题面中的例子,我们尝试找出 $ [2,3],[4,4] $ 对…
作业1-1。 看到中位数,同时又是最小值最大,很容易想到经典套路:通过二分答案转化为 $ 01 $ 序列上的问题。 考虑一段 $ 01 $ 序列,若要一次将其全部变为 $ 1 $ ,那么序列中 $ 1 $ 的数量必须大于 $ 0 $ 的数量,我们将 $ 0 $ 视为 $ -1 $ ,条件就转化为了区间和为正数。 至于…
非常好的题,使我的码量爆炸。 ### 题目大意 给定一个 $ 2\times n $ 的网格,有一些位置的颜色已经确定,有 $ c $ 中颜色,求在相邻两格颜色不同的情况下有多少种不同的染色方案。 首先马上可以想到一个 $ O(nc^2) $ 的暴力,观察数据范围可以发现这样做一分都没有。而 $ O(nc) $ 的做法…
rt,一直WA在第31个点,想知道hack数据或者错在哪里。 思路是每次更新成功之后记录一下前缀,最后统一处理一遍路径。 ```cpp #include #include #include int read() { int x = 0, f = 1; char ac = getchar(); while (ac '9'…
Rt,一开始RE以为是数组开小了,然后一直开到4千万还是过不了,后来发现同一份代码每次RE的点都不一样,比如同样开到8百万,一次RE on #8,一次 #12 ,一次 #14 ,不知道哪出了问题。 ```cpp #include #include #include int read(){ int x=0,f=1; ch…
Rt……求调 ```cpp //猫树写法 #include #include int read(){ int x=0,f=1; char ac=getchar(); while(ac '9'){ if(ac=='-') f=-1; ac=getchar(); } while(ac>='0'&&ac >1; cat[u]…
在讨论《春测T2 95pts求调》回复:
开__int128过了(虽然很慢),此贴完结……
WA on #20 ```cpp #include #include #include #include long long read(){ long long x=0,f=1; char ac=getchar(); while(ac '9'){ if(ac=='-') f=-1; ac=getchar(); } wh…
在讨论《洛谷博客提交不了》回复:
解决了,把博客拆成三段……
在讨论《如果你60分》回复:
正中下怀,感谢大佬
WA on #4,6,7,8,9 qwq 调到后面思路都乱了,找不出问题。 ```cpp #include #include #include #include inline int read(){ int x=0,f=1; char ac=getchar(); wh…
在讨论《疑问》回复:
@[liangbowen](/user/367488) 确证了,是数组初始化的问题
为什么这玩意儿本地编译运行失败,提交可以过……(可能有低级失误没注意到) ```cpp #include #include inline int read(){ int x=0,f=1; char ac=getchar(); while(ac '9'){ if(ac=='-') f=-1; ac=getchar();…
在讨论《tarjan爆零求助……》回复:
是我大意了
在讨论《tarjan爆零求助……》回复:
@[SqrtSc](/user/217233) 裂开了,居然没检查快读……
```cpp #include #include #include using namespace std; inline int read(){ int x=0,f=1; char ac=getchar(); while(ac '9'){ x=(x ='0'&&ac v[500005]; void add(int u…
写得有点乱,看不出tarjan哪里错了,40pts。 ```cpp #include #include #include #include using namespace std; inline int read(){ int x=0,f=1; char ac=getchar(); while(ac '9'){ if(…
在讨论《求助FJ-CSP-S初赛分数线》回复:
@[olkieler](/user/466525) 我们也是后天