有关今天写的题目,和明天
~~今天写的题目不多
1.
主要是是因为HHUOJ,下班太早了 (偷懒)
2.
这是错误的DFS代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,m,sx,sy,ans,T;
bool vis[10][10]={0};
char dt[10][10];
bool to_go(ss,int n,int m){
}
int dir[4][2]={{0,1},{1,0},{0,-1},{0,1}};
void bfs(int x,int y){
int tx,ty;
for(int k=0;k<4;k++){
tx=x+dir[k][0];
ty=y+dir[k][1];
if(to_go(tx,ty,n,m)){
ans++;
printf("%d %d %d\n",tx,ty,ans);
vis[tx][ty]=1;
dfs(tx,ty);
}
vis[tx][ty]=0;
}
return ;
}
int main(){
while(~scanf("%d%d",&n,&m)){
for(int i=0;i<m;i++){
scanf("%s",dt[i]);
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(dt[i][j]=='@'){
sx=i;
sy=j;
}
}
}
dfs(sx,sy);
printf("%d\n",ans);
memset(vis,0,sizeof(vis));
}
return 0;
}
这是正确的
#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct State{//搜索.
int x,y;
int step;
}state[420];
int n,m,ans=1;
bool vis[25][25]={0};
char dt[25][25];
bool to_go(State s,int n,int m){
if(s.x>=1&&s.x<=m&&s.y>0&&s.y<=n&&vis[s.x][s.y]==0&&(dt[s.x][s.y]=='.'||dt[s.x][s.y]=='@'))
return 1;
else
return 0;
}
int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int bfs(State st){
queue<State>q;
State next,now;
q.push(st);
vis[st.x][st.y]=1;
while(!q.empty()){
now=q.front();
// printf("当前搜索的点(%d,%d) %c %d\n",now.x,now.y,dt[now.x][now.y],ans);
for(int k=0;k<4;k++){
next.x=now.x+dir[k][0];
next.y=now.y+dir[k][1];
if(to_go(next,n,m)){
ans++;
q.push(next);
vis[next.x][next.y]=1;
// printf("被放入队列的点(%d,%d) %c %d\n",next.x,next.y,dt[next.x][next.y],ans);
}
}
// puts("");
q.pop();
}
return ans;
}
int main(){
while(~scanf("%d%d",&n,&m),n+m){
State St;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
//scanf("%c",&x);//printf("%c",x);
cin>>dt[i][j];
if(dt[i][j]=='@'){
St.x=i;
St.y=j;
// cout<<"找到了起点"<<endl;
// cout<<i<<" "<<j<<endl;
}
}
}
printf("%d\n",bfs(St));
ans=1;
memset(vis,0,sizeof(vis));
}
return 0;
}
今天写了一题搜索,写了挺久的,前期写dfs,后来发现dfs不可做.
HHUOJ 红与黑,出看题目以为是红黑树??见识浅陋(逃
dfs,标记取消后,居然不往,下一个方向测试,有点明明奇妙
意外暴露DFS不熟,明天再写写相关的题目.
还有个问题就是,是为写地图类型的搜索,查找之类的无从下手.
万物皆可搜索? (直接洛)
3.
明天写搜索的题目,再看看dp相关的.(仅限于看看吧,dp好难啊).
PS:图论也好难.
PS*2: 树…
4.
第二次MarkDown,感觉还是不好用啊.
方法说明 | 颜色名称 | 颜色 |
---|---|---|
此处实现方法利用 优快云-markdown 内嵌 html 语言的优势 | Hotpink | rgb(240, 248, 255) |
借助 table, tr, td 等表格标签的 bgcolor 属性实现背景色设置 | AntiqueWhite | rgb(255, 192, 203) |
我是黑体字
我是微软雅黑
我是华文彩云
我是红色
我是绿色
我是蓝色
我是尺寸
我是黑体,绿色,尺寸为5
2019-2-10