摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 肯定是这样 先放k 1个,然后空1个,然后再放k 1个。然后再空1个。。 以此类推。 然后如果(n/k) (k 1)+n%k =m的话 那么答案显然就是m,因为不会出现乘2的情况。 否则。 那么只能让某些位置乘2了。 那么什么地 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 如果写过n皇后问题。 肯定都知道 某个点(i,j)和它在同一条对角线上的点分别是i+j的值和i j的值相同的点。 然后会发现选择的两个点其实就对应了两组i+j和i j 且每组i+j和i j i+j的奇偶性和i j的奇偶性要是一样 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 如果是一个k string的话。 考虑最后的串假设形式为sss..ss(k个s) 则s中出现的字母,整个串中最后出现的次数肯定为k的倍数。 如果某个字母出现的次数不为k的倍数。 那么直接输出 1 否则。 我们把每个字母出现的次数 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 每一段相当于pre[y] pre[x 1]=z 则。 pre[x 1]+z = pre[y] 所以可以用带权并查集来表示这个关系。 即relation[x] = z; 然后就是一道普通的带权并查集题目啦 在做路径压缩的转移的时候 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 用set搞。 (因为规定了不会有相同特点值的东西。 所以可以不用multiset. 那么每次用lower_bound找离它最近的配对就好了 【代码】 cpp include define ll long long using n 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 如上图。 显然如果三个正方形。只可能是上面的情况。 则可以处理一下左上角、右上角、左下角、右下角的前缀最大正方形(dp),以及以某一列为底部,某一行为底部的最大正方形和。 然后枚举一下两条分界线就能做出来啦。 细节题。 【代码】 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 如果点的个数 【代码】 cpp include define LL long long define rep1(i,a,b) for (int i = a;i = b;i ) define all(x) x.begin(),x. 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 原问题可以等价为两个点。 然后其中一个点要移动到另外一个点。 那么我们可以把左下角那个点(对称总是可以得到一个点在左下角)放在原点的位置。 然后通过x坐标差和y坐标差。 获取出来,另外一个点的相对位置。 然后问题就转化成 从原点 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 二分+网络流 先处理出所有的人到所有的门的最短路dis(x,y) 二分所用的时间mid 则把所有的门都分成mid个。 表示1..mid这些时间这个门可以通过一个人。 然后建立一个超级源点S S和所有的人各连一条边,边权为1 然后 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 选择的连接肯定是相邻的点对。 那么我们处理出来长度为n 1的数组a 其中a[i 1] = dis[i] dis[i 1] 那么问题就转化成在a数组中取出不相邻的k个数字。 这k个数字的和要求最小。 那么我们把每个数字都加入到堆中 阅读全文