Solution -「ARC 103B」Robot Arms
Description
Link.
给定 \(n\) 组坐标。构造长度为 \(m\) 的序列 \(\{c_n\}\) 和 \(n\) 组包含 LRUD 的路径,满足对于每一组坐标:
- \(c_i\) 表示第 \(i\) 步「步长」。
- 对于每个坐标,从 \((0,0)\) 开始走,共走 \(m\) 步。第 \(i\) 步可以让 \((x,y)\) 变成 \((x±c_i,y)\) 或 \((x,y±c_i)\) 。
- 走完 \(m\) 次之后,恰好走到这组坐标。
- 要求 \(m\leq 40,c_i\leq 10^{12}\) 。
Solution
好强的题啊。
先考虑无解的情况。
即是 \(x_{i}+y_{i}\) 的奇偶性不同的情况为无解。
仔细看 \(m\) 的限制疑似是 \(\log(x+y)\) 级别的,考虑二进制拆分。
于是考虑 \(\{2^{k}\}\) 可以凑出的坐标。
只考虑 1-dimension 的做法。
我们能够维护的地方就是 \(\sum_{i=0}^{k}2^{i}=2^{k+1}-1\)(这里算的是曼哈顿距离)。
那么这一定是个奇数,如果 \((x,y)\) 的曼哈顿距离是偶数就考虑换原点。
那么这就做完了。
using i64 = long long;
using pii = std::pair<i64, i64>;
std::vector<int> sL;
std::vector<std::string> dR;
std::pair<int, int> as[MAXN];
int n, wax[4], way[4];
char trans[4];
int main () {
std::ios::sync_with_stdio ( 0 ); std::cin.tie ( 0 ); std::cout.tie ( 0 );
std::cin >> n; initial ();
rep ( i, 1, n ) std::cin >> as[i].first >> as[i].second;
rep ( i, 2, n ) if ( ( as[i].first + as[i].second + as[i - 1].first + as[i - 1].second ) & 1 ) return ( puts ( "-1" ), 0 );
sL.push_back ( 1 );
rep ( i, 1, 30 ) sL.push_back ( 1 << i );
if ( ( ( as[1].first + as[1].second ) & 1 ) ^ 1 ) sL.push_back ( 1 );
std::reverse ( sL.begin (), sL.end () );
rep ( i, 1, n ) {
dR.push_back ( std::string () );
i64 curx = as[i].first, cury = as[i].second;
if ( ( ( curx + cury ) & 1 ) ^ 1 ) dR[i - 1].push_back ( 'U' ), cury --;
per ( j, 30, 0 ) rep ( k, 0, 3 ) {
i64 nxtx = curx + ( i64 )wax[k] * ( ONE64 << j );
i64 nxty = cury + ( i64 )way[k] * ( ONE64 << j );
if ( std::abs ( nxtx ) + std::abs ( nxty ) < ( ONE64 << j ) ) {
curx = nxtx, cury = nxty;
dR[i - 1].push_back ( trans[k] );
break;
}
}
}
std::cout << sL.size () << '\n';
for ( int p : sL ) std::cout << p << ' ';
std::cout << '\n';
for ( std::string p : dR ) std::cout << p << '\n';
return 0;
}
Solution -「ARC 103B」Robot Arms的更多相关文章
- Solution -「ARC 104E」Random LIS
\(\mathcal{Description}\) Link. 给定整数序列 \(\{a_n\}\),对于整数序列 \(\{b_n\}\),\(b_i\) 在 \([1,a_i]\) 中等概率 ...
- Solution -「ARC 101D」「AT4353」Robots and Exits
\(\mathcal{Description}\) Link. 有 \(n\) 个小球,坐标为 \(x_{1..n}\):还有 \(m\) 个洞,坐标为 \(y_{1..m}\),保证上述坐标 ...
- Solution -「ARC 110D」Binomial Coefficient is Fun
\(\mathcal{Description}\) Link. 给定非负整数序列 \(\{a_n\}\),设 \(\{b_n\}\) 是一个非负整数序列且 \(\sum_{i=1}^nb_i\ ...
- Solution -「ARC 124E」Pass to Next
\(\mathcal{Description}\) Link. 有 \(n\) 个人站成一个环,初始时第 \(i\) 个人手里有 \(a_i\) 个球.第 \(i\) 个人可以将自己手中任意数 ...
- Solution -「ARC 126E」Infinite Operations
\(\mathcal{Description}\) Link. 给定序列 \(\{a_n\}\),定义一次操作为: 选择 \(a_i<a_j\),以及一个 \(x\in\mathbb R ...
- Solution -「ARC 126F」Affine Sort
\(\mathcal{Description}\) Link. 给定 \(\{x_n\}\),令 \[f(k)=\left|\{(a,b,c)\mid a,b\in[0,c),c\in[1,k ...
- Solution -「ARC 125F」Tree Degree Subset Sum
\(\mathcal{Description}\) Link. 给定含有 \(n\) 个结点的树,求非负整数对 \((x,y)\) 的数量,满足存在 \(\exist S\subseteq V ...
- Solution -「ARC 125E」Snack
\(\mathcal{Description}\) Link. 把 \(n\) 种零食分给 \(m\) 个人,第 \(i\) 种零食有 \(a_i\) 个:第 \(i\) 个人得到同种零食数量 ...
- Solution -「ARC 058C」「AT 1975」Iroha and Haiku
\(\mathcal{Description}\) Link. 称一个正整数序列为"俳(pái)句",当且仅当序列中存在连续一段和为 \(x\),紧接着连续一段和为 \(y ...
- Solution -「ARC 101E」「AT 4352」Ribbons on Tree
\(\mathcal{Description}\) Link. 给定一棵 \(n\) 个点的树,其中 \(2|n\),你需要把这些点两两配对,并把每对点间的路径染色.求使得所有边被染色的方案数 ...
随机推荐
- 使用 ChatGPT 的 7 个技巧 | Prompt Engineering 学习笔记
概述 前段时间在 DeepLearning 学了一门大火的 Prompt 的课程,吴恩达本人授课,讲的通俗易懂,感觉受益匪浅,因此在这里总结分享一下我的学习笔记. 为什么要学习 Prompt ? 因为 ...
- Journal of Electronic Imaging投稿分享
Journal of Electronic Imaging投稿分享 在研究生阶段中的第一篇论文,前后总共三个月,还是很开心的!!! 附下中稿图片 这个期刊从二月份开始投的,然后三月份给了大修,大修时间 ...
- Educational Codeforces Round 150 (Rated for Div. 2) A-E
比赛链接 A 代码 #include <bits/stdc++.h> using namespace std; using ll = long long; bool solve() { i ...
- WebAPI公开接口请求签名验证
前言 现在的系统后端开发的时候,会公开很多API接口 对于要登录认证后才能访问的接口,这样的请求验证就由身份认证模块完成 但是也有些接口是对外公开的,没有身份认证的接口 我们怎么保证接口的请求是合法的 ...
- Vue-CoreVideoPlayer 视频播放器组件
安装 cnpm install -S vue-core-video-player 快速使用 # 在main.js中 import VueCoreVideoPlayer from 'vue-core-v ...
- 华为云GaussDB亮相2023可信数据库发展大会,荣获三项评测证书!
摘要:2023可信数据库发展大会上,华为云数据库服务产品部总经理苏光牛围绕华为云GaussDB的产品能力和实践进行了分享 本文分享自华为云社区<华为云GaussDB亮相2023可信数据库发展大会 ...
- 【HDC.Cloud 2023】华为云区块链分论坛内容值得再读!
摘要:在Web3时代,基础设施不仅仅是传统意义上的服务器.网络等,还包括了区块链节点.智能合约等,这些基础设施的稳定性和可信度直接影响着Web3的发展. 本文分享自华为云社区<[HDC.Clou ...
- 跟着 GPT-4 从0到1学习 Golang 并发机制(三)
目录 一.前言 二.开聊 2.1 关于 goroutine 泄露问题 2.2 内存模型 2.3 Race Detector 检测数据竞争 三.总结 一.前言 话接上回<跟着 GPT-4 从0到1 ...
- Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000: java.net.ConnectException: 拒绝连接 (Connection refused) (state=08S01,code=0)
一:启动hiveserver2服务 二:启动beeline 三:连接hiveserver2(下面的1000000端口号适当改小写因为其超出最大端口号的范围建议改为10000) 如果启动不成功实现我们先 ...
- zabbix system.run
Zabbix的system.run是一个主动模式的监控项,它允许用户在Zabbix服务器上执行自定义的命令或脚本,并获取执行结果作为监控数据. system.run监控项的配置包括以下几个关键参数: ...