专栏文章

奇怪的符号生成器

个人记录参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minkv2w7
此快照首次捕获于
2025/12/02 04:04
3 个月前
此快照最后确认于
2025/12/02 04:04
3 个月前
查看原文
CPP
#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中生成一些奇特的符号

评论

0 条评论,欢迎与作者交流。

正在加载评论...