01 2019 档案
摘要:题目大意就是给n个数,分2组,求2组和之差最小。 这题我一开始写的dfs结果t了,后面看了题解说是0背包变形才恍然大悟。第一种解法:先把n个数的和sum求出来,要使得2组数和之差尽可能小,必定是要使得一组逼...
阅读全文
摘要:题目大意就是给n个数,分2组,求2组和之差最小。 这题我一开始写的dfs结果t了,后面看了题解说是0背包变形才恍然大悟。第一种解法:先把n个数的和sum求出来,要使得2组数和之差尽可能小,必定是要使得一组逼...
阅读全文
摘要:题意就是给你一个l和r,要你求一个长度为n的序列有多少种,该序列要满足序列和%3==0. 定义dp[i][j]为处理到第i个数,前i个数之和模3为j的方案数,设l到r模3为0,1,2的数个数分别为a,b,c...
阅读全文
摘要:题意就是给你一个l和r,要你求一个长度为n的序列有多少种,该序列要满足序列和%3==0. 定义dp[i][j]为处理到第i个数,前i个数之和模3为j的方案数,设l到r模3为0,1,2的数个数分别为a,b,c...
阅读全文
摘要:题意就是让你找一条1到n的路径使得路径上点的异或和最大。 这里定义了f[i]表示为1到达n,耐久度为i是否可行,先判断p[1]是否是>p[n]的,否则的话无解,是的话先给f[p[1]^p[n]]=1,表示这...
阅读全文
摘要:题意就是让你找一条1到n的路径使得路径上点的异或和最大。 这里定义了f[i]表示为1到达n,耐久度为i是否可行,先判断p[1]是否是>p[n]的,否则的话无解,是的话先给f[p[1]^p[n]]=1,表示这...
阅读全文
摘要:题意就是给一棵树,然后让你求最大的路经异或和是多少,一条路径的异或和是该路径上的边对应的边权的异或和。 因为^具有自反性,即a^a=0,所以我们只需要dfs处理出根节点到每个点的路径的异或和dp[i],那么...
阅读全文
摘要:题意就是给一棵树,然后让你求最大的路经异或和是多少,一条路径的异或和是该路径上的边对应的边权的异或和。 因为^具有自反性,即a^a=0,所以我们只需要dfs处理出根节点到每个点的路径的异或和dp[i],那么...
阅读全文
摘要:题意就是给一个集合,然后在集合里找到3个数,满足max (si+sj)⊕sk。 枚举i和j,然后把si,sj从字典树里删除,然后再在字典树里找与(si+sj)异或最大的数,取最大值,最后还要还原删除的数。删...
阅读全文
摘要:题意就是给一个集合,然后在集合里找到3个数,满足max (si+sj)⊕sk。 枚举i和j,然后把si,sj从字典树里删除,然后再在字典树里找与(si+sj)异或最大的数,取最大值,最后还要还原删除的数。删...
阅读全文
摘要:模板题题意就是给一个集合s,一个数,在集合里找到与该数异或值最大的数是多少#includeusing namespace std;const int maxn=1e5+5;struct node{ int ...
阅读全文
摘要:模板题题意就是给一个集合s,一个数,在集合里找到与该数异或值最大的数是多少#includeusing namespace std;const int maxn=1e5+5;struct node{ int ...
阅读全文
摘要:题目大意就是给一个长度为n括号序列,然后问你有几个位置,你将该位置的括号反转之后,这个括号序列可以变成合法的括号序列。合法的括号序列定义就是 1.括号序列里左右括号数量相等 2.对于i位置对应的前缀里左括号数量>...
阅读全文
摘要:题目大意就是给一个长度为n括号序列,然后问你有几个位置,你将该位置的括号反转之后,这个括号序列可以变成合法的括号序列。合法的括号序列定义就是 1.括号序列里左右括号数量相等 2.对于i位置对应的前缀里左括号数量>...
阅读全文