站内搜索

查找文章

CaoXin

欢迎来到我的小站。

  1. ACM Note No.8: Manacher

    马拉车算法可以用于解决最长回文子串的问题 当然也可以通过对下文的回文半径数组P求和,以获得回文子串的总数 #include <bits/stdc++.h> using namespace std; string manacher…

    ACM-ICPC
  2. ACM Note No.7: 数论

    根据十进制的运算性质很容易能写出将十进制转换为数组倒序存储的方法 const int N = 1e4; int s[N + 10]; int toDex(int num){ int digit = 0; while (num…

    ACM-ICPC
  3. ACM Note No.5: BFS

    广度优先搜索常常用于寻找全局最短路,遍历联通块等等,是一种暴力算法 下面是一个广度优先搜索的模板题: 其中可以通过更改dx[]和dy[]数组来更改步进的行为(如马走日字格等) 记得要打上vis[]数组标记访问过的地址不然…

    ACM-ICPC
  4. ACM Note No.4: 二分

    二分具体分为二分查找与二分答案 若题目的答案具有单调性,则可以使用二分答案,思路类似于暴力搜索不过复杂度是O(logN) 当然C++ STL有自带的lowerbound()和upperbound()在有序队列内进行二分查…

    ACM-ICPC
  5. ACM Note No.3: STL

    STL有六大组件 容器(Containers) 算法(Algorithms) 迭代器(Iterators) 仿函数(Functros) 适配器(Adapters) 配置器(Allocators) 在算法竞赛中,主要使用的…

    ACM-ICPC
  6. ACM Note No.1: Misc

    #include <bits/stdc++.h> using namespace std; void slove(){ } int main(){ ios::syncwithstdio(0), cin.tie(0), cout…

    ACM-ICPC
  7. ACM Note No.2: 前缀和与差分

    差分常用于对区间上的值快速进行批量增减 构造差分数组: diff[i] = arr[i] - arr[i - 1]; 对区间[l, r]增加x: diff[l] += x; diff[r + 1] -= x; 还原(对差…

    ACM-ICPC