ACM PKU 1147 Binary codes http://acm.pku.edu.cn/JudgeOnline/problem?id=1147
|
研究了n久,原来是题意理解有问题.,, 这题费了我一个半小时,网上也找不到任何代码和算法,确实是经典啊~~
#include <iostream>
using namespace std;
int destination[3001];
int next[3001];
bool flag[3001];
int ans[3001];
int main()
{
int n, i = 1,j=1;
int zero = 0 , one = 0;
cin >> n;
for ( ; i <= n; i++)
{
cin >> destination[i];
if(destination[i] == 0)
zero++;
else
one++;
}
memset(flag,1,sizeof(flag));
for(i = 1;i <= zero;ans[i++] = 0);
for( ;i <= n ;ans[i++] = 1);
for(i = 1; i <= n; i++)
{
j = 1;
while(ans[i] != destination[j] || flag[j] == 0 ) j++;
next[i] = j;
flag[j] = 0;
}
j = 1;
for( i = 1 ; i <= n; i++)
{
j = next[j];
cout<<destination[j]<<" ";
}
cout<<endl;
return 0;
}
看了流牛师兄的分析写的,就这样好奉献了一次RE,很不应该啊! |
浙公网安备 33010602011771号