随笔分类 -  算法

摘要:该学习笔记为2026.2.23至2026.3.1在信友队集训所学算法的笔记,每种算法抽取一道题写题解。 由于是给自己看的题解,所以证明过程基本都略了,而且可能不太严谨,慎用。 1.决策单调性优化\(dp\) P4767 [IOI2000] 邮局 加强版 决策单调性优化大多数用于区间拆分或区间合并 但 阅读全文
posted @ 2026-02-27 09:53 u_uICLMFu_uX 阅读(5) 评论(0) 推荐(0)
摘要:模版 @echo off :go data.exe > in.txt u.exe < in.txt > out.txt std.exe < in.txt > ans.txt fc out.txt ans.txt if not errorlevel 1 goto go pause 阅读全文
posted @ 2025-08-05 08:26 u_uICLMFu_uX 阅读(23) 评论(0) 推荐(0)
摘要:例题:洛谷P4716 算法流程详见oi.wiki 自己感觉比较好的一篇题解 讲讲自己不太明白的地方 1.代码40行和42行的判断条件 for(u=i;u!=r&&top[u]!=i&&!id[u];u=fa[u]) top[u]=i; 和 if(u!=r&&!id[u]) { id[u]=++cnt 阅读全文
posted @ 2025-02-02 14:47 u_uICLMFu_uX 阅读(39) 评论(0) 推荐(0)
摘要:卡时 背景 有的时候,我们的搜索会搜很很很很很久,会\(TLE\)。\(TLE\)的分数\(=0\),但是如果你在即将\(TLE\)时输出了当前最优解,分数即可\(\geqslant 0\)。那么这是就需要卡时。 什么是卡时 卡时,顾名思义,卡时间,就是我们要用一个东西记录当前的时间,如果快要超时了 阅读全文
posted @ 2024-10-06 20:11 u_uICLMFu_uX 阅读(161) 评论(0) 推荐(0)
摘要:1.线性筛 求\(n\)以内所有的质数。 vs[1] = 1; for(int i = 2;i <= n;++ i){ if(!vs[i]) p[++tot] = i; for(int j = 1;j <= tot&&i*p[j] <= n;++ j){ vs[i*p[j]] = 1; if(i%p 阅读全文
posted @ 2024-07-24 09:12 u_uICLMFu_uX 阅读(33) 评论(0) 推荐(0)
摘要:需要注意的几个问题 1.修改查询操作判断完全不含不能用小于等于或大于等于,不能加等于。 2.懒标记的数组照样要开\(4\)倍。 阅读全文
posted @ 2024-07-10 09:53 u_uICLMFu_uX 阅读(34) 评论(0) 推荐(0)
摘要:引言:__int128不能用\(cin\)\(cout\)或\(scanf\)\(printf\)。 快读 思想:把每一个字符读入,组成数字。 int read(){ int x = 0,y = 1;//x代表那个数的绝对值,y代表符号 char ch = getchar(); while(ch < 阅读全文
posted @ 2024-06-12 21:21 u_uICLMFu_uX 阅读(556) 评论(0) 推荐(0)
摘要:思路 大体是多个联通块,枚举每一个点,如果所在联通块已经搜过,不在搜,如果没搜过,搜联通块。 题目 AcWing1097 AcWing1098 AcWing1106 阅读全文
posted @ 2024-05-08 20:28 u_uICLMFu_uX 阅读(25) 评论(0) 推荐(0)