一周的总结
Posted 五菱宏光车神
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一周的总结相关的知识,希望对你有一定的参考价值。
一周的总结
1.学习结构体中的大小比较
来源:
acw中的奖学金的题目
目的:判断整体的排列
1.按总分
2.按语文
3.按学号
bool operator <(const node &a) const
例子:
```cpp
struct student
int id,sum,a,b,c;
bool operator <(const node &t)const
if(sum!= t.sum)
return sum>t.sum;
if(a != t.a)
return a>t.a;
if(id != t.id)
return id<t.id;
q[N];
2.dfs和bfs的问题;
1.什么是dfs;
深度优先;
2.什么是bfs;
广度优先;
/自己的实力还没有如此的厉害;
于是就先学的dfs;
也不是特别懂日后在补写一些;/
dfs的例题
1.oj上的
海洋问题
2.acm上的
棋盘的问题
、、其实我觉得叫N皇后更好,因为是八皇后的升级版。
先解八皇,问就是才做过一次。
```cpp
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int n,sum;
const int N = 15;
bool col[N], dg[N * 2], udg[N * 2];
int path[N],ans;
void dfs(int x)
if (x>n)
ans++;
if(ans<=3)
for(int i=1; i<=n; i++)
cout<<path[i]<<" ";
cout<<endl;
return;
for (int y = 1; y <= n; y ++)//开始放
if(!col[y] && !dg[x + y] && !udg[x - y + n])//判断他的列,他的该点对应的列、左斜对角线、右斜对角线都没有棋子,则可以放。
path[x] = y;
col[y] = dg[x + y] = udg[x - y + n] = true;//对应的列、左斜对角线、右斜对角线就棋子了
dfs(x + 1);
col[y] = dg[x + y] = udg[x - y + n] = false;//状态回滚
path[x] = 0;
int main()
cin>>n;
dfs(1);
cout<<ans;
return 0;
2.海洋问题
#include<bits/stdc++.h>
using namespace std;
int n;
char a[1010][1010]; //地图
int vis[1010][1010]=0; //标记是否搜过
int d[4][2] = 0,1, 0,-1, 1,0, -1,0; //四个方向
int flag; //用于标记这个岛中是否被完全淹没
void dfs(int x, int y)
vis[x][y] = 1; //标记这个'#'被搜过。注意为什么可以放在这里
if(a[x][y+1]=='#' && a[x][y-1]=='#' && a[x+1][y]=='#' && a[x-1][y]=='#')
flag = 1; //上下左右都是陆地,不会淹没
for(int i = 0; i < 4; i++) //继续DFS周围的陆地
int nx = x + d[i][0], ny = y + d[i][1];
//if(nx>=1 && nx<=n && ny>=1 && ny<=n && vis[nx][ny]==0 && a[nx][ny]=='#') //题目说边上都是水,所以不用这么写了
if(vis[nx][ny]==0 && a[nx][ny]=='#') //继续DFS未搜过的陆地,目的是标记它们
dfs(nx,ny);
int main()
cin >> n;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
cin >> a[i][j];
int ans = 0 ;
for(int i = 1; i <= n; i++) //DFS所有像素点
for(int j = 1; j <= n; j++)
if(a[i][j]=='#' && vis[i][j]==0)
flag = 0;
dfs(i,j);
if(flag == 0) //这个岛全部被淹
ans++; //统计岛的数量
cout<<ans<<endl;
return 0;
还未完全理解海洋的问题,日后回来补;
以上是关于一周的总结的主要内容,如果未能解决你的问题,请参考以下文章