关于本题的数据
查看原帖
关于本题的数据
1412938
piano_pei楼主2025/2/5 22:21

rt,我第一次写时打了一个暴力程序,理论复杂度O(n2×2n2)O(n^2×2^{n^2}),大概是O(1032)O(10^{32}),但是居然可以获得 84pts84pts这就是远古联考题的实力吗

附代码 :

#include <bits/stdc++.h>
using namespace std;
const int N = 10;
int dp[N][N], h[N*N][N*N], v[N*N], n, tot, ans = -1e9;
bool vis[N*N];
inline int Ans(int m)
{
	memset(dp, 0, sizeof(dp));
	for(int i = 1;i <= n;++i)
	{
		for(int j = 1;j <= n;++j)
		{
			dp[i][j] = max(dp[i-1][j], dp[i][j-1]);
			if(vis[h[i][j]] && m || !vis[h[i][j]] && !m)
				dp[i][j] += v[h[i][j]];
		}
	}
	return dp[n][n];
}
inline void dfs(int cur)
{
	ans = max(ans, Ans(0)+Ans(1));
	for(int i = cur;i <= tot;++i)
	{
		vis[i] = 1;
		dfs(i+1);
		vis[i] = 0;
	}
} 
int main()
{
	cin >> n;
	int x, y, z;
	cin >> x >> y >> z;
	while(x || y || z)
	{
		v[++tot] = z;
		h[x][y] = tot;
		cin >> x >> y >> z;
	}
	dfs(1);
	cout << ans;
	return 0;
}
2025/2/5 22:21
加载中...