青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-72  評論-126  文章-0  trackbacks-0
http://acm.hdu.edu.cn/showproblem.php?pid=2678     Dota打怪
http://acm.hdu.edu.cn/showproblem.php?pid=1107     模擬RPG打戰
http://acm.hdu.edu.cn/showproblem.php?pid=2414     棋盤棋子移動
http://acm.hdu.edu.cn/showproblem.php?pid=2258     連連游戲
http://acm.hdu.edu.cn/showproblem.php?pid=2240     飛行棋


http://acm.hdu.edu.cn/showproblem.php?pid=1691
   下象棋
要考慮好多好多東西阿

#include<stdio.h>
#include
<stdlib.h>

int map[11][11];
int kingx,kingy;


bool see()//能見到對方的王
{
    
int i;
    
for(i=kingx-1;i>=0;i--)
        
if(map[i][kingy])
            
break;
    
if(i==-1 || map[i][kingy]!=8)
        
return false;
    
return true;
}


bool King(int a,int b,int c,int d)
{
    
int dis;
    dis 
= abs(a-c) + abs(b-d);
    
if(dis!=1)
        
return false;//只能一動一格


    
if(map[a][b]==8 && (d<4 || d>6 || c<1 || c>3))
        
return false;
    
if(map[a][b]==1 && (d<4 || d>6 || c<8 || c>10))
        
return false;//不能移出九宮格


    map[c][d] 
= map[a][b];
    map[a][b] 
= 0;
    
if(map[c][d]==1)
    {
        kingx 
= c;
        kingy 
= d;
    }
    
if(see())
        
return false;
    
return true;
}


bool Mandarin(int a,int b,int c,int d)
{
    
int disa,disb;
    disa 
= abs(a-c);
    disb 
= abs(b-d);
    
if(disa!=1 || disb!=1)//只能斜向移動一個
        return false;
    
if(map[a][b]==9 && (d<4 || d>6 || c<1 || c>3))
        
return false;
    
if(map[a][b]==2 && (d<4 || d>6 || c<8 || c>10))//只能在九宮格
        return false;
    map[c][d] 
= map[a][b];
    map[a][b] 
= 0;
    
if(see())
        
return false;
    
return true;
}


bool Elephant(int a,int b,int c,int d)
{
    
int disa,disb,x,y;
    disa 
= abs(a-c);
    disb 
= abs(b-d);
    
if(disa!=2 || disb!=2)//只能斜向移動兩個
        return false;
    
if(map[a][b]==10 && !(((c==1 || c==5)&& (d==3 || d==7)) || (c==3 && (d==1 || d==5 || d==9))))
        
return false;
    
if(map[a][b]==3 && !(((c==6 || c==10)&& (d==3 || d==7)) || (c==8 && (d==1 || d==5 || d==9))))//只能在這幾個位子
        return false;
    x 
= (a+c)/2;
    y 
= (b+d)/2;
    
if(map[x][y])
        
return false;//象腳
    map[c][d] = map[a][b];
    map[a][b] 
= 0;
    
if(see())
        
return false;
    
return true;
}


bool Knight(int a,int b,int c,int d)
{
    
int dir[][2]={{1,2},{1,-2},{-1,2},{-1,-2},{2,1},{2,-1},{-2,1},{-2,-1}};
    
int majiao[][2]={{0,1},{0,-1},{0,1},{0,-1},{1,0},{1,0},{-1,0},{-1,0}};
    
int i;
    
for(i=0;i<8;i++)
    {
        
if(a+dir[i][0]==&& b+dir[i][1]==d)
        {
            
if(map[ a+majiao[i][0] ][ b+majiao[i][1] ])//馬腳
                return false;
            
break;
        }
    }
    
if(i==8)
        
return false;
    map[c][d] 
= map[a][b];
    map[a][b] 
= 0;
    
if(see())
        
return false;
    
return true;
}


