随笔分类 - 我不会做的构造水题
摘要:题目链接:Valerii Against Everyone 题目大意: 有两个数组A,B满足Ai = 2^Bi,现给出数组B,问能否找出四个数l1,r1,l2,r2,使得 Al1+...+Ar1 = Al2+...+Ar2 思路: 可以考虑l1 = r1 和 l2 = r2,即找到数组B中两个相同的
阅读全文
摘要:题目链接:Pupils Redistribution 题目大意: 给两个数组A和B,元素均为1到5(包含端点),可以选择A中一个数和B中一个数进行交换,问最少交换多少次可以使得两个数组中1的个数相同,2的个数相同,3的个数相同,4的个数相同,5的个数相同。 思路: 记录两个数组中每个数出现的次数,假
阅读全文
摘要:题目链接:GCD Compression 题目大意: 一个数组A右2n个数,现在要把它压缩到n-1个数,首先选两个数丢掉,然后可以进行如下操作,从A中选两个数,将它们的和加入到数组B,知到A中为空,要求最后B数组中元素gcd大于一。 思路: 首先想到让B中所有数为偶数,即gcd为2,两个奇数相加为偶
阅读全文
摘要:题目链接:1405B - Array Cancellation 题目大意: 给一列数组,数组元素和为0,每次操作找两个不同下标i,j,如果让a[i]减一,a[j]加一,如果i小于j则该操作免费,否则,该操作需消耗一块钱,问最少消耗多少钱可以使所有元素都为零。 思路: 为了消耗最少,肯定是先进行免费操
阅读全文
摘要:题目链接:Peaceful Rooks 题目大意: 有一个n*n的棋盘,上面有m个棋子,并且初始位置各个棋子不会互相攻击到(类似于8皇后),问最少移动多少步。 思路: 首先,这个题转化为建图: 为什么建图: 建图可以用dsu(并查集),判环 参考代码 1 #include <bits/stdc++.
阅读全文
摘要:题目链接:Ping-Pong 题目大意: 略 思路: 因为每个人都想最大化自己赢得局数,所以B的体力为y时,他可以所有球都不接,然后等A没体力时,再赢y局,但是又因为要最小化对方的赢得局数,所以在A发的最后一个球,是可以接的,这样,A少赢一局。 参考代码: 1 #include <bits/stdc
阅读全文
摘要:题目链接:1459B - Move and Turn 题目大意: 起初你在一个二维平面的原点,第一次你可以选择东西南北任意方向出发,之后每走一步,你必须九十度向左或者右转,问经过n步之后,有多少个不同的终点。 思路: 先考虑,假设n为偶数,那么要走n/2步水平方向,和n/2步竖直方向,并且水平和竖直
阅读全文
摘要:题目链接:Find The Array 题目大意: 有一个数组A,要找一个数组B,要求B中每个数小于1e9,并且,bi能整除bi+1(或者bi+1整除bi,或者互相整除),并且2*sum(|ai-bi|) <= A的和 解题思路: 考虑Sodd和Seven,显然,Sodd和Seven必有一个大于等于
阅读全文
摘要:题目链接:CF688B 题目大意: 一个数列N个数,每次操作有两种选择,一种是选择一个起点,包括该起点的所有数列的后缀的数都加一,另一种是减一,并且,在操作开始之前,可以选择一个数使之变成任何一个数,也可以不变,问让数列所有数都相等的最少操作次数。 思路: 首先考虑最小次数如何得到,对于每一个数ai
阅读全文
摘要:题目链接:https://codeforces.com/problemset/problem/1447/B 题目大意: 给一个n×m的矩阵,可进行m次操作(m无限制),每次操作可以选则两个相邻的格子(相邻即为有公共边),将这两个格子内的元素都乘上-1,问最终这个矩阵内所有元素的和最大是多少。 解题思
阅读全文
摘要:题目链接:https://codeforces.com/problemset/problem/1447/A 题目大意: 给一个长度为n的数组,第i个数为i(从1开始),进行m次操作,第j次操作时,选择一个数,除它以外每一个数都加上j,问如何操作可以使所有数都相等。(m基本没有限制,而且不要求m最小)
阅读全文

浙公网安备 33010602011771号