[Atcoder ARC103D]Robot Arms】的更多相关文章

题目大意:平面上有$n$个点,要求你构造$m$条边(满足$m\leqslant40$),使得可以从原点到达给定的$n$个点(边必须平行于坐标轴).并要求输出每一条边的方向,每条边必须都使用,无解输出$-1$.$n\leqslant1000$,点的坐标的绝对值$\leqslant10^9$,边长度$\leqslant10^{12}$ 题解:因为所有的边必须使用,所以每一个点横纵坐标相加的奇偶性相同,不同就无解.发现若构造长度为$1,2,\cdots,2^n$的边,可以到达满足$|x|+|y|\le…
题目链接  Problem D 给定$n$个坐标,然后让你构造一个长度为$m$的序列, 然后给每个坐标规定一个长度为$m$的序列,ULRD中的一个,意思是走的方向, 每次从原点出发按照这个序列方向,每次走的距离是对应位置的那个值, 最后要走到那个坐标. 直接构造,无解的条件是$x$和$y$的和奇偶性不全相等. 我当时想不出来是因为感觉两个方向不好控制,结果其实可以用二进制统一操作. 如果和是偶数那么加一个往右走一个的单位的操作转化为奇数就行. 然后按照二进制的方法从小到大一个个转换,就像转二进制…
大意: 给定平面上$n$个点$(x_i,y_i)$. 要求构造一个序列$d$, $d_i$表示每步走的距离, 再构造$n$个命令串, 要求从原点出发按照第$i$个命令走, 走完恰好到达$(x_i,y_i)$. 构造完全没思路, 看了题解才懂 首先若存在两个点的$x+y$的奇偶性不同, 那么显然无解. 其余情况假设$x+y$为奇数, 那么构造$d=1,2,4,8,16,...$, 然后命令可以贪心构造出来. 若$x+y$为偶数, $d$中添加一个$1$, 变为奇数的情况即可. #include <…
题意 给定\(n\)个点,你需要找到一个合适的\(m\)和\(d_1,d_2,...,d_m\),使得从原点出发每次向四个方向的某一个走\(d_i\)个单位,最终到达\((x_t, y_t)\).输出\(m\)和\(d\)数组:对于\(t=1\to n\)输出方向. \(n \leq 10^3\),坐标范围\(10^9\) 题解 如果这些点\((x_t, y_t)\),\(x_t + y_t\)的奇偶性不同那无解 如果\(x_t + y_t\)为偶数,我们先让\(d_1=1\),这样转换为\(x…
合法的必要条件是每个点两维坐标和奇偶性相同,同时这也是充分条件 令$d_{i}=\{2^{0},2^{1},...,2^{m-1}\}$,归纳其可以走到任意满足$|x|+|y|<2^{m}$的$(x,y)$,考虑先确定其最后一步,即对于$|x|+|y|<2^{m+1}$,通过$d=2^{m}$使其走到$|x'|+|y'|<2^{m}$的位置 不妨假设$|x|<|y|$,则有$|x|<2^{m}$,然后令$y'=y-sign(y)\cdot 2^{m}$,对$|y|$分类讨论:…
构造题都是神仙题 /kk ARC066C Addition and Subtraction Hard 首先要发现两个性质: 加号右边不会有括号:显然,有括号也可以被删去,答案不变. \(op_i\)和\(A_{i+1}\)之间只会有一个括号:有多个括号的话只保留最外边那个,答案不变. 然后就可以定义状态:\(dp_{i,j}\)表示前\(i\)个数,还有\(j\)个未闭合的左括号,得到的最大答案. 由于只有减号右边有括号,所以只要知道左边有几个未闭合的左括号,就可以知道自己的贡献是\(1\)还是…
C - //// 为了防止一些多余的判断,我选择直接记录每个数的个数,然后枚举第一个数,找第一个数之外第二个数改变最少的情况下应该选什么 代码 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define enter putchar('\n') #define space p…
目录 ARC 103 A.//// B.Robot Arms C.Tr/ee D.Distance Sums ARC 103 窝是传送门QwQ A.//// 题意 : 给你\(n\)(\(n\)为偶数)个数 一次操作你可以修改任意一个数 问最少修改几次使得其满足以下条件 \(a_i=a_{i+2}\) \(a_1!=a_2\) 数据约束: \(2 \leq n \leq 10^5\) , \(1 \leq a_i \leq 10^5\) 题解: 对于下标为奇数的记下每个数出现的个数 在满足和偶数…
传送门 C - /\/\/\/ 题意: 给出一个序列\(\{a_i\}\),先要求其满足以下条件: \(a_i=a_{i+2}\) 共有两个不同的数 你现在可以修改任意个数,现问最少修改个数为多少. 思路: 很明显奇偶分类. 记录奇数位置.偶数位置的最大值和最大出现次数的情况: 因为要求两个数不相同,所以还要维护次大. 注意以下细节就是了. Code #include <bits/stdc++.h> using namespace std; typedef long long ll; cons…
Description The factory of the Impractically Complicated Products Corporation has many manufacturing lines and the same number of corresponding storage rooms. The same number of conveyor lanes are laid out in parallel to transfer goods from manufactu…