子希
子希
全部文章
分类
ACM动态规划(4)
ACM花里胡哨(1)
c++(4)
Dijkstra(5)
javafx开发(1)
java学习(1)
oj几何(1)
oj贪心(7)
oj递归(5)
stl练习题(6)
动态规划(2)
单调栈(4)
图论 最小生成树(6)
图论-网络流(1)
图论最短路(8)
图论(杂)(5)
字典树(2)
字符串(8)
并查集(14)
思维题(23)
数据结构实现(2)
数据结构实验(2)
数论(1)
暴力(1)
暴力搜索(26)
有趣的数学题(1)
未归档(2)
树状数组(6)
模拟(3)
每日一题(1)
离散数学实验(5)
算法设计与分析题库(15)
线段树(10)
网络比赛(6)
题解(43)
归档
标签
去牛客网
登录
/
注册
子希的博客
TA的专栏
46篇文章
0人订阅
算法周周练
8篇文章
637人学习
codeforces题解
10篇文章
606人学习
牛客日常竞赛
15篇文章
763人学习
牛客每日一题
13篇文章
755人学习
全部文章
(共232篇)
Perfect Security(01Trie)
来自专栏
题目大意:给你两个序列a,b,要你从b中找一个排列,使得bi oxr ai 最小,并且字典序最小。思路:先把要排列的b插入字典树中去,然后枚举a,一个一个去贪心的找最小值就行了。每次找的都是最小的xor值就保证了字典序最小。因为每个数只能被找一次,所以这个题难度在于,从字典树找最小异或值,并且每个数...
2020-10-29
5
470
Vitya and Strange Lesson(01Trie)
来自专栏
题目大意:给你一个长度为n的序列,和m个操作,每个操作包含两部分:1)对序列(a1,a2,...,an) ^ x2)找出序列的。思路:如果按照题目要求去做,我们需要对字典树有修改,查询的操作。但是字典树好像没修改操作。(应该是我不会修改)。但是异或满足结合律,即 (a1,a2,a3,a4,..,an...
2020-10-29
4
552
奶牛异或(01trie)
来自专栏
思路:一边插入前缀异或值,一边查询之前插入的哪个数可以与当前数组成最大异或值,这样就变成了两个异或最大值问题了,不过还要求一下区间,对于插入的每个数,用一个数字记录一下他所在的地方,为什么这样是正确的呢,因为一个数异或自己等于0,前缀异或值存的是[1,i]的异或和,我们在[i,i]再找一个j与他组成...
2020-10-27
6
676
The XOR Largest Pair(01Trie)
来自专栏
随便说说:第一次发现字典树还能这样用,以前都是用字典树求一些最简单的'a'-'z'前缀相同的个数,直到看见这道题。。。。才发现数据结构用好了是真的可以无敌。。。 思路:暴力枚举两个数肯定是超时,那么我们希望有这样一种操作,我们枚举每个数,枚举到当前这个数,我们希望能够在一个很快的时间里(可以是或者)...
2020-10-27
5
590
起床困难综合症(bitset+思维)
来自专栏
题目大意:有n个操作(只包含&,|,^),然后要你从0-m选一个数,使得这个数经过n个操作后数值最大。思路:考虑二进制,最后的答案转化为二进制,每一位要么选要么不选,然后我们贪心的从最高位选,能选则选。我们可以用一个全0bitset和全1bitset去经过n次操作,然后从2的最高位开始枚举,...
2020-10-22
3
645
Book of Evil
来自专栏
题目大意:给你一棵树,树上有个特殊点,问有多少点到所有特殊点的距离小于d.思路:又是学习大佬题解的一天我好菜啊先对特殊点求一个树的直径,然后枚举所有点,如果它到直径两端的距离小于等于d,说明这些点满足题目要求。求特殊点的直径,三次DFS即可,先从根求一波最长的特殊点,然后从特殊的再求一波最长的另外一...
2020-10-21
1
442
Quasi Binary(BFS打表+背包DP)
来自专栏
题目大意:给你一个数,要你找个数,使得这个数的和是,并且这些数只能包含。思路:先把的只包含01的数打表出来,这部分BFS即可,可以发现数量并不多刚好255个。然后可以考虑背包dp求出最小的组成的方案,时间复杂度为不会超时。dp[i]:用只包含01的数组成数字i的最小组成数量。转移方程:dp[i] =...
2020-10-20
2
471
对称二叉树(DFS)
来自专栏
思路:先求每个节点的子树的个数,然后暴力枚举每个节点,找到左右子树对称的最多节点个数的就行。判断子树是否对称:先判断左右子树的值是否相同,然后递归判断左子树的左子树和右子树的右子树,和左子树的右子树和右子树的左子树是否相同即可。代码: #include<iostream> #includ...
2020-10-19
1
477
10月14日Garland(DFS+思维)
来自专栏
思路:假设我们要组合出来的数是,并且三个部分都是相同的那么总和就是,那么我们可以找到一种为的情况,即每个点的总和如果不是的倍数那么必然输出,如果是三个倍数如果找不到可以切割的两条边也是,注意到这是一棵树那么切割出来必然是类似于三个联通块,所以我们直接dfs计算以每个节点为子树的总和,如果找到满足答案...
2020-10-15
0
425
牛客小白月赛28
来自专栏
思路:很显然答案是(1-1/(n^m))%mod,因为是除法取模所以是(n^m - 1)*inv(n^m)即可。这题卡常,如果快速幂用两次必超时,用一次就可以过。代码: #include<iostream> #include<vector> #include<map&g...
暴力
2020-09-21
4
562
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页