UVA 1589 Xiangqi(挖坑待填)

2022-02-27 12:11:14 字數 3010 閱讀 7855

題目無力了,noip考完心力憔悴,想隨便切道題卻碼了250line,而且還是錯的,知道自己**錯了,但特殊情況判起來太煩了,唯一選擇是重構,我卻沒有這勇氣。

有空再寫吧,最近真的快瘋了。

#include int main()

else printf("ac\n\n\n");

} return 0;

}

#include char s[20]="chr";

int a[100][100];

bool iout(int x,int y)

int main()

l1: int x1=rand()%3+8,y1=rand()%3+4;

if(!a[x1][y1])

printf("g %d %d\n\n",x1,y1);

else goto l1;

} return 0;

}

#include #include #include #include using namespace std;

struct nodea[100];

int n,map[30][30];

bool up,down,left,right,g;

bool in9(int x,int y)

bool in(int x,int y)

int get(int x,int y)

bool nothob(int x,int y,int an,int bn)

return true;

}void jump(int k)//跳馬

} if(in(x-2,y-1))

} if(in(x+2,y-1))

} if(in(x-2,y+1))

} if(in(x-1,y+2))

} if(in(x-1,y-2))

} if(in(x+1,y+2))

} if(in(x+1,y-2))

} return;

}bool empty1(int k)

// printf("---------%d %d %d %d---------\n",t1,t1m,t2,t2m);

if((t1==1||(t1==2&&abs(a[t1m].x-a[0].x)==1&&in9(a[t1m].x,a[t1m].y)))||(t2==1||(t2==2&&abs(a[t2m].x-a[0].x)==1&&in9(a[t2m].x,a[t2m].y))))

if(!(t1==1&&abs(a[t1m].x-a[0].x)==1&&in9(a[t1m].x,a[t1m].y))||!(t2==1&&abs(a[t2m].x-a[0].x)==1&&in9(a[t2m].x,a[t2m].y)))

up=false,down=false;

if(t1==1&&abs(a[t1m].x-a[0].x)==1&&in9(a[t1m].x,a[t1m].y)) down=false;

} if(a[k].x==a[0].x)

// printf("---------%d %d %d %d---------\n",t1,t1m,t2,t2m);

if((t1==1||(t1==2&&abs(a[t1m].y-a[0].y)==1&&in9(a[t1m].x,a[t1m].y)))||(t2==1||(t2==2&&abs(a[t2m].y-a[0].y)==1&&in9(a[t2m].x,a[t2m].y))))

if(!(t1==1&&abs(a[t1m].y-a[0].y)==1&&in9(a[t1m].x,a[t1m].y))||!(t2==1&&abs(a[t2m].y-a[0].y)==1&&in9(a[t2m].x,a[t2m].y)))

left=false,right=false;

} if(abs(a[k].x-a[0].x)==1)

ax=0;

for(int i=y+1;i<=9;i++)

ax=0;

for(int i=y-1;i>=1;i--)

if(map[x+2][y+1]=='h'&&map[x+1][y]==0) return false;

if(map[x-2][y+1]=='h'&&map[x-1][y]==0) return false;

if(map[x+2][y-1]=='h'&&map[x+1][y]==0) return false;

if(map[x-2][y-1]=='h'&&map[x-1][y]==0) return false;

if(map[x-1][y-2]=='h'&&map[x][y-1]==0) return false;

if(map[x+1][y+2]=='h'&&map[x][y+1]==0) return false;

if(map[x-1][y+2]=='h'&&map[x][y+1]==0) return false;

if(map[x+1][y+2]=='h'&&map[x][y-1]==0) return false;

return true;

}int main()

// printf("begin--debug: up:%d down:%d left:%d right:%d\n\n\n",up,down,left,right);

for(int i=1;i<=n;i++)

a[0].x=a[mark].x;a[0].y=a[mark].y;

int flag=0; //if(g==false) flag=1;

/* if(!g&&!up&&!down&&!left&&!right)//map[x][y]='b';*/

/* for(int i=1;i<=10;i++)*/

// printf("flag %d g %d \n",flag,g);

if(up||down||left||right||flag==2) printf("no\n");

else printf("yes\n");

} return 0;

}

UVA 1589 象棋(模擬)

題目 傳送門 給出乙個象棋的殘局,下一步是黑棋走,判斷黑棋是不是被將死。思路 讀完這個題,知道是乙個模擬題,然後想到用兩個二維陣列來模擬棋盤,乙個 mp陣列 用來存殘局,乙個 res陣列 用來處理紅棋在棋盤上產生的對黑棋的限制。將紅棋的馬 車 炮 將寫成函式來分別處理。這樣處理完之後,判斷一下黑棋的...

UVA1589象棋 解題過程

我確定了一種思路,就是全域性考慮,把因為紅棋存在而黑棋不能存在的地方在全部標識為1,黑棋可以存在的地方為0,輸入黑棋位置後,確認是否有距離為0或1且可以存在的點,這樣就很好想了 講幾個需要注意的點 這是我在uva上的第乙個 一開始不是很情願的來到這個專業,覺得自己還是可以學好的,有時候興趣還是不要發...

1589 獎學金 (結構體)

時間限制 1 sec 記憶體限制 128 mb 提交 44 解決 28 提交 狀態 討論版 第一行是乙個整數n 1 n 10 表示學生的總數。接下來的n行,每行是一位學生的資料,從左向右依次是姓名,期末平均成績,班級評議成績,是否是學生幹部,是否是西部省份學生,以及發表的 數。姓名是由大小寫英文本母...