玖玖70分求助?!?!
  • 板块P1490 买蛋糕
  • 楼主STUDENT00
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/9/7 19:34
  • 上次更新2023/10/27 12:20:11
查看原帖
玖玖70分求助?!?!
658786
STUDENT00楼主2022/9/7 19:34

世界上最好理解的代码:

#include<bits/stdc++.h>
using namespace std;
int n,num,ans,a[1010];
void dfs(int k,int sum){
	if(k==num){
		ans+=2*sum-n+2;
		return;
	}
	for(int i=ceil((n+1)*1.0/(1<<(num-k))-1-sum);i<=sum+1;i++){
		a[k]=i;
		dfs(k+1,sum+i);
	}
} 
int main(){
	scanf("%d",&n);
	if(n==1){
		printf("1 1");
		return 0;
	}
	int s=1,ss=0;
	while(s<n){
		num++;
		ss+=s;
		s=ss+1;
	}
	a[1]=1;
	dfs(2,1);
	printf("%d %d",num,ans);
	return 0;
}
2022/9/7 19:34
加载中...