另类解法,70分求助
查看原帖
另类解法,70分求助
1102460
fruian楼主2023/12/3 22:27

不清楚是哪里的问题.

8,9,10题都是read 6,except 4.

想不出是哪里的问题,求大佬帮帮QAQ

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <cmath>
using namespace std;

int num1[101][101] = { 0 };
int num2[505] = { 0 };//存储对于每个元素,满足条件时,矩阵需要减1的次数

int qiuhe(int x0, int y0, int n, int m)//元素所在行和列之和减该元素
{
	int sum = 0;
	for (int i = 1; i <= n; i++)
	{
		sum += num1[i][y0];
	}
	for (int i = 1; i <= m; i++)
	{
		sum += num1[x0][i];
	}
	sum -= num1[x0][y0];
	return sum;
}

int quzheng(int num, int yushu)//向上取整
{
	int shang = num / yushu;
	if (num % yushu > 0)
	{
		shang++;
	}
	return shang;
}

int main(void)
{
	int n, m;
	cin >> n >> m;
	int k;
	cin >> k;
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= m; j++)
		{
			cin >> num1[i][j];//输入矩阵
		}
	}
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= m; j++)
		{
			int shuzi1 = qiuhe(i, j, n, m);//元素所在行列求和后减去元素本身的值
			int shuzi2 = quzheng(shuzi1, m + n - 1);//shuzi1除以(m+n-1)后向上取整
			num2[shuzi2]++;
		}
	}
	int sum = 0;
	for (int i = 0;; i++)
	{
		sum += num2[i];
		if (k <= sum)
		{
			cout << i;
			return 0;
		}
	}
}
2023/12/3 22:27
加载中...