Loading

随笔分类 -  思维题

摘要:给定n条链,每条链中有若干个数字 选出其中的m条,从每条中选出一个数,问能够得到的最小的最大差值。 如果能选,每次都贪心的选择差最小的一对。那么不妨对原先的数都排一遍序放到容器里。然后相当于必须找到m个不同的才能选取。 由于每次枚举L都是最多一个m发生变化。所以复杂度是没问题的。 vector<pi 阅读全文
posted @ 2020-08-08 19:07 MQFLLY 阅读(157) 评论(0) 推荐(0)
摘要:给定n * n矩阵C ij(1 <= i,j <= n),我们要找到0或1的n * n矩阵X ij(1 <= i,j <= n)。 此外,X ij满足以下条件: 1.X 12 + X 13 + ... X 1n = 1 2.X 1n + X 2n + ... X n-1n = 1 3.对于每个i(1 阅读全文
posted @ 2020-08-07 11:11 MQFLLY 阅读(80) 评论(0) 推荐(0)
摘要:B签到成功 打表出c的存在没什么作用。 容易找出规律 答案就是c的某个次数,这个次数就是n的质因子的幂次和。 因此只需线性筛出幂次和,再快速幂就好了 #pragma warning(disable:4996) #include<iostream> #include<algorithm> #inclu 阅读全文
posted @ 2020-07-20 19:25 MQFLLY 阅读(186) 评论(0) 推荐(0)
摘要:给定一个n表示a的质因数个数。 接下来n行给出质数及其指数。 按要求输出其因数,满足如下要求: 当前数是前一个数通过乘一个质数或者除以一个质数得到。 反正就是构造嘛。对于每一个i,必然要遍历前面的所有情况。其实就是升升降降。 vector<ll> ans; vector<ll> p(16); vec 阅读全文
posted @ 2020-07-18 10:04 MQFLLY 阅读(192) 评论(0) 推荐(0)
摘要:给定20个桶的状态,可以翻转桶把相邻的状态变换。问最少的变换次数。 此类问题通常有以下解决方案 1.暴力枚举 2.高斯消元 + 暴力枚举 3.找规律性质 这题和上一题POJ1830 很相似,可以用高斯消元异或方程组枚举自由元做。 但是比较麻烦; 注意到每个桶至多翻转一次。 从右往左的第一个1必然要通 阅读全文
posted @ 2020-07-17 10:46 MQFLLY 阅读(177) 评论(0) 推荐(0)
摘要:java可做 先用C++打出表发现如下规律: 若n对应答案为x ,则下一个不同答案对应的n为x+1 不同答案的递推关系有 f[n]=4*f[n-1]-f[n-2] ,因此可java秒 import java.util.Scanner; import java.math.BigInteger; pub 阅读全文
posted @ 2020-03-17 10:41 MQFLLY 阅读(119) 评论(0) 推荐(0)
摘要:给出一DAG,求最小多少个控制点,能够使得控制图中所有点,控制点可以控制本身和他直接能到的点 题解:只需按拓扑序控制每个点即可 #include<iostream> #include<string> #include<unordered_map> #include<cmath> #include<c 阅读全文
posted @ 2020-03-09 20:47 MQFLLY 阅读(158) 评论(0) 推荐(0)