蒟蒻求助
查看原帖
蒟蒻求助
709890
wjh13515775168楼主2023/11/18 21:09
#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int rnum()
{
    int fh = 1,res = 0;char ch = getchar();
    while(!isdigit(ch)) {if(ch == '-') fh = -1; ch = getchar();}
    while(isdigit(ch)) res = res * 10 + (ch - '0'),ch = getchar();
    return fh * res;
}
inline string rstr()
{
    string res;char ch = getchar();
    while(!isalpha(ch)) ch = getchar();
    while(isalpha(ch)) res += ch,ch = getchar();
    return res;
}
mt19937_64 Rnd(time(NULL));
inline int myrand(const int &l,const int &r)
{
	return Rnd() % (r - l + 1) + l;
}
inline int lowbit(int x)
{
	return x & -x;
}
const int N = 10010;
int a[N],n = rnum();
string s;
signed main()
{
	srand(time(NULL));
	n /= 8;
//	cout << n << endl;
	for(int i = 1;i <= n;i++)
	{
		a[i] = rnum();
	}
	for(int i = 1;i <= n;i++)
	{
		if(a[i] == 0) s += "00000000";
		else
		{
			string ss;
			while(a[i])
			{
				ss += (char)(a[i] % 2 + '0');
				a[i] /= 2;
			}
			for(int j = ss.size() - 1;j >= 0;j--) s += ss[j];
		}
	}
	string st;
	st += s[0];
	for(int i = 1;i < s.size();i++)
	{
		if(s[i] != st[0])
		{
			if(st[0] == '0')
			{
				cout << st.size() << " ";
			}
			else 
			{
				cout << st.size() + 128 << " ";
			}
//			cout << st;
			st.clear();st += s[i];
		}
		else
		{
			st += s[i];
		}
	}
	if(st.size())
	{
		if(st[0] == '0')
		{
			cout << st.size();
		}
		else 
		{
			cout << st.size() + 128;
		}
	}
    return 0;
}
2023/11/18 21:09
加载中...