当前位置:网站首页>DP - [noip2000] grid access
DP - [noip2000] grid access
2022-04-23 14:13:00 【Stingy old Sao】
[NOIP2000] Take the number of squares
n^4
#include <bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
#define int long long
typedef long long LL;
typedef long long ll;
const int INF = 0x3f3f3f3f;
//const int inf = 1e18;
const int mod = 998244353;
//const int mod = 1e9 + 7;
int gcd(int a, int b) { return !b ? a : gcd(b, a % b); }
const int maxn = 1e2 + 10;
const int N = 6e6 + 100;
int dp[maxn][maxn][maxn][maxn];
int a[maxn][maxn];
int v[maxn];
void solve() {
int n;
cin >> n;
int x, y, w;
while ((cin >> x >> y >> w)&&!(x==0&&y==0&&w==0))a[x][y] = w;
dp[1][1][1][1] = a[1][1];
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
for (int k = 1; k <= n; k++)
for (int g = 1; g <= n; g++) {
// if (i + j != k + g) continue;
int ans = a[i][j] + a[k][g];
if (i == k && j == g) ans /=2;
dp[i][j][k][g] = max(dp[i][j][k][g], dp[i - 1][j][k - 1][g] + ans);
dp[i][j][k][g] = max(dp[i][j][k][g], dp[i][j - 1][k - 1][g] + ans);
dp[i][j][k][g] = max(dp[i][j][k][g], dp[i - 1][j][k][g - 1] + ans);
dp[i][j][k][g] = max(dp[i][j][k][g], dp[i][j - 1][k][g - 1] + ans);
// cout<<dp[i][j][k][g]<<endl;
}
cout << dp[n][n][n][n];
}
signed main() {
//ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int _ = 1;
// cin >> _;
while (_--) {
solve();//cout<<"\n";
}
return 0;
}
//12341
//14321
//
n^3
#include <bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
#define int long long
typedef long long LL;
typedef long long ll;
const int INF = 0x3f3f3f3f;
//const int inf = 1e18;
const int mod = 998244353;
//const int mod = 1e9 + 7;
int gcd(int a, int b) { return !b ? a : gcd(b, a % b); }
const int maxn = 1e2 + 10;
const int N = 6e6 + 100;
int dp[maxn][maxn][maxn];
int a[maxn][maxn];
int v[maxn];
void solve() {
int n;
cin >> n;
int x, y, w;
while ((cin >> x >> y >> w)&&!(x==0&&y==0&&w==0))a[x][y] = w;
dp[2][1][1] = a[1][1];
for (int i = 2; i <= 2*n; i++)
for (int k = 1; k <= n; k++)
for (int g = 1; g <= n; g++) {
int x1=k,x2=g,y1=i-k,y2=i-g;
int ans=a[x1][y1]+a[x2][y2];
if(x1==x2&&y1==y2) ans/=2;
dp[i][k][g]= max(dp[i][k][g],ans+dp[i-1][x1-1][x2]);
dp[i][k][g]= max(dp[i][k][g],ans+dp[i-1][x1][x2-1]);
dp[i][k][g]= max(dp[i][k][g],ans+dp[i-1][x1][x2]);
dp[i][k][g]= max(dp[i][k][g],ans+dp[i-1][x1-1][x2-1]);
}
cout << dp[2*n][n][n];
}
signed main() {
//ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int _ = 1;
// cin >> _;
while (_--) {
solve();//cout<<"\n";
}
return 0;
}
//12341
//14321
//
Space n^2
#include <bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
#define int long long
typedef long long LL;
typedef long long ll;
const int INF = 0x3f3f3f3f;
//const int inf = 1e18;
const int mod = 998244353;
//const int mod = 1e9 + 7;
int gcd(int a, int b) { return !b ? a : gcd(b, a % b); }
const int maxn = 1e2 + 10;
const int N = 6e6 + 100;
int dp[maxn][maxn];
int a[maxn][maxn];
int v[maxn];
void solve() {
int n;
cin >> n;
int x, y, w;
while ((cin >> x >> y >> w)&&!(x==0&&y==0&&w==0))a[x][y] = w;
for (int i = 2; i <= 2*n; i++)
for (int k=i; k>0; k--)
for (int g=i; g>0; g--) {
int x1=k,x2=g,y1=i-k,y2=i-g;
int ans=a[x1][y1]+a[x2][y2];
if(x1==x2&&y1==y2) ans/=2;
dp[k][g]=max(max(dp[k-1][g],dp[k][g-1]),max(dp[k-1][g-1],dp[k][g]))+ans;
// cout<<dp[k][g]<<endl;
}
cout << dp[n][n];
}
signed main() {
//ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int _ = 1;
// cin >> _;
while (_--) {
solve();//cout<<"\n";
}
return 0;
}
//12341
//14321
//
版权声明
本文为[Stingy old Sao]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204231407093939.html
边栏推荐
猜你喜欢

Postman的安装使用及填坑心得

Operation instructions of star boundary automatic text translator (advanced version)

DeepinV20安装Mariadb
POI operation word template replaces data and exports word

帆软实现分页时第一行和最后两行冻结方式

Indoor and outdoor map switching (indoor three-point positioning based on ibeacons)

Wechat applet positioning and ranging through low-power Bluetooth device (2)

DDT+Excel进行接口测试

HyperBDR云容灾V3.3.0版本发布|容灾功能升级,资源组管理功能优化

某政务云项目业务系统迁移调研实践
随机推荐
redis数据库讲解(三)redis数据类型
帆软中使用if else 进行判断-使用标题条件进行判断
Multiple inheritance virtual base exercises
贷款市场报价利率(LPR)与贷款基准利率介绍
星界边境Starbound创意工坊订阅的mod的存放路径
Recyclerview advanced use (II) - simple implementation of vertical drag and drop sorting
回顾2021:如何帮助客户扫清上云最后一公里的障碍?
Logging module
帆软调用动态传参的方法,在标题中设置参数
openstack理论知识
Jmeter设置环境变量支持在任意终端目录输入jmeter直接启动
mysql 5.1升级到5.610
Mysql个人学习总结
DeepinV20安装Mariadb
RecyclerView高级使用(一)-侧滑删除的简单实现
HyperMotion云迁移完成阿里云专有云产品生态集成认证
RobotFramework 之 文件上传和下载
Cdh6 based on CM management 3.2 cluster integration atlas 2 one
Wechat applet communicates with esp8266 based on UDP protocol
关于Jmeter启动闪退问题