bool Rook(int a,int b,int c,int d)
{
    
int i;
    map[c][d] 
= map[a][b];
    map[a][b] 
= 0;
    
if(a==c)//橫向移動
    {
        
if(b>d)
            b
^=d^=b^=d;
        
for(i=b+1;i<d;i++)
            
if(map[a][i])//中間不能有其他棋子
                break;
        
if(i!=d)
            
return false;
        
if(see())
            
return false;
        
return true;
    }
    
else if(b==d)
    {
        
if(a>c)
            a
^=c^=a^=c;
        
for(i=a+1;i<c;i++)
            
if(map[i][b])
                
break;
        
if(i!=c)
            
return false;
        
if(see())
            
return false;
        
return true;
    }
    
else
        
return false;
}


bool Cannons(int a,int b,int c,int d)
{
    
int i,cnt=0;
    
int k = map[c][d];
    map[c][d] 
= map[a][b];
    map[a][b] 
= 0;
    
if(a==c)
    {
        
if(b>d)
            b
^=d^=b^=d;
        
for(i=b+1;i<d;i++)
            
if(map[a][i])
                cnt 
++;
        
if(k==0 && cnt || k && cnt!=1)//吃子中間要有一個,移動的話中間沒有
            return false;
        
if(see())
            
return false;
        
return true;
    }
    
else if(b==d)
    {
        
if(a>c)
            a
^=c^=a^=c;
        
for(i=a+1;i<c;i++)
            
if(map[i][b])
                cnt 
++;
        
if(k==0 &&cnt || k && cnt!=1)
            
return false;
        
if(see())
            
return false;
        
return true;
    }
    
else
        
return false;
}


bool Pawns(int a,int b,int c,int d)
{
    
int dis;
    dis 
= abs(a-c) + abs(b-d);
    
if(dis!=1)
        
return false;
    
int k = map[a][b];
    map[c][d] 
= map[a][b];
    map[a][b] 
= 0;
    
if(k==14)
    {
        
if(a<6 && (a>|| d!=b) || a>c)//過河前不能左右移動,且不能退后
            return false;
    }
    
else
    {
        
if(a>5 && (a<|| b!=d) || a<c)
            
return false;
    }
    
if(see())
        
return false;
    
return true;
}


bool move(int a,int b,int c,int d,int turn)
{
    
if(map[a][b]<=turn*7 || map[a][b]>turn*7+7)
        
return false;
    
if(map[a][b]==1 || map[a][b]==8)
        
return King(a,b,c,d);
    
else if(map[a][b]==2 || map[a][b]==9)
        
return Mandarin(a,b,c,d);
    
else if(map[a][b]==3 || map[a][b]==10)
        
return Elephant(a,b,c,d);
    
else if(map[a][b]==4 || map[a][b]==11)
        
return Knight(a,b,c,d);
    
else if(map[a][b]==5 || map[a][b]==12)
        
return Rook(a,b,c,d);
    
else if(map[a][b]==6 || map[a][b]==13)
        
return Cannons(a,b,c,d);
    
else
        
return Pawns(a,b,c,d);
}


bool same(int x,int y)//吃到自己的棋子
{
    
if(x==0)
        
return false;
    
if(y==0)
        
return true;
    
if(0<x&&x<8&&0<y&&y<8 || 7<x&&x<15&&7<y&&y<15)
        
return false;
    
return true;
}


