比赛链接
Dashboard - Codeforces Round 962 (Div. 3) - Codeforces
题目A
链接:
题目大意理解:
输入一个数字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):
#一行一行的计算