首页 > 其他分享 >[AGC032B] Balanced Neighbors 题解

[AGC032B] Balanced Neighbors 题解

时间:2024-11-17 19:59:13浏览次数:1  
标签:Neighbors int 题解 rep Balanced fi se deg

考虑先写个暴力 \(O(n2^m)\) 的输出一下结果,看一下 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);
    }
}

标签:Neighbors,int,题解,rep,Balanced,fi,se,deg
From: https://www.cnblogs.com/SkyMaths/p/18551001

相关文章

  • 一些Leetcode关于双指针的简单题解
    26.删除有序数组中的重复项给你一个非严格递增排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。然后返回nums中唯一元素的个数。考虑nums的唯一元素的数量为k,你需要做以下事情确保......
  • [题解]AtCoder Beginner Contest 380(ABC380) A~F
    A-123233照题意统计即可。点击查看代码#include<bits/stdc++.h>usingnamespacestd;strings;map<char,int>ma;signedmain(){ cin>>s; for(chari:s)ma[i]++; if(ma['1']==1&&ma['2']==2&&ma['3']==3)co......
  • 【星航计划】2024.11 Div. 3 题解
    2024--星航计划--十一月份--基础算法A.分段每一段连续的\(1\)之间是独立的,我们只需要关心一段连续的1的结果。可以证明对于一段连续的\(1\),最优策略是将其划分成多个单独的\(1\)以及可能余下的连续两个\(1\)。对于\(k\)个连续的\(1\),如果\(k\)是奇数,......
  • 【学校训练记录】11月个人训练赛4个人题解
    A题意可以理解为在a,b的范围内如果一个数是某个整数的立方,求与其距离为k的范围内有几个整数的平方数,我们可以对于每个立方数求出其数量,注意边界问题#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;inta,b,k;voidsolve(){ cin>>a>>b>>k; in......
  • 【未完结】 AtCoder Beginner Contest 380 题解
    AtCoderBeginnerContest380Rated:\(770\)A-123233简单模拟B-HurdleParsing字符串模拟C-MoveSegment找到第\(k\)个块的下标,模拟。D-StrangeMirroringE-1DBucketToolF-ExchangeGameG-AnotherShuffleWindow......
  • CF603E Pastoral Oddities 题解
    Description给定一张\(n\)个点的无向图,初始没有边。依次加入\(m\)条带权的边,每次加入后询问是否存在一个边集,满足每个点的度数均为奇数。若存在,则还需要最小化边集中的最大边权。\(n\le10^5\),\(m\le3\times10^5\)。Solution考虑给定一个图,怎么判断这个图存在一个......
  • 2021 Hubei Provincial Collegiate Programming Contest/2021湖北省赛 题解
    按解决顺序排列目录FAIDHECKJGBF二分答案ans,放最小的前ans个bi(变成必须放完)因为bi=2^k,所以小的放了可能会拆散大的空间,大的把小的地方占了的话小的可以塞其他地方,所以先放大的然后暴力能放则放,最多log次指针回到开头所以一次求解O(nlogn),总复杂度log^2A模拟,暴力枚举暴力异......
  • ABC380题解(F&G)
    ABC380F.ExchangeGame因为\(n+m+k\leq12\),考虑状压dp,设\(f(x,s1,s2,s3)\)表示先手,后手,桌子上的牌分别是哪一些,这有\(O(3^n)\)种状态。然后只要枚举出哪一张即可,有\(f(s1,s2,s3)\tof(s2,s1-i+j,s3+i-j)(i\ins1,j\ins3,a_j<a_i)\)\(f(s1,s2,s3)\tof(s2,s1-i,s3+i......
  • 2024ICPC南京部分题解
    LeftShifting3题面:给定一个长度为\(n\)的字符串\(S=s_0s_1\cdotss_{n-1}\),你可以将\(S\)向左移动最多\(k\)次(包括零次)。计算在操作后字符串中包含的“nanjing”子字符串的最大数量。更正式地说,让\(f(S,d)\)成为将\(S\)向左移动\(d\)次得到的字符串。也就是......
  • NOIP集训 P4137 Rmq Problem / mex 题解
    前置指使:可持久化线段树题解:P4137RmqProblem/mex有一个长度为\(n\)的数组\(\{a_1,a_2,...,a_n\}\)。\(m\)次询问,每次询问一个区间内最小没有出现过的自然数。Input第一行,两个正整数\(n,m\)。第二行,\(n\)个非负整数\(a_1,a_2,...,a_n\)。接下来\(m\)行,每......