上一页 1 ··· 46 47 48 49 50 51 52 53 54 ··· 75 下一页
摘要: 原题链接 考察:矩阵快速幂 思路: 矩阵快速幂的入门题,记住模板. 1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 #include <cstdio> 5 using namespace std; 6 typed 阅读全文
posted @ 2021-03-01 20:49 acmloser 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:计数dp 错误思路: 以最后一个数来划分...f[i][j]表示选i个数,总能量为j的方案数 f[i][j] +=f[i-1][j-k](0<=k<=j)k表示最后一个数是k. 此思路错在会计重. 正确思路: 按照集合中最小的数是0和>0来划分.f[i][j]表示和为i,数个数为j的 阅读全文
posted @ 2021-03-01 16:26 acmloser 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:IDA* or 状压+背包dp 思路一: n个物品包,每个都可以用二进制表示,f[i][j]表示前i个物品组成j状态最少需要多少包,状态转移方程为 int t = min(f[i-1][j|candy[i]],f[i-1][j]+1); f[i][j|candy[i]] = min( 阅读全文
posted @ 2021-03-01 12:28 acmloser 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:搜索 思路: 这道题不需要找根,从头到尾搜索即可.因为最外层括号一定是最外层的递归,搜里层括号相当于搜索叶子结点.当搜索到|说明左结点已经搜索完毕,应当搜索右节点,而右节点也想当一个二叉树.直接dfs即可.这里的dfs不需要变量,因为不需要回溯. 1 #include <iostre 阅读全文
posted @ 2021-02-28 21:36 acmloser 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:最大公约数 思路: 设原序列为a1,a2,a3...an,公比为(q/p)t,题目给的样例是在a数组中随机抽取一些数,形成新序列 b1,b2,b3...bn,可以发现b2/b1 = (q/p)k1 b3/b1 = (q/p)k2 ,显而易见k1与k2都是t的倍数,对k求最大公约数就是 阅读全文
posted @ 2021-02-28 19:28 acmloser 阅读(70) 评论(0) 推荐(1) 编辑
摘要: 原题链接 考察:dfs+约数 错误思路: 倍数法求出所有约数,N要开到1e9必然MLE且TLE 正确思路: 观察约数之和的式子 s = (1+p1+p12+p13+..)*(1+p2+p22+p23+...) ,要满足能够这种性质的数在1~2E9内较少.再继续观察,假设p全为2,(1+2)*(1+2 阅读全文
posted @ 2021-02-27 23:21 acmloser 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:唯一分解定理 思路: 很容易想到最长公共子序列,dp只能求出长度,不能求出个数.我们模拟样例,100的约数 2 4 5 10 20 25 50 100. 最长是4, 2 4 20 100也可以是5 10 20 100可以发现开始的数必然是素数,而序列可以表示成 2,2*2,2*2*5 阅读全文
posted @ 2021-02-27 19:30 acmloser 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:贪心 这道题和均分纸牌有点像,但是做法不完全一样 思路: 参考均分纸牌问题,考虑操作对前缀和数组的影响,可以发现每交换一次sum[i-1]变成了sum[i],而sum[i]变成了sum[i-1](0<i<n),根据取值范围可以发现i=0与i=n是不能交换的,所以我们只能分配sum[i 阅读全文
posted @ 2021-02-27 16:15 acmloser 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:贪心 错误思路一: 排序,加上n+1个较大值,减去m个较小值. m个减号不一定是全部用来减,可以利用两个减号a-(b-c)转化为a-b+c,如果a-b+c>a+b-c此思路就错误. 正确思路: 如果要凑最大值,那么需要()max-()min.但是这样的表达式看起来只需要一个+,如果我 阅读全文
posted @ 2021-02-27 02:04 acmloser 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:贪心 错误思路: 将两个负数作为一个数纳入新数组排序,从大选到小. 这个思路错在如果存在两个负数的积比一个正数大,而两个正数的积又比负数积大,这样会答案错误. 思路: 分类讨论 k为偶数,正数和负数都必须两个两个选,这里运用到了双指针算法.此时选出的答案一定为正数. k为奇数,此时负 阅读全文
posted @ 2021-02-26 23:23 acmloser 阅读(58) 评论(0) 推荐(0) 编辑
上一页 1 ··· 46 47 48 49 50 51 52 53 54 ··· 75 下一页