随笔分类 -  ATCODER

摘要:按照题解1的解法 include include include include include include include include include include include include include include include include include using 阅读全文
posted @ 2018-09-12 21:10 basasuya 阅读(196) 评论(0) 推荐(0)
摘要:二分答案 然后前缀和+树状数组来判断这个答案是否大于等于数 如果我们对于一个查询,如果小于这个数令为1,大于这个数领为 1 将所有前缀和放在树状数组中,就可以查询所有sum_{l} include include include include include include include inc 阅读全文
posted @ 2018-09-02 00:06 basasuya 阅读(293) 评论(0) 推荐(0)
摘要:一列中有两个连续的元素,那么下一列只能选择选择正好相反的填色方案(因为连续的地方填色方案已经确定,其他地方也就确定了) 我们现将高度进行离散化到Has数组中,然后定义dp数组 dp[i][j] 表示前i列的方案数,其中第i列中最小的连续元素(k 1, k)处在[ Has[j 1] + 1, Has[ 阅读全文
posted @ 2018-07-26 18:21 basasuya 阅读(350) 评论(0) 推荐(0)
摘要:一道很好的dp题 dp[K]存的是 i满足二进制1属于K二进制1位置 最大的两个Ai 这样dp[K]统计的两个数肯定满足(i | j) include include include include include using namespace std; typedef long long ll; 阅读全文
posted @ 2018-07-07 14:40 basasuya 阅读(228) 评论(0) 推荐(0)
摘要:"传送门" 首先,对于一个点i,进入这个点前必须大于等于Ai,每个点必须捐赠Bi 那么我们可以在每个点最后一次经过的时候再捐赠,这样显然更优 现在我们假设每个点都是最后一次经过的时候捐赠。现在我们把捐赠的钱排除在外,对于每个点来说,需要max(Ai Bi, 0)才能经过这个点 显然,max(Ai B 阅读全文
posted @ 2018-06-13 10:43 basasuya 阅读(198) 评论(0) 推荐(1)