奇怪的符号生成器
QWQAWAQWQAWA · · 个人记录
#include<bits/stdc++.h>
using namespace std;
long long n,k,fi1,sum,T=1,ans,seed;
const long long mcmod=1e9+7;
bool Bk=0;
string a,a1,a2;
int main(){
//freopen("bitop.in","r",stdin);
freopen("bitop.out","w",stdout);
n=8;k=2;a="10010010";
cin>>seed;
for(int i=0;i<a.size();i++){
if(a[i]=='1')sum++;
cout<<i+seed<<endl;
}
cout<<sum+seed<<endl;
while(k--){
cout<<a<<endl;
Bk=1;
for(int i=a.size()-1;i>=a.size()-sum;i--){
if(a[i]=='0'){
Bk=0;break;
}
}
if(Bk)break;
a1=a;
for(int i=0;i<a1.size();i++){
if(a1[i]=='1'){fi1=i;break;}
}
for(int i=a1.size()-1;i>=0;i--){
if(a1[i]=='0'){a1[fi1]=0;a1[i]=1;break;}
}
a2=a;
for(int i=fi1;i<a.size();i++){
a2[i-fi1]=a[i];
}
for(int i=a.size()-fi1-1;i<a.size();i++)a2[i]=0;
reverse(a2.begin(),a2.end());
if(a1>a2)a=a2;
else a=a1;
}
for(int i=a.size()-1;i>=0;i--){
ans+=T*(a[i]-'0');
T*=2;
T%=mcmod;
ans%=mcmod;
}
cout<<ans;
return 0;
}
在linux中运行,seed输入100以上的数,即可在.out中生成一些奇特的符号