hdu多校第四场1001 (hdu6614) AND Minimum Spanning Tree 签到

Posted isakovsky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu多校第四场1001 (hdu6614) AND Minimum Spanning Tree 签到相关的知识,希望对你有一定的参考价值。

题意:

一个完全图,某两点边权为这两点编号之按位与,求最小生成树,输出字典序最小的。

题解:

如果点数不为$2^n-1$,则每一点均可找到一点,两点之间边权为0,只需找到该点二进制下其最左边的0是第几位,与此位为1,其他位都为0的点相连,此边边权为0。

否则,第$2^n-1$点以此法找到的最小点是$2^n$,此点不存在,则$2^n-1$只能与1相连,得到边权为1。其他边都是0,总共得生成树边权和为1。

#include<iostream>
using namespace std;
int main()
    int t;
    scanf("%d",&t);
    while(t--)
        int n;
        scanf("%d",&n);
//        int ans=0;
        int k=n+1;
        
        while(k>1)
            if(k%2)
                printf("0\n");
                goto B;
            
            k/=2;
        
        printf("1\n");
        
        B:;
        for(int i=2;i<=n;i++)
//            printf("%d:",i);
            
            for(int j=1;j<=n;j<<=1)
                if( (i&j) ==0)
                    printf("%d",j);
                    goto A; 
                
            
            
            printf("1");
//            ans++;
A:;
            if(i<n)printf(" ");
            
        
        printf("\n");
    
    return 0;

 

以上是关于hdu多校第四场1001 (hdu6614) AND Minimum Spanning Tree 签到的主要内容,如果未能解决你的问题,请参考以下文章

2019杭电多校第四场hdu6621 K-th Closest Distance(二分答案+主席树)

杭电2018多校第四场(2018 Multi-University Training Contest 4) 1005.Problem E. Matrix from Arrays (HDU6336) -

HDU多校第四场1005 Didn‘t I Say to Make My Abilities Average in the Next Life?! 单调栈+莫队

2019 杭电多校 第四场

2020杭电多校第四场 Go Running 最小点覆盖等于二分图最大匹配数

Problem E. Matrix from Arrays(杭电2018年多校第四场+思维+打表找循环节)