摘要:
思路: 移至iwtwiioi http://www.cnblogs.com/iwtwiioi/p/4986316.html 阅读全文
摘要:
思路: 统计入度&出度 每搜到一个点 阅读全文
摘要:
思路: 把障碍移到对角线 就发现 这是个错位排列问题 用错排公式即可解 s[i]=(s[i-1]+s[i-2])*i 阅读全文
摘要:
思路: 数位DP f[i][j][k]表示走到第i位 开头位j 数字k 出现的次数 $f[i][j][k]+=f[i-1][l][k];$$f[i][j][j]+=base[i]$ calc的时候要有特殊的技巧...(我看题解学会的) 阅读全文
摘要:
思路: 预处理错排 然后C(n,m)*s[n-m-1]就是答案了 特判n-m-1<0 阅读全文
摘要:
思路: 维护两个指针pointer_1和pointer_2 代表用算法一走到的位置 和算法2走到的位置 若 算法一<算法2 数组后面就插入算法一的解 pointer_1++ (记得判重) (这题卡不住heap什么鬼) 阅读全文
摘要:
思路: 把它拆成两半 分别搜一发 两部分分别排好序 用two-pointers扫一遍 就可以了. (读入也要用long long) 阅读全文
摘要:
思路: 状压一下 就完了... f[i]表示选了的集合为i 转移的时候判一判就好了.. 阅读全文
摘要:
思路: 棋盘是个二分图 那就把一个可以走的白点 向所有可以走的黑点连边 跑一个最大匹配 (匹配上了就代表这两个点不能共存) 最大独立集=sum-最大匹配 阅读全文