每日练习
#include <windows.h>
HHOOK h;
LRESULT CALLBACK p(int c, WPARAM w, LPARAM l) {
if (c >= 0 && ((KBDLLHOOKSTRUCT*)l)->vkCode == VK_TAB) {
if (GetAsyncKeyState(VK_CONTROL) & 0x8000)
return CallNextHookEx(h,c,w,l);
if (w == WM_KEYDOWN) {
keybd_event(VK_RIGHT, 0, 0, 0);
return 1;
} else if (w == WM_KEYUP) {
keybd_event(VK_RIGHT, 0, 2, 0);
return 1;
}
}
return CallNextHookEx(h,c,w,l);
}
int main() {
h = SetWindowsHookEx(WH_KEYBOARD_LL,p,0,0);
MSG m;
while (GetMessage(&m,0,0,0)) {
TranslateMessage(&m);
DispatchMessage(&m);
}
}
882453
-
[x] ST表
-
[x] 单调队列
-
[x] 线段树
-
[ ] 线段树二分 gg
-
[x] 树状数组
-
[x] TABOUT
-
[x] 二维偏序
-
[x] 可持久化线段树
-
[x] 分块
-
[x] 莫队
-
[x] 01trie
-
[x] 平衡树
-
[x] 树剖
-
[x] 扫描线
-
[x] 根号分治
-
[ ] 整体二分
-
[ ] CDQ分治
-
[x] 线性筛素数
-
[x] 快速幂
-
[x] 逆元
-
[x] exgcd
-
[x] 矩阵加速
-
[x] 字符串哈希
-
[x] KMP
-
[x] trie
-
[ ] manacher
-
[ ] 拓扑排序
-
[x] 单源最短路径
-
[x] 最近公共祖先(LCA)
-
[x] 负环
-
[ ] 基环树
-
[x] 缩点
-
[x] 割点&边
-
[x] 点&边双连通分量
-
[ ] 树的直径
-
[ ] 树的重心
-
[ ] 差分约束
-
[ ] 树上启发式合并
-
[x] 背包dp
-
[x] 树形dp
-
[x] 换根dp
-
[ ] 数位dp
-
[x] 序列dp(最长公共子序列,LIS
-
[x] 区间dp
-
[ ] 期望dp
-
[ ] 单调队列优化
-
仔细!读题
-
看数据范围(0,MAX
-
静态察错
-
4841
9.24
正难则反
P5749 [IOI 2019] 排列鞋子
在思考如何实践上面没有花较多的时间思考 这种题一般实现都很优美,如果你的思路不优美那大概是错的 简化自己的思路,试图用更简单的话来描述你的思路
vector<int> v;
v.back(), v.pop_back();
9.25
看数据范围猜时间复杂度
P1650 田忌赛马
我真的糖丸了
9.26
P1248 加工生产调度
这种sort贪心只要你的cmp别人想不到就可能拿到一项不到的分数。
9.27
AT_agc018_c [AGC018C] Coins
三个想两个做法,2n个想2个做法,2^n想0/1做法,也可以想能否转化
P3045 [USACO12FEB] Cow Coupons
在n里面选p个ary.a,q个ary.b使得sum ary.a + sum ary.b max 按a - b 排序,bi 为前i个中选p个a的max,di 为后n-i+1中选q个b的max,big(ans, b[i] + d[i + 1]);
9.29
CF1656B Subtract Operation
结论题可以直接用a1,a2来模拟样例
sort到底是啥 a<b, 返回true
- 贪心
- 容斥 线段树
序列DP 树形DP 区间DP
-
哈希
-
二分
-
树论(LCA 基环树 二分图 扫描线 折半搜索 树剖 构造 tarjan