- 只有逆着光,才能看见光
- 追光的人,终会光芒万丈
- 努力和后悔,哪个更痛苦?
- 最怕碌碌无为,又不思进取
- 再糟糕的过去,那也只是曾经
- 总有人会成功,为什么不是你?
- 你颓废的时候多少人用来拼命
- 你没有变强,因为你一直很舒服
- 只要脚步不停,就能到达目的地
- 最痛苦的不是失败,而是我本可以
- 所谓万丈深渊下去,也是前程万里
- 我不想我将来后悔,是因为我不够努力
- 今天的不放弃,是为了将来的华丽登场
- 天赋能让一个人闪闪发光,但努力也可以
- 吃不了学习上的苦,以后生活会加倍还你
- 时间不会为谁停留,所以请你也不要停下脚步
- 做别人做不到的事情,才能过上别人想过的生活
- 伤病可以成为你放弃的一个借口,但真正能够阻止你的只有你自己
- 拼命跑未必能跑在最前面,但是最低要求,不允许自己掉队
模板
奇思妙想
搜索
- 分步bfs
- dp+优先队列
- 优先队列 :直线前进
- 全排列+bfs:多宝箱路径最短
- 排序去重:n不重复的拆成m份
- 奇偶剪枝
- IDA:单调性 逆序剪枝
- 记忆化搜索:洛谷模板
- 三维数组标记+bfs:第三维数较小暗示三维数组
- 注意return前的消除标记
- 多源bfs
- 组合多堆人的最小集合
- 大数据dfs
数状数组
- 左边比他小的数的数量,右边比他大的数的数量:其中的离散化仅有数组任意两个数都互不相等时使用
- 二维数状数组
模拟
暴力
STL
priority_queue
set
- set+lower_bound:寻找右边次小元素的下标
crope
bitset
map
思维
- 数据分类
- 循环+分类
- 判断冠军
- 转化为求不降子序列的长度:数组变成严格单调递增修改的最少数字
- 数组中上升子序列中处去首尾元素后序列的长度:第i个数左边比他小的数的数量*右边比他大的数的数量的和。
- 区间最小值*最大值:答案只存在相邻的两个数
- 数推+反解方程:考虑了进位
- 逆向思维
贪心
尺取
倍增
- 倍增:查询区间内单调递增子序列的长度
二分
数据结构
线段树
主席树
树状数组
树链剖分
LCT
单调栈
扫描线
- 洛谷模板:矩阵并的面积
LCA
点分治
前缀和
分治
数论
动态规划
树形dp
前缀和优化dp
数位dp
状压dp
字符串
KMP
经典问题
时间优化
cdq分治
- 详解博客:三维cdq分治
几何
推公式
图论
- 双连通分量
- 拓扑排序:给出一系列的优先级,输出一个顺序
- SLF优化的spfa算法
- 环路径的输出
- 最短路径的条数/路径输出/最大节点和
- dijkstra
- 换路径输出
数组模拟链表
其他
细节
- 考虑空间复杂度
- 空间开小了导致答案错误
- 字母l和数字1
- 最小值赋小了:最小值应该赋值-1,答案可能是0
- 变量类型定义错误:double类型数据比较大小,ma定义成了int
- (1<<n)-1 没加括号
- 压缩题目数据的范围
- 考虑特殊情况
- 没空格分隔的数字以字符串的形式读入
- 离线处理也算一种时间优化
- 分类讨论简化题目思路
- 求和数据溢出
比赛
蓝桥
其他
- 将excel数据导入mysql
#include<bits/stdc++.h>
using namespace std;
#define ll long long
string s[1000009];
int main()
{
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
int cn=0;
while(cin>>s[++cn]);
string t="INSERT INTO BmobTask VALUES(";
for(int i=1;i<=cn;i+=20)
{
string st=t+'\"'+s[i]+'\"';
for(int j=i+1;j<i+20;++j)
st+=",\""+s[j]+'\"';
st+=");";
cout<<st<<endl;
}
}