摘要: 爆搜卡线过 并不知道正解是啥 cpp include include using namespace std; const int N=40; int n,ans,a[N][N],l[N],h[N],c[N]; void dfs(int x) { if(x==n+1) { ans++; return 阅读全文
posted @ 2018-08-05 22:09 lokiii 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 网格图黑白染色,然后能互相攻击到的点之间连边,跑匈牙利算法最大匹配,答案是好点个数 最大匹配(最大独立集) 注意pao的时候只从一种颜色的格子统计即可 cpp include include using namespace std; const int N=205,dx[]={2,2, 2, 2, 阅读全文
posted @ 2018-08-05 21:55 lokiii 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 设n m,答案是\\( C_n^m \\),然后高精就行了 具体做法是先把指数筛出来,然后对每个数因数分解,记录质因子个数,最后被除数减去除数质因子个数,把剩下的质因子乘起来就行了 阅读全文
posted @ 2018-08-05 21:02 lokiii 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 同1801 注意到一行只能放012个炮,我们只需要知道列的状态,不用状压行 所以设f[i][j][k]表示前i行有j列有1个炮,有k列有2个炮的方案数 然后分情况讨论转移就行了 阅读全文
posted @ 2018-08-05 20:17 lokiii 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 设s为前缀和,首先显然的条件是$$ s_{bi} s_{ai 1} =c $$,然后隐含的是$$ s_i s_{i 1} =0 s_i s_{i 1} include include using namespace std; const int N=500005,inf=1e9; int n,s=i 阅读全文
posted @ 2018-08-05 19:48 lokiii 阅读(79) 评论(0) 推荐(0) 编辑