首页 > TAG信息列表 > 2872

【SSOJ 2872: 「一本通 5.4 例 1」骑士】题解

题目 在 \(n×n\) 的棋盘上放 \(k\) 个国王,国王可攻击相邻的 \(8\) 个格子,求使它们无法互相攻击的方案总数。 对于全部数据,\(1≤n≤10,0≤k≤n^2\) 思路 方法一:爆搜 方法二:状压dp 每行很大,不可能开个十几维数组,怎么办? 把每行压成一个二进制! 设 \(dp(i, j, x)\) 表示第 \(i\) 行放

AcWing 2872. 子串分值和

原题链接 考察:思维 思路:         和CF817D一样的思路,考虑单点对答案的贡献.这题没必要统计左右边界.只需要记录上一个与当前字符相同的位置,右边界是字符串最右边.详情见代码 1 #include <iostream> 2 #include <cstring> 3 using namespace std; 4 typedef long lon

2872. 子串分值和

题目链接:https://www.acwing.com/problem/content/2875/ 思路:对于每个字母 只有他在子串中第一个出现的时候才有贡献 所以考虑从1~n枚举 对于每个s[i] 计算出所有包含他的子串,且他是第一个出现的种类字母的子串数量即可 lst[i] 记录的是 i类字母上一次出现的位置, 假设 当前枚举到j