1229_bfs.cpp
来自「n个石头(每相邻两个的距离是1米,最边上石头和岸的距离也是1米),礼物放在第m个」· C++ 代码 · 共 59 行
CPP
59 行
//n大于50就有解
/*
n个石头(每相邻两个的距离是1米,最边上石头和岸的距离也是1米),
礼物放在第m个石头上,青蛙第i次跳2*i-1米.问能否得到礼物.
(n>=49肯定能得到礼物,n<49,可以bfs或递归)
*/
#include <iostream.h>
long n,m;
int flag;
void dfs(int current,int depth){
if(flag)return;
if(current<=0||current>n)return;
if(current==m){
flag=1;
return;
}
dfs(current+(2*depth-1),depth+1);
dfs(current-(2*depth-1),depth+1);
}
int main(){
do{
cin>>n;
if(!n)break;
flag=0;
cin>>m;
if(n>=49) flag=1;
else{
dfs(1,2);
}
if(flag) cout<<"Let me try!"<<endl;
else cout<<"Don't make fun of me!"<<endl;
}while(1);
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?