社区讨论
史上最诡异代码(求优化)
P1259黑白棋子的移动参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mid0vy84
- 此快照首次捕获于
- 2025/11/24 18:47 3 个月前
- 此快照最后确认于
- 2025/11/24 20:03 3 个月前
无论从格式还是写法上都有些诡异
- 思路是对于原本的2n个球 拿出要求的两个球 放到另一个数组中,最后根据情况合并两个数组和"--"
#include <bits/stdc++.h>
using namespace std;
int n;
vector<char> a, b;
int main(void) {
cin >> n;
for(int i = 1; i <= n; i++) a.push_back('o');
for(int i = 1; i <= n; i++) a.push_back('*');
// for(auto& v : a) cout << v; cout << '-' << '-';
int u = n-1, v = 2*n-1;
// for(int i = 0; i <= u; i++) cout << a[i]; cout << '-' << '-';
int temp = 0;
while(true) {
if(temp != 0) {
for(int i = 0; i <= u; i++) cout << a[i];
cout << '-' << '-';
for(int i = u+1; i <= v; i++) cout << a[i];
for(auto& k : b) cout << k; cout << endl;
}
for(auto& k : a) cout << k; cout << '-' << '-';
for(auto& k : b) cout << k; cout << endl;
swap(a[u], a[v-1]);
b.push_back(a[v-1]); b.push_back(a[v]);
a.pop_back(); a.pop_back();
u -= 1; v -= 2;
temp = 1;
if(u == 2) break;
}
cout<<"ooo--***";
for(int i=1;i<=n-3;i++)
cout<<"o*";
cout<<endl;
cout<<"ooo*o**--*";
for(int i=1;i<=n-4;i++)
cout<<"o*";
cout<<endl;
cout<<"o--*o**o";
for(int i=1;i<=n-3;i++)
cout<<"o*";
cout<<endl;
cout<<"o*o*o*--";
for(int i=1;i<=n-3;i++)
cout<<"o*";
cout<<endl;
cout<<"--";
for(int i=1;i<=n;i++)
cout<<"o*";
return 0;
}
思路差不多的情况下,请问怎么样能把自己的代码变得简洁干净啊(哭)
orz
回复
共 0 条回复,欢迎继续交流。
正在加载回复...