程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> wikioi 1043 雙向dfs

wikioi 1043 雙向dfs

編輯:C++入門知識

wikioi 1043 雙向dfs


思路:這題棋盤DP或者搜索,或者暴力都可以,因為棋盤比較小。

這裡用的雙向dfs。

#pragma comment(linker, "/STACK:1024000000,1024000000")
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define mem(a,b) memset(a,b,sizeof(a))
#define lson i<<1,l,mid
#define rson i<<1|1,mid+1,r
#define llson j<<1,l,mid
#define rrson j<<1|1,mid+1,r
#define INF 0x7fffffff
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
int n,a[10][11],Max;
void dfs2(int i,int j,int sum)
{
    if(i==1&&j==1) Max=max(Max,sum);
    else
    {
        if(i>1&&a[i-1][j]!=-1) dfs2(i-1,j,sum+a[i][j]);
        if(j>1&&a[i][j-1]!=-1) dfs2(i,j-1,sum+a[i][j]);
    }
}
void dfs1(int i,int j,int sum)
{
    if(i==n&&j==n) a[1][1]=0,dfs2(n,n,sum);
    else
    {
        int cnt=a[i][j];a[i][j]=-1;
        if(i

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved