只有博主才能阅读该文。 阅读全文
posted @ 2020-08-04 21:21 shuitiangong 阅读(0) 评论(0) 推荐(0) 编辑
摘要:#字符串 ##Trie const int maxn = 1e6+10; char str[15]; int trie[maxn][26], rec[maxn], num; void insert() { int len = strlen(str), p = 0; for (int i = 0; i 阅读全文
posted @ 2020-07-31 16:00 shuitiangong 阅读(47) 评论(0) 推荐(0) 编辑
摘要:本文主要对从各个平台收集的资料做汇总,如有侵权请私信我。 #综合资料 1.ACM的正确入门方式是什么 2.Acm学习路线 3.算法竞赛资料分享 4.oi wiki 5.vj题单 #题单 1.kuangbin带你飞 2.HDU题目分类 3.POJ入门题目推荐 4.算法竞赛从入门到进阶 5.挑战程序设计 阅读全文
posted @ 2020-05-21 12:23 shuitiangong 阅读(277) 评论(0) 推荐(1) 编辑
摘要:#数论 ##除法取模 除法取模有一个($b$可以不是质数)公式: \(a\div b \mod p = (a\mod (b\times p))\div b\) 证明: \(a\div b = k\times m + x, (x<m)\) 两边同乘$b$可得: \(a = k\times m \tim 阅读全文
posted @ 2020-05-11 08:15 shuitiangong 阅读(90) 评论(0) 推荐(0) 编辑
摘要:题目链接 #解题思路 由于题目中的数都是互不相同的,所以每交换一对数字,序列的逆序数的奇偶性就会改变一次(可以证明序列的奇偶性变化只与交换的这对数的大小关系有关)。 #代码 int arr[maxn], tmp[maxn], n, m; ll cnt; void merge(int l, int r 阅读全文
posted @ 2020-12-23 09:02 shuitiangong 阅读(20) 评论(0) 推荐(0) 编辑
摘要:#A.Bananice 将每一位上的4都单独计算。 个位数上可出现的4的情况为:固定个位数的4,然后个数为其他位上出现的数的总和。eg:42564 >一共有4257(0-4256)个,同理42565-->4257,但是42563-->4256(0-4255)个。 那么将上述情况推广到每一位上: 将其 阅读全文
posted @ 2020-11-22 21:18 shuitiangong 阅读(404) 评论(0) 推荐(0) 编辑
摘要:题目链接 #题目大意 有1~n个电阻,对于$r_i$,如果i能被$d^2$整除,那么它的阻值就是无限大,否则就是i。然后有一个集合,集合$S_i$是所有能整除i的j。找一个集合S,集合中的电阻并联起来的阻值最小。 #解题思路 要想使电阻并联起来阻值最小,那么选的电阻的阻值的倒数要尽量的大,换句话说, 阅读全文
posted @ 2020-11-02 18:20 shuitiangong 阅读(33) 评论(0) 推荐(0) 编辑
摘要:题目链接 #题目大意 现有一棵树,初始所有点都没有染色。有以下操作: 1. 节点x及其所有子孙颜色都变更为k。 2. 要求你回答节点x的颜色。 #解题思路 先跑一个dfs序,每棵子树的根结点一定最先被访问,最后一个叶子结点最后被访问,且中间的结点都属于这棵子树。 #代码 const int maxn 阅读全文
posted @ 2020-11-01 10:16 shuitiangong 阅读(38) 评论(0) 推荐(0) 编辑
摘要:题目链接 #题目大意 略 #解题思路 区间异或,与其他操作不太一样,要考虑标记下传的时候子区间的标记的情况。 #代码 const int maxn = 1e5+10; int n, m; struct Tree { int l, r, sum, lz; } tree[maxn<<2]; inline 阅读全文
posted @ 2020-11-01 09:43 shuitiangong 阅读(43) 评论(0) 推荐(0) 编辑
摘要:题目链接 #题目大意 三种操作,破坏一个点,修复最后被破坏的点,询问包含这个点的连续区间的最大长度。 #解题思路 用线段树维护父节点的前缀最长区间和后缀最长区间。 父节点的前缀最长区间最小等于左二子的最长前缀区间,如果左儿子的最长前缀区间是整个区间,那么父节点的最长前缀区间则还可以加上右二子的最长前 阅读全文
posted @ 2020-10-17 21:27 shuitiangong 阅读(56) 评论(0) 推荐(0) 编辑
摘要:题目链接 #题目大意 给一个环,然后求每次修改后的最大子段和,最大子段和不能包含整个子段。 #解题思路 以往解决环形问题都是通过将两个相同的数组拼接起来实现的,但是这个题如果这么写的话要考虑区间长度问题,很麻烦。 有一个巧妙的方法,在维护区间最大子段和的同时,再维护一个区间最小子段和,那么考虑两个数 阅读全文
posted @ 2020-10-16 20:31 shuitiangong 阅读(43) 评论(0) 推荐(0) 编辑
摘要:题目链接 #题目大意 有n个人,依次给出这n个人进入队列时前面有多少人p[i],和它的权值v[i],求最终队列的权值序列。 #解题思路 用线段树维护一个数组,最初全是1,代表每个位置有没有人。从后往前推,最后一个人的位置肯定是他最终的位置,然后把他删去,那么消去了最后一个人的影响,倒数第二个人的位置 阅读全文
posted @ 2020-10-15 07:39 shuitiangong 阅读(45) 评论(0) 推荐(0) 编辑
摘要:题目链接 #题目大意 一个数字可以移动到i+arr[i]和i-arri,问每个位置移动到与当前的值奇偶性不同的位置需要的次数。 #解题思路 ;一个数字可以移动到i+arr[i]和i-arr[i],设$d[]$表示能到达奇偶性不同的点需要的最小次数,如果这个数一次就可以,那么d[i]=1, 否则,假设 阅读全文
posted @ 2020-10-11 21:31 shuitiangong 阅读(42) 评论(0) 推荐(0) 编辑
摘要:题目链接 #题目大意 略 #解题思路 对于相等的关系很好维护,关键是对于不想等的关系。如果$x_i$与$x_j$不相等,那么$x_i$所在集合中的所有点都是和$x_j$所在集合中的所有点不相等的。 把不相等的$x_i$与$x_j$,所在集合的代表结点建一条边,如果$x_i$所在集合要和其他集合合并, 阅读全文
posted @ 2020-10-11 16:45 shuitiangong 阅读(55) 评论(0) 推荐(0) 编辑