每日练习

· · 个人记录

#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

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