1. 于 继续阅读

  2. SEJ-Strongbox

    于 继续阅读

  3. H-number

    于 继续阅读

  4. 线性筛素数

    于 继续阅读

  5. 欧拉函数

    于 继续阅读

  6. 合唱队形

    12345678910111213141516171819202122232425262728293031323334353637383940#include<cstdio>#include<iostream>using namespace std;int m,n;int f[9999],f2[9999],h[9999]; int maxn=-9999;int main() …

    于  dp 继续阅读

  7. 乘积最大

    简单的搜索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 …

    于  dp 继续阅读

  8. 导弹拦截

    求一个最长上升子序列,一个最大下降子序列,输出就OK了,写了个dfs没过12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364#include<cstdio>#include<iostream&gt …

    于  dp 继续阅读

  9. 导弹拦截

    普通的求一个最长上升子序列,一个最大下降子序列,输出就OK了,是n^2的复杂度而这样就过不了300000的点了所以我们就用二分查找的办法来优化,因为输入的复杂度无法优化,所以复杂度是nlogn最长上升子序列上升思路:有一个low数组,low[i]是长度为i的最长子序列的最小值维护一个上升序列,如果加入的数>low[len],最长子序列就可以更新了,如果小于等于,则把正好大于他的一个数改为他。 …

    于  dp 继续阅读

  10. 方格取数or传纸条

    用简单的搜索,之前听了从清北写的,一直没写博客,现在补上这两个题实际上是一样的,传纸条虽然有一个是倒着传,其实和正着传是一样的,所以是一样的就是用一个四维数组,记下两个点的坐标,两个点都可以向上或向下走,所以可以转移到四种情况,就是我下面分的四种还可以用动归动态转移方程是dp[x][y][x2][y2]=max(dp[x][y-1][x2][y2-1],dp[x-1][y][x2][y2-1],d …

    于  dp 继续阅读