[AGC032B] Balanced Neighbors 题解

考虑先写个暴力 O(n2m) 的输出一下结果,看一下 n = 4, 5, 6 的(尤其是 n = 6 的)结果,尤其是每个点像其余哪几个点连边,然后就想到了构造方案。

代码

const int N = 109;
int n;
int e[N][N];

void skymaths() {
    read(n);
    if (n % 2 == 0) {
        rep (i, 1, n) {
            e[i][n + 1 - i] = 1;
        }
    } else {
        rep (i, 1, n - 1) {
            e[i][n - i] = 1;
        }
    }

    vector <pii> E;
    rep (i, 1, n) {
        rep (j, i + 1, n) {
            if (!e[i][j]) {
                E.eb(i, j);
            }
        }
    }

    int deg[101]; clr(deg);
    for (pii e : E) {
        deg[e.fi] += e.se;
        deg[e.se] += e.fi;
    }
    rep (i, 2, n) if (deg[i] != deg[i - 1]) assert(0);

    printf("%llu\n", E.size());
    for (pii e : E) {
        printf("%d %d\n", e.fi, e.se);
    }
}
posted @   SkyMaths  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
历史上的今天:
2023-11-17 NOIP 考前板子复习
点击右上角即可分享
微信分享提示