UVa 1589(HDU 4121)

这两天UVa一直抽风。。。逼的我只能去HDU交了。。

这破题做了一整天     

结论就是坑爹水题纯模拟

最后wa了十来次逼的我去网上找正确代码对拍。。。结果发现数组下标写错了。。。唉

功力不行啊。。。写的太长。。。也没啥心情简化了。。。就这样吧


#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define ll long long
using namespace std;

int dir[4][2]={
    {0,-1},{-1,0},{1,0},{0,1}
};
int hx[] = { -2, -1, -2, -1, 1, 2, 1, 2};
int hy[] = { -1, -2, 1, 2, -2, -1, 2, 1};
int dx[] = { -1, -1, -1, -1, 1, 1, 1, 1};
int dy[] = { -1, -1, 1, 1, -1, -1, 1, 1};
int check(int x,int y)
{
    if(x>=1&&x<=3&&y>=4&&y<=6)
        return 1;
    else
        return 0;
}
int n,x,y;
int board[15][15];
int cr[2], cc[2];

bool ju(int tx,int ty,int x,int y)///tx,ty是将的位置,x,y是红方棋子的位置
{
    if((tx==x&&ty==y)||(tx!=x&&ty!=y))
        return 1;
    else if(tx==x)
    {
        int i,flag=1;
        for(i=min(ty,y)+1;i10||tty<1||tty>9) continue;
        if(board[ttx][tty]==2&&(!board[x+dx[i]][y+dy[i]]))
            return 0;
    }
    return 1;
}
bool jiang(int tx,int ty,int x,int y)
{
    if(ty==y)
    {
        int flag=1;
        for(int i=tx+1;i=4)
            printf("YES\n");
        else
            printf("NO\n");
    }
    return 0;
}


你可能感兴趣的:(acm)