关于 ABC G 的贪心
  • 板块学术版
  • 楼主Ryo_Yamada
  • 当前回复6
  • 已保存回复6
  • 发布时间2022/7/9 21:56
  • 上次更新2023/10/27 21:18:22
查看原帖
关于 ABC G 的贪心
242543
Ryo_Yamada楼主2022/7/9 21:56

O(nm)O(nm),不会证。能否来个证明或者 hack

感觉不太需要解释

int main() {
	qread(n, m);
	rep(i, 1, n) rep(j, 1, m) qread(a[i][j]);
	
	rep(i, 1, n) {
		ll sum = 0;
		rep(j, 1, m) sum += a[i][j];
		if(sum > 0) ans1 += sum, v[i] = 1; 
	}
	rep(i, 1, m) {
		ll sum = 0;
		rep(j, 1, n) if(v[j] && a[j][i] < 0) {
			sum = -1;
			break;
		}
		else if(!v[j]) sum += a[j][i];
		if(sum > 0) ans1 += sum;
	}
	
	memset(v, 0, sizeof v);
	
	rep(j, 1, m) {
		ll sum = 0;
		rep(i, 1, n) sum += a[i][j];
		if(sum > 0) ans2 += sum, v[j] = 1; 
	}
	rep(i, 1, n) {
		ll sum = 0;
		rep(j, 1, m) if(v[j] && a[i][j] < 0) {
			sum = -1;
			break;
		}
		else if(!v[j]) sum += a[i][j];
		if(sum > 0) ans2 += sum;
	}
	
	cout << max(ans1, ans2) << '\n';
	return 0;
}
2022/7/9 21:56
加载中...