int main()
{
    
int T,n,i,j,turn,ill,K=1;
    scanf(
"%d",&T);
    
while(T--)
    {
        
for(i=1;i<=10;i++)
            
for(j=1;j<=9;j++)
            {
                scanf(
"%d",&map[i][j]);
                
if(map[i][j]==1)
                {
                    kingx 
= i;
                    kingy 
= j;
                }
            }
        scanf(
"%d%d",&n,&turn);//1 big      0 small
        ill = 0;
        
for(i=1;i<=n;i++)
        {
            
int a,b,c,d;
            scanf(
"%d%d%d%d",&a,&b,&c,&d);
            
if(!ill)
            {
                
if(a<=0 || a>10 || c<=0 || c>10 || b<=0 || b>9 || d<=0 || d>9)//出界
                    ill = i;
                
if(i!=&& (map[c][d]==1 || map[c][d]==8))//吃王
                    ill = i+1;
                
if(!same(map[a][b],map[c][d]) || !move(a,b,c,d,turn))//吃到自己棋子        非法移動
                    ill = i;
                turn 
^= 1;
            }
        }
        printf(
"Case %d: ",K++);
        
if(ill)
            printf(
"Illegal move on step %d\n",ill);
        
else
            puts(
"Legal move");
    }
    
return 0;
}



