• Graph And Its Complement CodeForces


    题意:

      图中有n个点,开始有a个连通块,然后连着的边断开,不连的边连上,变为b个连通块,输出原图的邻接矩阵。

    解析:

      原图中连通块大于1的图,经过上述操作后,一定变成只有1个连通块的图。

      若n != 2 || n != 3 则存在原图中连通块为1的图,经过上述操作后,一定变成只有1个连通块的图

      所以a 和 b 肯定有一个为1

      对于a != 1的情况,输出的时候只需要把前a-1个点 不连边 第a个到最后一个没相邻的两个连一条边 即可

    因为a 和 b 是互补的 所以 a == 1时 swap交换一下a和b  并且交换1和0

    #include "iostream"
    #include "algorithm"
    using namespace std;
    int n,a,b;
    char ch1='1',ch2='0';
    int main() {
        cin>>n>>a>>b;
        if (a!=1&&b!=1||a==1&&b==1&&n<=3&&n>=2||a>n||b>n) {cout<<"NO"<<endl; return 0;}
        cout<<"YES"<<endl;
        if (b !=1) swap(a,b), swap(ch1,ch2);
        for (int i=0;i<n;i++) {
            for (int j=0;j<n;j++) {
                cout<<(i==j?'0':(i+1==j&&j>=a||j+1==i&&i>=a?ch1:ch2));
            }
            cout<<endl;
        }
    }
    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    关于表单的jQuery练习
    jQuery中的综合动画
    jQuery中自定义简单动画的实现
    清除浮动
    定位
    盒子模型
    笔记
    笔记
    翻页
    DOM
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/9544492.html
Copyright © 2020-2023  润新知