1. 搜索

    华容道70设两个变量,记在一个结构体里在进行爆搜,就是一个普通的bfs,只会简单的爆搜,正解是,三个bfs,先处理出白板到起始的最短距离,在处理出移动的代价,在跑一边最短路;12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 …

    于  bfsdfs 继续阅读

  2. day4

    alien飞船降落问题矩阵前缀和+枚举求出前缀和,暴力枚举每一个子矩阵的和,是0就可以降落注意有正方形飞船,长度不等于点12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#include<cstdio>#include<iostream&gt …

    于  2016~2017 继续阅读

  3. 部落冲突

    这题弄k各部落就是把它合并成k个集合所以按最小的边合并的解一定是最优的这就借用了k算法的思想12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#include<cstdio>#include<iostream>#include<c …

    于  最小生成树并查集 继续阅读

  4. cicada

    正解还不会用暴力搜索弄到了90.。。bfs与dfs都能过90思路:先弄一个f数组记得是这个点的最短路,就是破败指针在爆搜剪枝bfs12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758#include<cstdio>#inclu …

    于  搜索 继续阅读

  5. trigger

    裸地kmp123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#include<cstdio>#include<iostream>#include<cstring>using namespace std;#define for(i …

    于  kmp模拟 继续阅读

  6. k'th number

    有n个数,共有2^n个子集,一个子集的值看做其所有数的和。求这2^n个子集中第K大的子集。n<=35。首先我们可以通过meet in the middle的做法,将其分成两部分。二分答案后用two point统计满足条件的方案总数。与k进行比较即可。123456789101112131415161718192021222324252627282930313233343536373839404 …

    于  折半搜索+twopoint+二分 继续阅读

  7. twopoint

    利用两个指针,其中一个从前往后扫a数组,另一个从后往前扫b数组,用可能成为最大值的数来更新答案。优化为o(n)123456789101112131415161718192021222324252627282930313233343536#include<cstdio>#include<iostream>using namespace std;#define for(i,n) …

    于  技巧 继续阅读

  8. lowbit

    这个题先把它搞成二进制可以发现异或出来在lowbit找的是最后一位为一的数的价值,而异或出来只有两种情况,1或0,所以一开始把所有书分成两份,同分之间没有价值,只有异份之间有价值,且价值为2^t,就是最后一位不同的价值,找出同分异分之间有多少组合,就是多少个2^t一步一步分,最后直到不能分了像这样1 2 3 4 5 001010011100101 001 010011 100101 322 …

    于  分治 继续阅读

  9. 啦啦啦啦啦

    stick木棍(stick) 思路:先把奇数个的削掉,因为奇数个的不可能组成长方形,削掉有可能然后削完的用贪心,最大的组成正方形一定最大。123456789101112131415161718192021222324252627#include<cstdio>#include<iostream>#include<algorithm>using namespace …

    于  爆搜题 继续阅读

  10. 送分题

    用暴力,枚举一个修改的,算最大子段和,o(n)2的复杂度12345678910111213141516171819202122232425262728293031#include<cstdio>#include<iostream>using namespace std;int a[99999];int s;int n,p; int main(){ freopen( …

    于  最大子段和与模拟暴力 继续阅读