Codeforces Round 962 (Div. 3) A - D详细题解(思路加代码Python,C++(垃圾灰名小白想写题解)

比赛链接

Dashboard - Codeforces Round 962 (Div. 3) - Codeforces

题目A

链接:

Problem - A - Codeforces

题目大意理解:

输入一个数字n,表示总共的腿的数量

农场只有鸡和牛

输出一个数字,表示最少有多少个动物

思路:

知道腿的数量,要使动物数量最少,那就假设全是牛,剩下的就是鸡

而且要么n能整除4,要么余数是2,那么答案就是(n + 2) / 4

代码(Python):

'''
要么n能整除4,要么余数是2,那么答案就是(n + 2) // 4
'''
def func(n: int) -> int:
    return (n + 2) // 4
 
def main():
    t = II()
    result = []
    '''
    输入一个数字n,表示总共的腿的数量
    农场只有鸡和牛
    输出一个数字,表示最少有多少个动物
    '''
    for _ in range(t):
        n = II()
        res = func(n)
        result.append(res)
    for res in result:
        print(res)
if __name__ == "__main__":
    main()

代码(C++):

#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>

using namespace std;

typedef long long ll;
/*
要么n能整除4,要么余数是2,那么答案就是(n + 2) / 4
*/
int func(int n) {
    return (n + 2) / 4;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int t;
    cin >> t;
    /*
    输入一个数字n,表示总共的腿的数量
    农场只有鸡和牛
    输出一个数字,表示最少有多少个动物
    */
    while (t--){
        int n;
        cin >> n;
        int res = func(n);
        cout << res << '\n';
    }
}

题目B

链接:

​​​​​​Problem - B - Codeforces

题目大意理解:

第一行输入两个数n, k表示矩阵宽度和缩减范围

下面n行输入矩阵

对于这个矩阵,缩减范围内的数字都是相同的,把缩减范围的数字变成一个

好吧,说的有点抽象,用例子理解就好了,题目中也给出了图帮助理解

比如输入

6 3

000111

000111

000111

111000

111000

111000

操作后:

01

10

输出操作后的矩阵

思路:

遍历矩阵,每次加k,遇到的数字是什么就加入新的矩阵中去即可

代码(Python):

from typing import List

def func(arr: List[List[int]], k: int) -> List[list[int]]:
    n = len(arr)
    res = []
    for i in range(0, n, k):
        #一行一行的计算
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值