两人方格取数

· · 个人记录

某蒟蒻看洛谷这么热闹,也来写本人第一篇博客
比较简单的动规题:
另外四维的动归也是比较少的

#include<bits/stdc++.h>  
using namespace std;   
int a[11][11];  
int b[11][11][11][11];  
int c1[5]={0,1,1,0,0};  
int c2[5]={0,0,0,1,1};  
int c3[5]={0,0,1,0,1};  
int c4[5]={0,1,0,1,0};  
main()  
{  
    int n;  
    cin>>n;  
    int aa,bb,cc;  
    while(cin>>aa>>bb>>cc)  
    if(aa&&bb&&cc)  
    a[aa][bb]=cc;  
    else    
    break;  
    for(int i2=1;i2<=n;i2++)    
    for(int j2=1;j2<=n;j2++)    
    for(int i1=1;i1<=n;i1++)    
    for(int j1=1;j1<=n;j1++)    
    {   
        int mm=0;   
        for(int k=1;k<=4;k++)   
        mm=max(mm,b[i1-c1[k]][i2-c2[k]][j1-c3[k]][j2-c4[k]]);   
        b[i1][i2][j1][j2]=mm+a[i1][i2]+a[j1][j2];   
        if(i1==j1&&i2==j2)  
        b[i1][i2][j1][j2]-=a[i1][i2];   
    }   
    cout<<b[n][n][n][n];    
}