0分求助
查看原帖
0分求助
398152
MinimumSpanningTree最小生成树楼主2022/2/20 19:47

0分求助,全部测试点WA https://www.luogu.com.cn/record/69760793

#include<iostream>
using namespace std;  
long long a[30]={1},n;  
void dfs(long long n1)  
{    
    int i=0;  
    if(n1!=0)  
    {    
        while(n1>=a[i]) i++; i--;
        n1-=a[i];   
        printf("2");   
        if(i!=1) printf("(");     
        if(i==0||i==2) printf("%d)",i);     
        if(i>=3) 
		{
			dfs(i);
			printf(")");
		}  
        if(n1!=0) 
		{
			printf("+");
			dfs(n1);
		}  
    }  
    return;                
}  
int main()  
{   
    scanf("%lld",&n); 
	for(int i=1;i<50;i++) a[i]=a[i-1]*2;  
    dfs(n);  
    return 0;   
}
//2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
//73
//2(2(2)+2)+2(2+2(0))+2(0) 
2022/2/20 19:47
加载中...