http://acm.hdu.edu.cn/showproblem.php?pid=2678     Dota打怪
http://acm.hdu.edu.cn/showproblem.php?pid=1107     模擬RPG打戰
http://acm.hdu.edu.cn/showproblem.php?pid=2414     棋盤棋子移動
http://acm.hdu.edu.cn/showproblem.php?pid=2258     連連游戲
http://acm.hdu.edu.cn/showproblem.php?pid=2240     飛行棋
posted on 2009-03-19 14:18 shǎ崽 閱讀(456) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            夜夜嗨av一区二区三区| 久久综合影音| 久久一区精品| 欧美日韩国产bt| 欧美资源在线观看| 国产精品国产三级欧美二区| 久久国产欧美精品| 亚洲视频欧美视频| 国产精品一区免费在线观看| 久久久久久网址| 亚洲精品韩国| 久久成人人人人精品欧| 亚洲视频成人| 国产精品久久亚洲7777| 性欧美大战久久久久久久免费观看| 国产精品美女诱惑| 欧美专区亚洲专区| 亚洲国产精品第一区二区| 狠狠入ady亚洲精品经典电影| 欧美怡红院视频| 亚洲激情图片小说视频| 欧美亚洲免费在线| 欧美bbbxxxxx| 亚洲男人的天堂在线| 国产精品xxxav免费视频| 久久久综合网| 麻豆精品精品国产自在97香蕉| 亚洲高清免费| 久久永久免费| 亚洲高清激情| 久久影视三级福利片| 亚洲人成网在线播放| 亚洲国产91精品在线观看| 一区二区三区日韩欧美精品| 尤物在线精品| 日韩亚洲综合在线| 亚洲国产日韩欧美综合久久| 国产午夜精品久久久久久免费视| 激情小说另类小说亚洲欧美| 国产精品九九| 欧美精品尤物在线| 欧美xxxx在线观看| 欧美一区免费视频| 欧美在线观看日本一区| 麻豆久久久9性大片| 欧美一区二区三区免费大片| 欧美va天堂| 欧美日韩一级片在线观看| 欧美日韩美女| 欧美极品欧美精品欧美视频| 欧美无乱码久久久免费午夜一区 | 久久噜噜亚洲综合| 国产精品久久久久天堂| 国产精品色婷婷久久58| 亚洲激情视频在线| 亚洲欧美一区二区在线观看| 亚洲视频第一页| 亚洲欧美成人网| 日韩香蕉视频| 麻豆国产va免费精品高清在线| 国产三区二区一区久久| 午夜免费日韩视频| 在线中文字幕不卡| 免费一级欧美片在线播放| 国产日韩av在线播放| 在线亚洲高清视频| 欧美怡红院视频一区二区三区| 亚洲国产成人av| 欧美日本不卡视频| 激情欧美日韩一区| 蜜乳av另类精品一区二区| 夜夜精品视频| 欧美日韩一区精品| 午夜在线观看欧美| 亚洲日本欧美在线| 欧美—级a级欧美特级ar全黄| 国产精品第一区| 欧美在线三区| 久久精品五月| 一本色道久久综合亚洲精品不| 欧美成人精品h版在线观看| 欧美日韩高清在线播放| 亚洲一区二区在| 欧美成人精品在线播放| 国产欧美一区在线| 亚洲国产小视频在线观看| 欧美成人性生活| 亚洲日本在线观看| 91久久黄色| 裸体素人女欧美日韩| 亚洲欧美在线看| 久久久久久久久伊人| 亚洲国产精品一区二区第四页av | 午夜激情亚洲| 国产精品亚洲综合色区韩国| 久久婷婷一区| 91久久精品一区| 国产精品你懂的| 欧美成人一区二区| 久久一区二区三区四区| 亚洲欧美综合精品久久成人| 免费国产自线拍一欧美视频| 亚洲欧洲三级电影| 欧美成人精精品一区二区频| 欧美高清在线视频观看不卡| 亚洲欧洲精品一区二区三区| 在线亚洲美日韩| 亚洲国产精品一区制服丝袜| 欧美在线二区| 亚洲精品免费看| 嫩草影视亚洲| 亚洲综合色在线| 欧美色道久久88综合亚洲精品| 亚洲高清视频在线| 国产一区二区三区在线观看免费视频 | 99亚洲视频| 国产精品久久久久毛片大屁完整版 | 久久亚洲图片| 老**午夜毛片一区二区三区| 久久久久久久网| 激情久久五月| 欧美在线视频一区二区三区| 久久精品国产96久久久香蕉| 国产亚洲va综合人人澡精品| 久久国产色av| 久久精品国产精品| 亚洲一区二区三区在线视频| 国产精品美女久久久久久免费| 久久久国产视频91| 亚洲图片欧洲图片日韩av| 欧美国产第一页| 亚洲激情综合| 在线观看亚洲| 欧美黄色一区二区| 久久在线免费观看视频| 亚洲视频在线一区| 欧美激情一区二区三区在线视频 | 激情一区二区三区| 久久久亚洲人| 久久视频免费观看| 久久久久久一区二区| 亚洲一区3d动漫同人无遮挡| 国产精品女主播在线观看 | 欧美一级一区| 狠狠色丁香婷婷综合| 国产精品户外野外| 欧美亚洲一区二区三区| 亚洲国产日韩欧美综合久久| 久久国产视频网| 亚洲大黄网站| 国产亚洲精品aa午夜观看| 欧美黄色小视频| 欧美精品综合| 欧美日韩国产美| 国产精品久久亚洲7777| 国内揄拍国内精品少妇国语| 欧美激情久久久久久| 欧美日韩一区在线| 极品尤物av久久免费看| 黄色av日韩| 夜夜嗨av一区二区三区四季av | 国产精品视频一二三| 欧美日韩在线不卡一区| 国产欧美日韩综合精品二区| 99精品福利视频| 久久大逼视频| 欧美国产日韩免费| 一区二区三区精密机械公司| 欧美多人爱爱视频网站| 国产日韩在线看| 欧美在线观看网站| 欧美在线一级视频| 亚洲第一精品影视| 久久午夜激情| 国产精品女人毛片| 欧美婷婷久久| 狠狠狠色丁香婷婷综合激情| 亚洲摸下面视频| 99国产精品视频免费观看一公开| 亚洲国产欧洲综合997久久| 这里只有精品在线播放| 欧美国产免费| 久久久久久久999精品视频| 久久综合中文| 一本大道久久a久久精二百| 中日韩男男gay无套| 久久婷婷国产综合精品青草| 欧美肥婆bbw| 欧美电影专区| 在线看片一区| 中国成人亚色综合网站| 国产精品成人免费视频| 亚洲欧美激情四射在线日| 91久久在线观看| 国产亚洲在线| 亚洲人永久免费| 欧美韩日视频| 新67194成人永久网站| 亚洲毛片在线观看| 在线免费高清一区二区三区|