[牛客复盘] 牛客2022跨年场 20221212

一、本周周赛总结

  • 第一次打牛客,在群友的帮助下ak了,娱乐极了。
  • https://ac.nowcoder.com/acm/contest/49343在这里插入图片描述

在这里插入图片描述

二、 A 猜群名

1. 题目描述

2. 思路分析

  • 每个题面有一个加粗的字,拼成一句话,然后按顺序输出题号。
  • 分别是
题号
A!
BA
CK
D
E
F
G
H
  • 注意A题加粗的是叹号。
  • 组合成一句通顺的话: 跨年五百AK赛!
  • 题号分别是:EGHDBCFA

3. 代码实现

print('EGHDBCFA')

三、B 分赃

1. 题目描述

在这里插入图片描述

2. 思路分析

明明会,但wa了3次蚌埠住了。

  • 计数每个数字,然后对次数再计数记为c。
  • 分成三种频次 1次的,2次的,3次及以上的
  • 2次的显然对答案没有意义,因为一定可以各一个使相同。
  • 3次即以上的,可以对答案没有意义,一边0一边x个;或有意义,给一边1个,另一边一定x-1>=2
  • 1次的,如果是偶数就可以分;如果是奇数,从3次及以上的分一个出来即可。

3. 代码实现

# Problem: 分赃
# Contest: NowCoder
# URL: https://ac.nowcoder.com/acm/contest/49343/B
# Memory Limit: 524288 MB
# Time Limit: 2000 ms
#
# Powered by CP Editor (https://cpeditor.org)

import sys
import bisect
import random
import io, os
from bisect import *
from collections import *
from contextlib import redirect_stdout
from itertools import *
from math import sqrt, gcd, inf
from array import *
from functools import lru_cache
from types import GeneratorType
from heapq import *

RI = lambda: map(int, sys.stdin.buffer.readline().split())
RS = lambda: map(bytes.decode, sys.stdin.buffer.readline().strip().split())
RILST = lambda: list(RI())
DEBUG = lambda *x: sys.stderr.write(f'{str(x)}\n')

MOD = 10**9 + 7

def solve():
    n, = RI()
    a = RILST()

    c = Counter(a)
    c = Counter(c.values())
    if c[1] & 1 == 0:
        return print('YES')
    del c[1]
    del c[2]
    if c:
        return print('YES')
    print('NO')

if __name__ == '__main__':
    solve()

四、C 翻卡牌

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 不会做期望题,猜了个0
  • 结果对了!

3. 代码实现

print(0)

五、D ygg的分数运算

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 如果a==b,c中只能含有a作为因子,除尽判断是否是1即可
  • a!=b,c中只能含有a、b,分别除尽。

3. 代码实现

# Problem: ygg的分数运算
# Contest: NowCoder
# URL: https://ac.nowcoder.com/acm/contest/49343/D
# Memory Limit: 524288 MB
# Time Limit: 2000 ms
#
# Powered by CP Editor (https://cpeditor.org)

import sys
import bisect
import random
import io, os
from bisect import *
from collections import *
from contextlib import redirect_stdout
from itertools import *
from math import sqrt, gcd, inf
from array import *
from functools import lru_cache
from types import GeneratorType
from heapq import *

RI = lambda: map(int, sys.stdin.buffer.readline().split())
RS = lambda: map(bytes.decode, sys.stdin.buffer.readline().strip().split())
RILST = lambda: list(RI())
DEBUG = lambda *x: sys.stderr.write(f'{str(x)}\n')

MOD = 10 ** 9 + 7


def solve():
    a, b, c = RI()
    if a == b:
        while c % a == 0:
            c //= a
        if c == 1:
            return print('YES')
        return print('NO')

    p = c
    x = y = 0
    while p % a == 0:
        p //= a
        x += 1
    while p % b == 0:
        p //= b
        y += 1
    if p == 1:
        return print('YES')
    print('NO')


if __name__ == '__main__':
    solve()

六、E 摇色子

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 不会!

3. 代码实现

a = '114514'


def solve():
    x, = RI()
    print(f'3 {a[x - 1]}')


if __name__ == '__main__':
    solve()

七、F 回顾往昔

1. 题目描述

去翻b站。

2. 思路分析

  • 翻。

3. 代码实现

print("""【2021跨年赛讲题】兰子哥哥一万粉女装
2022-01-01 00:20:50
BV1ga411z7PM
""")

八、G 李哥跨年

1. 题目描述

翻日历。

2. 思路分析

  • 翻。

3. 代码实现

print(6)

九、H nana吃蛋糕

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 这是倒正经题,实际是存在贪心策略的。
  • 发现就是一笔画,必须从1练到n。
  • 当n奇数时,发现全部点都可以走完,直接返回求和s。
  • 当n为偶数时,发现可以走n^2-1个点,即找一个最小的点不走即可。
    • 但这里要注意,模拟了一下,发现i+j是偶数的点必须走,因此只能找i+j奇数的点求最小值。

3. 代码实现

# Problem: nana吃蛋糕
# Contest: NowCoder
# URL: https://ac.nowcoder.com/acm/contest/49343/H
# Memory Limit: 524288 MB
# Time Limit: 2000 ms
#
# Powered by CP Editor (https://cpeditor.org)

import sys
import bisect
import random
import io, os
from bisect import *
from collections import *
from contextlib import redirect_stdout
from itertools import *
from math import sqrt, gcd, inf
from array import *
from functools import lru_cache
from types import GeneratorType
from heapq import *

RI = lambda: map(int, sys.stdin.buffer.readline().split())
RS = lambda: map(bytes.decode, sys.stdin.buffer.readline().strip().split())
RILST = lambda: list(RI())
DEBUG = lambda *x: sys.stderr.write(f'{str(x)}\n')

MOD = 10 ** 9 + 7


def solve():
    n, = RI()
    g = []
    s = 0
    for _ in range(n):
        g.append(RILST())
        s += sum(g[-1])
    if n & 1:
        return print(s)

    mn = inf
    for i in range(n):
        for j in range(n):
            if (i + j) & 1:
                mn = min(mn, g[i][j])
    print(s - mn)


if __name__ == '__main__':
    solve()

六、参考链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值