摘要: #define sandom signed #define fre(x, y) freopen(#x ".in", "r", stdin), freopen(#y ".out", "w", stdout); #include <iostream> #include <cstdio> #include 阅读全文
posted @ 2024-01-26 11:09 sandom 阅读(19) 评论(0) 推荐(1) 编辑
摘要: ![image](https://img2022.cnblogs.com/blog/2694474/202210/2694474-20221025162251346-360243880.png) 阅读全文
posted @ 2022-10-25 16:23 sandom 阅读(115) 评论(8) 推荐(4) 编辑
摘要: 生成数据(data) inline int random(int n) { return 1ll * rand() * rand() % n + 1; } inline int get(int l, int r) { return 1ll * rand() * rand() % (r - l + 1 阅读全文
posted @ 2022-07-02 22:08 sandom 阅读(54) 评论(4) 推荐(4) 编辑
摘要: ## 引入 ???+ note "入门例题" 假设班里有 10 个学生喜欢数学,15 个学生喜欢语文,21 个学生喜欢编程,班里至少喜欢一门学科的有多少个学生呢? 是 10+15+21=46 个吗?不是的,因为有些学生可能同时喜欢数学和语文,或者语文和编程,甚至还有可能三者都喜欢。 阅读全文
posted @ 2023-07-20 17:06 sandom 阅读(68) 评论(2) 推荐(5) 编辑
摘要: T1.将军棋 其实挺水的一道题,但是出题人丧心病狂强迫分类讨论,故意增加码量。 A 挨着查直到队伍不同 BC 记录每种颜色最后出现的位置,枚举是哪一种颜色。对于 B 枚举两个,如果都不是,那就是第三个;对于 C 手动二分。 D、100 先判断是否为新颜色,若不是再二分。 二分显 阅读全文
posted @ 2022-11-11 18:54 sandom 阅读(41) 评论(3) 推荐(1) 编辑
摘要: T1.zzy的金牌 比较妙的计数 dp。一个显然的定义 dp[i][j] 表示给前 i 个盒子分配了 j 个金牌的情况。但是发现会有重复情况出现,按照常人的思路,对于一个集合肯定是有序状态才容易判断,因为无序肉眼很难观察。所以不妨将 a 排序,并且强制让操作完之后的数组也是有序的 阅读全文
posted @ 2022-11-09 14:13 sandom 阅读(38) 评论(6) 推荐(0) 编辑
摘要: T1.极源流体 正解是LCT维护最小生成树,显然我是不会的。 性质一:向上和向下等价,向左和向右等价,所以可以只考虑向右下方扩展。 性质二:向下和向右操作顺序可以交换,那么可以直接枚举向下扩展了几次,向右扩展了几次,而不用考虑顺序。 做法:直接枚举向下和向右分别扩展了xy次,那么就让初始黑 阅读全文
posted @ 2022-11-08 06:17 sandom 阅读(48) 评论(1) 推荐(1) 编辑
摘要: rt 阅读全文
posted @ 2022-11-05 16:10 sandom 阅读(72) 评论(5) 推荐(7) 编辑
摘要: T1.语言 签到题。可以直接O(n)预处理出来前缀和,但我用了线段树,所以多了一个log的复杂度。 题意转化:找到一个位置为动词,上一个位置为名词,句子末尾是名词,其他地方是名词或形容词,bool数组随便弄一下就出来了。 代码 #define sandom signed #define fr 阅读全文
posted @ 2022-11-03 07:44 sandom 阅读(48) 评论(2) 推荐(1) 编辑
摘要: KmpTrie的优美结合,相当于在Trie上跑Kmp。 一个重要定义:Fail指针(失配指针),指向其他路径上与该字母相同的节点。当前路径的模式串的后缀与fail指针指向的模式串前缀相同(与kmp类似)。 Fail指针的作用:在对于一个文本串匹配多个模式串时,如果当 阅读全文
posted @ 2022-10-27 19:17 sandom 阅读(38) 评论(1) 推荐(0) 编辑
摘要: struct tree { int kid[10]; }; tree tr[Z]; int tot; bool end[Z]; void insert(char s[], int len)//插入一个字符串 { int rt = 1; for (re i = 1; i <= len; i++) { 阅读全文
posted @ 2022-10-27 19:13 sandom 阅读(52) 评论(1) 推荐(0) 编辑
摘要: 一对相等的真前缀与真后缀的个数(nxt数组) void get_nxt(char s[], int len)//前缀函数 { nxt[1] = 0; for (int i = 2, j = 0; i <= len; ++i) { while (j && s[i] != s[j + 1]) j = 阅读全文
posted @ 2022-10-27 19:13 sandom 阅读(22) 评论(1) 推荐(0) 编辑
点击右上角即可分享
微信分享提示