前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >wing是什么_数独代码

wing是什么_数独代码

作者头像
全栈程序员站长
发布于 2022-09-22 06:58:34
发布于 2022-09-22 06:58:34
54300
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

原题链接 设有 N×N 的方格图,我们在其中的某些方格中填入正整数,而其它的方格中则放入数字0。如下图所示:

某人从图中的左上角 A 出发,可以向下行走,也可以向右行走,直到到达右下角的 B 点。

在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。

此人从 A 点到 B 点共走了两次,试找出两条这样的路径,使得取得的数字和为最大。

输入格式 第一行为一个整数N,表示 N×N 的方格图。

接下来的每行有三个整数,第一个为行号数,第二个为列号数,第三个为在该行、该列上所放的数。

行和列编号从 1 开始。

一行“0 0 0”表示结束。

输出格式 输出一个整数,表示两条路径上取得的最大的和。

数据范围 N≤10 输入样例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
8
2 3 13
2 6 6
3 5 7
4 4 14
5 2 21
5 6 4
6 3 15
7 2 14
0 0 0

输出样例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
67

题解 正着走一边和倒着走一边,等价于正着走两边。设f[i][j][k]:待变第一个走到(i,j)并且第二次走到(k,i+j-k)时最大值,状态转移方程为:有四个方向可以走到状态f[i][j][k]。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<bits/stdc++.h>
#include<cmath>
#define x first
#define y second
#define send string::npos
#define lowbit(x) (x&(-x))
#define left(x) x<<1
#define right(x) x<<1|1
using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
typedef struct Node * pnode;
const int N = 1e1 + 10;
const int M = 5e5 + 10;
const int INF = 0x3f3f3f3f;
const ll LINF = 0x3f3f3f3f3f3f3f3f;
const int Mod = 4e8;
int a[N][N];
int f[N][N][2 * N];
int main(){ 
   
    int n,x,y,w;
    cin>>n;
    while(cin>>x>>y>>w,!(x == 0 && y == 0 && w == 0)){ 
   
        a[x][y] = w;
    }
    for(int k = 2;k <= n;k ++)
        for(int i = 1;i <= n;i ++)
            for(int j = 1;j <= n;j ++){ 
   
                if(i + j - k <= n|| i + j - k >= 1){ 
   
// if(k - i <= 0)continue;
                    int v = a[i][j];
                    if(i != k)v += a[k][i + j - k];
                    f[i][j][k] = f[i - 1][j][k - 1];
                    f[i][j][k] = max(f[i][j][k],f[i][j - 1][k]);
                    f[i][j][k] = max(f[i][j][k],f[i - 1][j][k]);
                    f[i][j][k] = max(f[i][j][k],f[i][j - 1][k - 1]);
                    f[i][j][k] += v;
                }
            }

    cout<<f[n][n][n];
    return 0;
}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169174.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档