无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

P1228_地毯填補(bǔ)問題-遞歸構(gòu)造應(yīng)用

2023-01-16 11:16 作者:信奧賽USACO鄭老師  | 我要投稿

#include<bits/stdc++.h>

using namespace std;


struct point{

int x,y;

};

//*****

//*1*2*

//*****

//*3*4*

//*****

//----->y

//|

//|

//x

int split(point bl, int n, point blank){

int dir=0;

if(blank.x<bl.x+n/2){

if(blank.y<bl.y+n/2){

dir=1;//blank cell in sec 1

}else{

dir=2;//sec 2

}

}else{

if(blank.y<bl.y+n/2){

dir=3;//sec 3

}else{

dir=4;//sec 4

}

}

switch(dir){

case 1://blank cell in sec 1

cout<<bl.x+n/2<<" "<<bl.y+n/2<<" "<<1<<endl;

if(n>2){//recusively

split({bl.x,bl.y},n/2,blank);//for sec 1

split({bl.x,bl.y+n/2},n/2,{bl.x+n/2-1,bl.y+n/2});//for sec 2

split({bl.x+n/2,bl.y},n/2,{bl.x+n/2,bl.y+n/2-1});//for sec 3

split({bl.x+n/2,bl.y+n/2},n/2,{bl.x+n/2,bl.y+n/2});//for sec 4

}

break;

case 2://blank cell in sec 2

cout<<bl.x+n/2<<" "<<bl.y+n/2-1<<" "<<2<<endl;

if(n>2){

split({bl.x,bl.y},n/2,{bl.x+n/2-1,bl.y+n/2-1});//for sec 1

split({bl.x,bl.y+n/2},n/2,blank);//for sec 2

split({bl.x+n/2,bl.y},n/2,{bl.x+n/2,bl.y+n/2-1});//for sec 3

split({bl.x+n/2,bl.y+n/2},n/2,{bl.x+n/2,bl.y+n/2});//for sec 4

}

break;

case 3://blank cell in sec 3

cout<<bl.x+n/2-1<<" "<<bl.y+n/2<<" "<<3<<endl;

if(n>2){

split({bl.x,bl.y},n/2,{bl.x+n/2-1,bl.y+n/2-1});//for sec 1

split({bl.x,bl.y+n/2},n/2,{bl.x+n/2-1,bl.y+n/2});//for sec 2

split({bl.x+n/2,bl.y},n/2,blank);//for sec 3

split({bl.x+n/2,bl.y+n/2},n/2,{bl.x+n/2,bl.y+n/2});//for sec 4

}

break;

case 4://blank cell in sec 4

cout<<bl.x+n/2-1<<" "<<bl.y+n/2-1<<" "<<4<<endl;

if(n>2){

split({bl.x,bl.y},n/2,{bl.x+n/2-1,bl.y+n/2-1});//for sec 1

split({bl.x,bl.y+n/2},n/2,{bl.x+n/2-1,bl.y+n/2});//for sec 2

split({bl.x+n/2,bl.y},n/2,{bl.x+n/2,bl.y+n/2-1});//for sec 3

split({bl.x+n/2,bl.y+n/2},n/2,blank);//for sec 4

}

break;

}

return 0;

}

int main(){

int k,x,y;

cin>>k;

cin>>x>>y;

int n=1;

n=n<<k;

split({1,1},n,{x,y});

return 0;

}


P1228_地毯填補(bǔ)問題-遞歸構(gòu)造應(yīng)用的評論 (共 條)

分享到微博請遵守國家法律
和田县| 阿鲁科尔沁旗| 沿河| 乌拉特前旗| 霍林郭勒市| 修武县| 浪卡子县| 乌鲁木齐市| 南城县| 阜宁县| 沈丘县| 嘉禾县| 汶上县| 上杭县| 阿克陶县| 新蔡县| 广丰县| 碌曲县| 铁岭县| 鹤岗市| 榆树市| 西峡县| 蒙自县| 凤山市| 靖州| 泾川县| 遵义县| 常德市| 广丰县| 开封市| 依兰县| 伊宁县| 宣恩县| 泽州县| 呈贡县| 兴仁县| 台州市| 中超| 陇南市| 枣庄市| 和田市|