Game with Chips
思路
一开始以为还要用bfs或者dfs来写,然后仔细想一想,div2的C题应该没这么复杂吧。果然,这就是一道脑洞题,我们发现题目给的数据是步数小于等于 \(2nm\) 这足够走两遍完整的地图了,于是有了下面的做法。
我们把所有的点都移到四个角中其中任意一个,现在所有的点都在同一个角上了,所以我们只需要用一个蛇形来遍历整个地图就行了,总的步数是\((n + m - 1) + (n * m - 1) < (2 * n * m)\)
代码
这里采用的做法是把所有的点都移到左上角。
#include<bits/stdc++.h>
using namespace std;
int main() {
// freopen("in.txt", "r", stdin);
ios::sync_with_stdio(false);
int n, m, k, x, y;
cin >> n >> m >> k;
for(int i = 0; i < k; i++)
cin >> x >> y;
for(int i = 0; i < k; i++)
cin >> x >> y;
cout << ((n + m - 2) + (n * m - 1)) << endl;
for(int i = 1; i < n; i++) cout << "U";
for(int i = 1; i < m; i++) cout << "L";
for(int i = 1; i <= n; i++) {
if(i != 1) cout << "D";
for(int j = 1; j < m; j++)
if(i & 1) cout << "R";
else cout << "L";
}
cout << endl;
return 0;
}
原文链接: https://www.cnblogs.com/lifehappiness/p/12802664.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/345221
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!