题意:在一个n*m的矩形中,要放置很多小矩形,每个矩形必须与大矩形的边界相接触,其中有一块1*1的必须空着,他的坐标是x,y。现在问放置的小矩形面积最大值最少是多少? 分析:因为每个小矩形要和边界互相接触,所以每个小矩形都是形如1*a这样的矩形,这样才能保证面积最小,在没有空着的矩形的情况下,最小的矩形面积肯定是1*(n+1)/2, n < m;但是若放置了一个空的1*1的矩形,那么受影
看完题,容易想到把求一段区间改成求 前r的异或和 ^ 前l-1的异或和 等于k, 那么这个东西发现可以直接用莫队统计,没了. c++代码如下: #include<bits/stdc++.h>#define rep(i,x,y) for(register int i = x ; i <= y ; ++ i)#define repd(i,x,y) for(register int i = x
题目大意: 题目链接:http://contest-hunter.org:83/contest/0x50「动态规划」例题/5301 石子合并 每次可以合并连续的两堆石子。代价为这两堆石子的数量之和。求将所有石子合成一堆的最小代价. 思路: 这道题不能合并两堆不相邻的石子,所以堆和队列就肯定不行了。考虑DP。 设 f [ i ] [ j ] f[i][j] f[i][j]为合并第 i i