学习动规/递推(?蒟蒻傻傻搞不清)
以下是今天做的一些题目的回顾
前缀最小/大值:前缀和
魔法石游戏:等比数列(1,2,4,8,16……),回顾STL中set集合迭代器用法(set<int>::iterartor it; for(it = s.begin();it != s.end();it++) cout << *it;)
筛素数: int t = sqrt(n);
for (int i = 1; i <= t; i++)
{
if (a[i] == 1)
for (int j = i * i; j <= n; j += i)
a[j] = 0;
}
二分查找(binary):(此处左开右闭,答案落在闭区间 ) int lft = 0, rgh = n;
while (lft + 1 < rgh)
{
int mid = (lft + rgh) / 2;
if (a[mid] < x) lft = mid;
else rgh = mid;
}
最大子矩阵:二维前缀和 s[i][j] = s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1] + a[i][j];
总结:继承+发展
ps:非常荣幸也非常高兴扩列了许多大佬!