摘要: "传送门" 首先发现一点,设第$j$列被打掉的砖块个数为$k$,那么第$j+1$列被打掉的砖块个数应该大于等于$k 1$ 那么记$dp "j][i][k]$表示第$j$列取了$i$个,总共取了$k$的最大分数,那么转移就是$dp[j][i][k]=max(dp[j+1][l][k i])+\sum_ 阅读全文
posted @ 2018-11-30 15:22 bztMinamoto 阅读(122) 评论(0) 推荐(0) 编辑
摘要: "传送门" ~~rqy是我们的红太阳没有它我们就会死~~ 可以考虑dp,设$dp[i][j]$表示只包含前$j$个质数的数中,因子个数为$i$的数的最小值是多少,那么有转移方程 $$f[i][j]=min(f[i/k][j 1]\times p_j^{k 1})$$ 这玩意儿肯定是不能高精dp的…… 阅读全文
posted @ 2018-11-30 15:02 bztMinamoto 阅读(156) 评论(0) 推荐(0) 编辑
摘要: "传送门" 首先,不难看出可以给每个集合开一个可并堆,然后乱搞就可以了 主要的问题就是将罪恶值清零和减少罪恶值该怎么搞 罪恶值清零可以直接找到这个节点然后把值变为零,再把它的左右儿子分别并到这个节点所在的根节点的可并堆里 减少罪恶值可以直接把根节点减去这个值,然后把左右儿子重新合并上去就好了 ~~明 阅读全文
posted @ 2018-11-30 14:00 bztMinamoto 阅读(186) 评论(0) 推荐(0) 编辑
摘要: "传送门" 这套题很有意思2333 蠢了……首先先判总共加起来等不等于$n$,不是的话就不行 然后dfs记录$n$不断分下去能分成哪些数,用map记录一下,判断是否所有数都能被分出来就是了 阅读全文
posted @ 2018-11-30 10:24 bztMinamoto 阅读(191) 评论(1) 推荐(0) 编辑
摘要: "传送门" "shadowice大佬" 已经写的非常详细了我就不再写一遍了…… //minamoto include define u unsigned int define fp(i,a,b) for(register int i=a,I=b+1;iI; i) using namespace st 阅读全文
posted @ 2018-11-30 09:45 bztMinamoto 阅读(248) 评论(0) 推荐(0) 编辑
摘要: "传送门" 完全没想到圆方树orz…… 我们先考虑建出这个图的圆方树,如果把方点的权值设为这个点双的大小,圆点的权值为$ 1$,那么起点$s$终点$f$的方案数就是这条路径上的权值总和,这样的话就可以做到$O(n^2)$ 然后考虑用dfs优化,即计算每个点被经过了几次,那么就可以做到$O(n)$了 阅读全文
posted @ 2018-11-30 08:54 bztMinamoto 阅读(187) 评论(0) 推荐(0) 编辑
Live2D