首页 > 其他分享 >AtCoder Beginner Contest 327 (ABC327)

AtCoder Beginner Contest 327 (ABC327)

时间:2023-11-07 16:59:48浏览次数:35  
标签:AtCoder Code 数字 矩阵 ABC327 判断 327 序列 每个

A. ab

直接根据题意模拟即可。
Code

B. A^A

直接枚举 \(i= 1, 2,\dots, 15\),每次看看 \(i ^ i\) 是否等于 \(A\) 即可。
Code

C. Number Place

Description

给你一个 \(9 \times 9\) 的矩阵 \(A\),判断是否合法,满足以下三个条件,即为合法。

  • 对于每一行,包含数字 \(1 \sim 9\);
  • 对于每一列,包含数字 \(1 \sim 9\);
  • 将矩阵 \(A\) 从上到下分成三组,每组三行三列。这样会分成 \(9\) 个 \(3 \times 3\) 的矩阵,每个矩阵也必须包含 \(1 \sim 9\) 的每个数字。

Solution

直接根据题意模拟即可。

每一行每一列不能出现同样的数字,很好判断。用 \(cntx\) 数组记录每一样每一个数字出现的次数;用 \(cnty\) 数组记录每一列每个数字出现的次数。

最后判断 \(cntx_i\) 和 \(cnty_i\) 是否都 \(= 1\) 即可。

再处理第三种情况,将矩阵分成 \(9\) 个 \(3 \times 3\) 的矩阵。这种情况我们可以分别枚举行的起点和列的起点,每次再从起点循环,就能取出每个小矩阵。

然后再用 \(cnt\) 数组记录出每个数字出现的次数,最后判断。

Code

D. Good Tuple Problem

Description

给你两个长度为 \(M\) 的序列 \(A\) 和 \(B\),满足以下条件时成为他们是“好的序列”。

  • 存在一个长度为 \(N\) 的序列 \(X\),只由 \(0\) 和 \(1\) 组成,满足以下条件:
    • 对于每个 \(i = 1,2,\dots M\),\(X_{A_i} \neq X_{B_i}\)。

现在,请你判断序列 \((A,B)\) 是否是“好的序列”。

Solution

这道题非常经典,是一个二分图板子。

使用 DFS 判断是否是二分图。

维护数组 \(f\) 来记录当前的状态:

  • \(f_v = -1\) 表示当前结点 \(v\) 还未被访问。
  • \(f_v = 0/1\) 表示该顶点上写的是 \(0/1\)。

对于每个 \(v = 1,2, \dots ,M\),执行以下操作:

  • 如果 \(f_v \neq -1\),表示已经访问了节点 \(v\),直接 continue
  • 如果 \(f_v = -1\),说明当前的联通块还没有被访问过。执行 DFS,从这个节点开始 DFS,执行二分图黑白染色。

最后判断这张图是否是二分图,输出答案即可。

Code

其他的不会。

标签:AtCoder,Code,数字,矩阵,ABC327,判断,327,序列,每个
From: https://www.cnblogs.com/yhx0322/p/17815351.html

相关文章

  • AtCoder Beginner Contest(abc) 319
    B-Measure难度:⭐题目大意给定一个数N,我们要求输出长度为n+1的一个序列Si(i从0到n),对于Si,如果存在j(j从1~9)是N的一个除数,并且i是N/j的一个倍数,那么Si就是满足条件的最小的j,如果没存在就输出'-';解题思路数据不大,暴力即可;神秘代码#include<bits/st......
  • AtCoder Beginner Contest 327
    A-ab题意:判断字符串中是否有“ab”或者是“ba“#include<bits/stdc++.h>usingnamespacestd;voidsolve(){ intn; cin>>n;strings; cin>>s; if(s.find("ab")!=s.npos||s.find("ba")!=s.npos){ cout<<"Yes"; }else{......
  • [翻译]——How the MySQL Optimizer Calculates the Cost of a Query (Doc ID 1327497
    本文是对这篇文章HowtheMySQLOptimizerCalculatestheCostofaQuery(DocID1327497.1)的翻译,翻译如有不当的地方,敬请谅解,请尊重原创和翻译劳动成果,转载的时候请注明出处。谢谢!适用于:MySQL4.0及后续更高的版本本文档中的内容适用于任何平台。目标了解MySQL优化......
  • AtCoder Beginner Contest(abc) 318
    B-Overlappingsheets难度:⭐题目大意在一个坐标系中给出覆盖多个矩形,问最后所有矩形覆盖的总面积是多少;解题思路坐标系的范围不大,标记后遍历即可;还是要注意给的是坐标系的点,计算的是边;神秘代码#include<bits/stdc++.h>#defineintlonglong#define......
  • AtCoder Beginner Contest(abc) 327
    B-A^A难度:⭐题目大意给出一个数n,问是否存在一个数m,使mm=n;解题思路因为n的数据范围很大,到1e18,经过打表可以发现,当m=16时就已经大于1e18了,因为数很多所以用了__int128,因为double会损失精度;神秘代码#include<bits/stdc++.h>#defineintlonglon......
  • 『AtCoder做题记录』I
    放假之后回机房第一天,后面洛谷永久封了,第一次尝试AT随便打打,先试试不知道那场比赛T1题面:InAtCodercity,therearefiveantennasstandinginastraightline.TheyarecalledAntenna\(A,B,C,D\)and\(E\)fromwesttoeast,andtheircoordinatesare\(a,b,c,......
  • abc327G
    很容易发现条件其实就是限制二分图。那么我们设\(F(n,m)\)表示\(n\)个点,\(m\)条边组成二分图的答案(非简单图)。那么答案可以发现是\(F(n,m)\cdot2^m\),\(2^m\)出自边的端点的两种顺序。现在来计算\(F(n,m)\)。我们这里的\(m\)很大,会达到\(1e9\)的级别,这时候很难用......
  • AtCoder Beginner Contest(abc) 317
    B-MissingNo.难度:⭐题目大意给定n个数,这n个数中最小值到最大值之间缺一个数,输出这个数;解题思路数据不大,暴力即可;神秘代码#include<bits/stdc++.h>#defineintlonglong#defineIOSios::sync_with_stdio(false),cin.tie(0),cout.tie(0)#defineendl......
  • 【杂题乱写】AtCoder-ARC115
    AtCoder-ARC115_FMigration*把问题转化成在某个限制\(mid\)下求初始局面和最终局面能到达的最小代价局面,如果相等则说明可达。比较局面的方式是比较权值,如果相等按字典序比较。对每个节点\(u\)求出权值比\(u\)小或权值与\(u\)相等且编号比\(u\)小的节点中,与\(u\)......
  • HHKB Programming Contest 2023(AtCoder Beginner Contest 327) 赛后总结
    HHKBProgrammingContest2023(AtCoderBeginnerContest327)赛后总结又没来得及写题解。。。赛时A-ab查找ab和ba,只要其中一者存在就行。#include<bits/stdc++.h>usingnamespacestd;intn;strings;intmain(){cin>>n>>s;cout<<(s.find("a......