-
游
…
-
SEJ-Strongbox
…
-
H-number
…
-
线性筛素数
…
-
欧拉函数
…
-
合唱队形
12345678910111213141516171819202122232425262728293031323334353637383940#include<cstdio>#include<iostream>using namespace std;int m,n;int f[9999],f2[9999],h[9999]; int maxn=-9999;int main() …
-
乘积最大
简单的搜索12345678910111213141516171819202122232425262728293031#include<cstdio>#include<iostream>using namespace std;int k;int s[1999][1999],a[9999];int tot=-999;int m,n;int dfs(int x,int k,int …
-
导弹拦截
求一个最长上升子序列,一个最大下降子序列,输出就OK了,写了个dfs没过12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364#include<cstdio>#include<iostream> …
-
导弹拦截
普通的求一个最长上升子序列,一个最大下降子序列,输出就OK了,是n^2的复杂度而这样就过不了300000的点了所以我们就用二分查找的办法来优化,因为输入的复杂度无法优化,所以复杂度是nlogn最长上升子序列上升思路:有一个low数组,low[i]是长度为i的最长子序列的最小值维护一个上升序列,如果加入的数>low[len],最长子序列就可以更新了,如果小于等于,则把正好大于他的一个数改为他。 …
-
方格取数or传纸条
用简单的搜索,之前听了从清北写的,一直没写博客,现在补上这两个题实际上是一样的,传纸条虽然有一个是倒着传,其实和正着传是一样的,所以是一样的就是用一个四维数组,记下两个点的坐标,两个点都可以向上或向下走,所以可以转移到四种情况,就是我下面分的四种还可以用动归动态转移方程是dp[x][y][x2][y2]=max(dp[x][y-1][x2][y2-1],dp[x-1][y][x2][y2-1],d …