关于 unsigned __int128
  • 板块灌水区
  • 楼主DGL__DGL_AFO
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/4/10 21:35
  • 上次更新2024/4/11 09:50:47
查看原帖
关于 unsigned __int128
989997
DGL__DGL_AFO楼主2024/4/10 21:35

P1018

用 unsigned __int128 有几个点 Re 了,如果用 __int128 就不会Re

这是为啥捏

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
string n;
ll l,a[50],k;
unsigned __int128 ans;

void p(unsigned __int128 num)
{
	if(num>9) p(num/10);
	putchar(num%10+'0');
}

void dfs(ll w,ll m,unsigned __int128 res)
{
	
	if(m==k)
	{
		unsigned __int128 js=0;
		for(int i=w+1;i<=l;i++)
		  js=js*10+a[i];
		res*=js;  
		  
		ans=max(ans,res);
		return ;
	}
	
	for(int i=w+1;i<l;i++)
	{
		unsigned __int128 js=0;
		for(int j=w+1;j<=i;j++)
		  js=js*10+a[j];
		  //cout<<w<<' '<<m<<' '<<res<<' ';
		res*=js;
		m++;
		//cout<<js<<" "<<res<<endl;
		dfs(i,m,res);
		m--;
		res/=js;
	} 
	  
}

int main() 
{
	cin>>l>>k;
	cin>>n;
	for(int i=0;i<l;i++)
	  a[i+1]=n[i]-'0';
	
	for(int i=1;i<l;i++)
	{
		unsigned __int128 js=0;
		for(int j=1;j<=i;j++)
		  js=js*10+a[j];
		dfs(i,1,js);
	}
	
	p(ans);	
	
	
	return 0;
}
2024/4/10 21:35
加载中...