摘要:
普通的dp写法 f[i] = max{ f[j] +1 } j<i &&a[i]<=a[j] 复杂度 O(n^2) 单调队列写法 O(nlogn) int n,a[N],f[N],st[N],len; int cmp(int x,int y){ return x>y; } void solve(){ 阅读全文
posted @ 2022-10-19 19:34
towboat
阅读(44)
评论(0)
推荐(0)
摘要:
四方定理是众所周知的:任意一个正整数n,可以分解为不超过四个整数的平方和 给定的正整数n,统计它能分解的方案总数。注意:25=4^2+3^2 与 3^2+4^2 相同 背包,把每个平方数作为一个物品 直接用背包会重复累加,此时要利用这个定理,f[4][j] #include <iostream> # 阅读全文
posted @ 2022-10-19 16:30
towboat
阅读(21)
评论(0)
推荐(0)
摘要:
一些不同类型的物品,每种物品有可取个数的上限( a[i] ) 从中挑m个,求方案个数 这是背包问题? 考虑前 i 种物品,f[i][j] 表示方案个数, j 表示第i个物品取多少 f[i][j]+= f[i-1][j-k] f[0][0]=1 #include <iostream> using na 阅读全文
posted @ 2022-10-19 15:06
towboat
阅读(14)
评论(0)
推荐(0)
摘要:
n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没有传出去的那个同学就是败者,要给大家表演一个节目。 有多少种不同的传球方法可以使得从小蛮手里开始传的球,传了m次以后,又 阅读全文
posted @ 2022-10-19 13:32
towboat
阅读(9)
评论(0)
推荐(0)
摘要:
1~M 挑数字(可重复), 能组成多少长度为n的合法序列? ( n,k =2000 合法序列: a[i] %a[i-1]==0 f[i][j] += f[i-1][k] , j%k==0 #include <iostream> using namespace std; const int N=200 阅读全文
posted @ 2022-10-19 12:26
towboat
阅读(21)
评论(0)
推荐(0)