关于此题的 check
查看原帖
关于此题的 check
246979
SalomeJLQ楼主2023/11/8 21:38

如果这么写会 WA。

bool check(ll k){
	k*=9;ll res=0;
	memset(b,0,sizeof(b));
	for(ll i=1;i<=n;i++)b[i]=a[i]*9;b[1]+=k;
	for(ll i=1;b[i];i++)
		b[i+1]+=b[i]/10,b[i]%=10,res+=b[i];
	return res<=k;
}

但如果我只算前 nn 位就 A 了,代码:

bool check(ll k){
	k*=9;ll res=0;
	for(ll i=1;i<=n;i++)b[i]=a[i]*9;
	b[1]+=k;
	for(ll i=1;i<=n;i++)
		b[i+1]+=b[i]/10,b[i]%=10,res+=b[i];
	return res<=k;
}

不大懂。

2023/11/8 21:38
加载中...