我確定了一種思路,就是全域性考慮,把因為紅棋存在而黑棋不能存在的地方在全部標識為1,黑棋可以存在的地方為0,輸入黑棋位置後,確認是否有距離為0或1且可以存在的點,這樣就很好想了
講幾個需要注意的點
這是我在uva上的第乙個**,一開始不是很情願的來到這個專業,覺得自己還是可以學好的,有時候興趣還是不要發展為職業比較好,職業也可以被我很熱愛的呀。
#include
#include
#include
using namespace std;
int map[15]
[15],judgemap[15]
[15],map1[15]
[15],jm1[15]
[15];
int rednum,y,
x;void
check()
if(map[i]
[j]==
'c')
}for
(m=i+
1;m<=
10;m++)}
for(n=j+
1;n<=
9;n++)}
for(n=j-
1;n>=
1;n--)}
}if(map[i]
[j]==
'h')
if(i>=2&&
!map[i-1]
[j])if(
!map[i]
[j+1])
if(j>=2&&
!map[i]
[j-1])
}if(map[i]
[j]==
'g')}}
}void
getinfo()
//錄入資訊
}void
print()
//用於debug
}void
print1()
//用於debug
} int main()
}if(status)
break;}
memcpy
(map,map1,
sizeof
(map));
memcpy
(judgemap,jm1,
sizeof
(jm1));
if(status)
break;}
}if(status)
break;}
printf
("%s\n"
,!status?
"yes"
:"no");
/* print();
cout<}
return0;
}
謝謝大家!
第一次用markdown也不是很熟練
UVA 1589 象棋(模擬)
題目 傳送門 給出乙個象棋的殘局,下一步是黑棋走,判斷黑棋是不是被將死。思路 讀完這個題,知道是乙個模擬題,然後想到用兩個二維陣列來模擬棋盤,乙個 mp陣列 用來存殘局,乙個 res陣列 用來處理紅棋在棋盤上產生的對黑棋的限制。將紅棋的馬 車 炮 將寫成函式來分別處理。這樣處理完之後,判斷一下黑棋的...
UVA 1589 Xiangqi(挖坑待填)
題目無力了,noip考完心力憔悴,想隨便切道題卻碼了250line,而且還是錯的,知道自己 錯了,但特殊情況判起來太煩了,唯一選擇是重構,我卻沒有這勇氣。有空再寫吧,最近真的快瘋了。include int main else printf ac n n n return 0 include char...
UVa 11538 象棋中的皇后
題意 n m的棋盤,有多少種方法放置兩個相互攻擊的皇后?思路 這兩個皇后互相攻擊的方式只有3種,在同一行,在同一列,或在同一對角線。因為每種情況沒有交集,所以可以用加法原理。先考慮同一行,每一行都有 種放法,共有n行,所以就是n m m 1 列與行的情況是相同的。考慮對角線,如圖,從左到右對角線的長...