題目無力了,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行,每行是一位學生的資料,從左向右依次是姓名,期末平均成績,班級評議成績,是否是學生幹部,是否是西部省份學生,以及發表的 數。姓名是由大小寫英文本母...