不知道一套试卷两种语言,可不可以,有知道都小伙伴求解答~
1. 可能捡最大数
int main() { int n, m; cin >> n >> m; vector<vector<int>> num(n, vector<int>(m, 0)); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> num[i][j]; } } vector<vector<int>> dp(n, vector<int>(m, 0)); int sum = 0; for (int i = 0; i < n; i++) { sum += num[i][0]; dp[i][0] = sum; } sum = 0; for (int i = 0; i < m; i++) { sum += num[0][i]; dp[0][i] = sum; } for (int i = 1; i < n; i++) { for (int j = 1; j < m; j++) { dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) + num[i][j]; } } cout << dp[n - 1][m - 1]; getchar(); return 0; }
2. NMS
def nms(bboxes, th): x1 = bboxes[:, 0] y1 = bboxes[:, 1] x2 = bboxes[:, 2] y2 = bboxes[:, 3] areas = (y2-y1+1) * (x2-x1+1) scores = bboxes[:, 4] keep = [] index = scores.argsort()[::-1] while index.size > 0: i = index[0] keep.append(i) x11 = np.maximum(x1[i], x1[index[1:]]) y11 = np.maximum(y1[i], y1[index[1:]]) x22 = np.minimum(x2[i], x2[index[1:]]) y22 = np.minimum(y2[i], y2[index[1:]]) w = np.maximum(0, x22-x11+1) h = np.maximum(0, y22-y11+1) ov = w*h ious = ov/(areas[i]+ areas[index[1:]] - ov) idx = np.where(ious <= th)[0] index = index[idx+1] return keep import numpy as np line = input() N, th = line.split('\n')[0].split(' ') N, th = int(N), float(th) bboxes = [] for i in range(N): line = input() x1, y1, x2, y2, score = line.split('\n')[0].split(' ') tmp = [float(x1), float(y1), float(x2), float(y2), float(score)] bboxes.append(tmp) bboxes = np.array(bboxes) keep = nms(bboxes, th) res = bboxes[keep] for i in range(len(res)): line = "" for j in res[i]: line += str(j) + " " print(line)
全部评论
(2) 回帖