zoukankan      html  css  js  c++  java
  • poj2068

    /***************************************************************\
     *Author:Hu Wenbiao
     *Created Time: Wed 01 Sep 2010 08:28:40 PM CST
     *File Name: main.cpp
     *Description:记忆化搜索
    \***************************************************************/
    //*========================*Head File*========================*\\
    
    #include<iostream>
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    /*----------------------*Global Variable*----------------------*/
    int n,S,M[22];
    int dp[22][1<<13];//dp[i][j]第i个人在剩余j个石子的情况下他们那组的胜负
    //*=======================*Main Program*=======================*//
    using namespace std;
    
    void dfs(int i,int s){
     if(s==1){
      dp[i][1]=0;//0是负,1是胜
      return;
     }
     int win=0;
     for(int k=min(M[i],s-1);k;k--){//貌似从大到小,快一些
      if(i==n){
       if(dp[1][s-k]==-1)
         dfs(1,s-k);
       if(!dp[1][s-k]){
        win=1;
        break;
       }
      }
      else{
       if(dp[i+1][s-k]==-1)
         dfs(i+1,s-k);
       if(!dp[i+1][s-k]){
        win=1;
        break;
       }
      }
     }
     dp[i][s]=win;
    }
    int main(){
     //freopen("input","r",stdin);
     while(scanf("%d%d",&n,&S)!=EOF&&n){
      n<<=1;
      memset(dp,-1,sizeof(dp));//-1是未处理的标记
      for(int i=1;i<=n;i++)
        scanf("%d",M+i);
      dfs(1,S);
      printf("%d\n",dp[1][S]);
     }
    }
    

  • 相关阅读:
    数值的整数次方
    Grid Sorting
    第K小的数
    图形学变换矩阵的分解
    神经网络理论简介(三)
    神经网络理论简介(二)
    神经网络理论简介(一)
    C/C++的内存对齐
    strcpy的实现
    C++对象模型简析
  • 原文地址:https://www.cnblogs.com/Open_Source/p/1904877.html
Copyright © 2011-2022 走看看