UKE求调
  • 板块CF31E TV Game
  • 楼主Ctrl_Z
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/10/17 19:09
  • 上次更新2023/10/27 07:06:39
查看原帖
UKE求调
552677
Ctrl_Z楼主2022/10/17 19:09
#include <cstdio>
#include <cstring>
using namespace std;
const int fas=100;
long long f[fas][fas],w[fas];
int main(){
  	int m;
  	char s[fas];
  	while(scanf("%d%c",&m,&s)){
	  	w[1]=1;
    	for(int i=2;i<=18;i++)w[i]=w[i-1]*10;
    	memset(f,0,sizeof(f));
    	for(int i=0;i<=m;i++){
    		for(int j=0;j<=m;j++){
			  	long long z=s[m+m-i-j]-'0';
      			if(i)f[i][j]=f[i-1][j]+w[i]*z;
      			if(j)f[i][j]=f[i][j]>f[i][j-1]+w[j]*z?f[i][j]:f[i][j-1]+w[j]*z;
    		}
		}
    	for(int i=m,j=m;i>0||j>0;){
			long long z=s[m+m-i-j]-'0';
      		if(i&&f[i][j]-f[i-1][j]==z*w[i]){
			  	--i;puts("H");
        	}
      		else{
      			--j;puts("M");
			}
    	}
  	}
  	return 0;
}
2022/10/17 19:09
加载中...