1 条题解

  • 0
    @ 2024-11-6 22:55:07

    直接分讨中心字符进行构造。

    然后字符尽量往两边分摊。

    就没了吧?

    string s;
    ll a[30];
    ll n;
    void _clear(){}
    void solve()
    {
    	_clear();
    	cin>>s;
    	n=s.size();
    	for(auto i:s)
    		a[i-'a']++; 
    /*	if(n%2==0)
    	{
    		forl(i,0,25)
    			forl(j,1,(a[i]+1)/2)
    				cout<<char('a'+i);
    		forr(i,25,0)
    			forl(j,1,(a[i]+1)/2)
    				cout<<char('a'+i);		
    	}
    	else*/
    	{
    		ll id=0;
    		forl(i,0,25)
    		{
    			forl(j,1,a[i]/2)
    				cout<<char('a'+i);		
    			if(a[i]%2 && !id)
    				id=i+1;
    		}
    		a[id-1]--;
    		forl(i,0,25)
    			if(a[i]%2)
    				cout<<char('a'+i);
    		cout<<char('a'+id-1);
    		forr(i,25,0)
    			if(a[i]%2)
    				cout<<char('a'+i);
    		forr(i,25,0)
    			forl(j,1,a[i]/2)
    				cout<<char('a'+i);
    	}
    	cout<<endl;
    }
    
    • 1

    [CZOJ 一周一测 R17 C] 送分题 3(一次回文)

    信息

    ID
    1227
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    (无)
    递交数
    35
    已通过
    8
    上传者