2021.6.7.

今天主要复习了不太熟的深度优先搜索

1.1博客学习

其实DFS就像走迷宫一样,当我们走到某个分岔口,由于不知道到底哪个是出口,所以我们只能随便选择一条路(编程时一般是按顺序从第一个开始遍历),当我们又碰到一个分岔口时,我们需要再进行选择,如果碰到死胡同,这时就需要我们原路返回到上一个分岔口,然后选择另一条路,如此往复,直到走出迷宫。

————————————————
版权声明:本文为CSDN博主「Ays_Freeer」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/LPL_hacker/article/details/76019856

1.2总结一下主要的知识点和相关内容

1.2.1关于深搜合“法”的定义如下

(1).必须在所给定的范围内

(2).这个点在本次搜索中没有访问过(也就是说,一个点在dfs的时候只能被访问一次,不能重复访问,因为如果访问过,就容易出现死循环)

1.2.2深搜通常写成递归的形式

还有很多,就不在这里一一呈现了,

今天差不多了,明天再巩固一下深度优先搜索

PS.今天高考首日,祝各位学长学姐们,高考加油,旗开得胜~

2021.6.8.

今天完成了洛谷P1029和P1618(作为热身)

这两道题不算很难,就是写起来比较费时间

下面切入今天的正题:

2.1复习八皇后

2.1.1先复习一下八皇后的规则

八皇后问题,是由国际西洋棋棋手马克斯·贝瑟尔于1848年提出的问题,是回溯算法的典型案例。

问题表述为:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。如果经过±90度、±180度旋转,和对角线对称变换的摆法看成一类,共有42类。计算机发明后,有多种计算机语言可以编程解决此问题

声明:本文来自百度百科

2.1.2下面来看看具体的解法(来自洛谷P1219题解)

对于八皇后问题我们可以把它转化为精确覆盖的问题:

  1. 每行只能放一个皇后
  2. 每列只能放一个皇后
  3. 每一个“/”斜行只能放一个皇后
  4. 每一个“\”斜行只能放一个皇后

我们把每个状态当成列,每个点当成一行 然后精确覆盖这个矩阵

注意:与模版不同的是我们只需保证每行每列完全覆盖而每一斜行是肯定不能完全覆盖的(因为一共2*n-1个斜行)

2.1.3最后把代码写两遍吧

<我的代码参照老师上课讲的代码完成>

# include <iostream>
# include <string.h>
# include <stdio.h>
# include <stdlib.h>
# include <algorithm>using namespace std;bool a[30] , b[30] , c[30] ;
int n , sum , d[30];void print()
{for (int i= 1;i<= n;i++) printf("%d " , d[i]) ;printf("\n") ;sum ++ ;
}void find (int i)
{if (i>n) if (sum<3) print() ; else sum ++ ;else {for (int j= 1;j<= n;j++) {if (a[j] and b[i+j] and c[i-j+n]) {a[j] = b[i+j] = c[i-j+n] = 0 ;d[i] = j ;find(i+1 ) ;a[j] = b[i+j] = c[i-j+n] = 1 ;}}}
}int main() {cin>>n ;memset(a, 1 ,sizeof(a)) ;memset(b, 1 ,sizeof(b)) ;memset(c, 1 ,sizeof(c)) ;find(1) ;printf("%d\n", sum) ;return 0;
}

其实八皇后主要核心就是回溯算法

再做两道题巩固一下深搜(之前做过,现在再复习写一遍)P2392和P1443

今天就先到这里了

2021.6.9.

1.1今天一直在学文化课,晚上才发现还没做题呢,那今天就做两道,P5707和P3954(我今天才发现第一个题单还有没做完的题目)

2021.6.10

今天复习广搜

1.1先来博客学习一下

首先访问初始点v并将其标志为已经访问。接着通过邻接关系将邻接点入队。然后每访问过一个顶点则出队。按照顺序,访问每一个顶点的所有未被访问过的顶点直到所有的顶点均被访问过。

广度优先遍历类似与层次遍历。其特点是尽可能先对横向进行搜索,从指的出发点,按照该点的路径长度由短到长的顺序访问图中各顶点。

利用队列先进先出的性质,从起点开始,将一步能到达的点全部存入队列,然后将队列中队首元素出队,执行与起点相同的操作,以此循环,直到到达终点或者队列为空,队列为空说明可以到达的点都已经遍历过了,也就是说没有路可以到达终点。
————————————————
版权声明:本文为CSDN博主「acm小新笙」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/acm147258369/article/details/88562558

1.2各处搜寻资料总结一下<我的笔记>

(这张图里面有一个很巧妙的理解方法)

今天没时间了,明天再刷题

PS.今天高考结束,我们明天也要返校了,调整好状态,准备期末冲刺!

2021.6.11.

今天主要做了几道洛谷上的题目

虽然有一些之前做过,但是是老师带着做的,自己又做一遍还是调了很久的

做了P1135P1443P1101P2404

明天在学习新的吧

周末愉快!

2021.6.12.

今天复习一下排序(其他排序还好,主要复习桶排、堆排、二分排序和希尔排序)

在这里分享一下希尔排序的程序(也是我第一次打问题比较大的一个程序)

#include <bits/stdc++.h>
using namespace std;
const int N=1e7+6;
int a[N];
int main(){srand (time(0));int n=100000;for(int i=1;i<=n;i++) a[i]=rand()%100000;int d=n/2;while (d>0){for(int i=d;i<=n;i++){int j=i-d;while (j>0&&a[j]>a[j+d]) swap(a[j],a[j+d]),j-=d;} d/=2;}for(int i=1;i<=n;i++) cout<<a[i]<<" ";cout<<endl;return 0;
}

这是二分排序的主程序

今天就先到这里啦

2021.6.13.

今天要准备期末复习,就先不学新的了(明天端午节放假,再学点新的吧-具体见下周日报)

今天先打了一遍迪杰斯特拉算法

然后又打了一遍希尔排序,竟然一遍过,开心:)

本周总结

这周主要是复习不熟悉的算法,反复练习才能熟能生巧,这周主要是因为高考放假所以多刷了一些题,希望下周“忙起来”了每天也可以练练

继续加油!

每周周报1:6月7日-6月13日每日学习相关推荐

  1. Windows Phone 7 开发 31 日谈——第13日:位置服务

    本文是"Windows Phone 7 开发 31 日谈"系列的第13日. 昨天,我们讨论了Windows Phone的震动控制器,以及如何告知我们的用户去注意他们的设备上所发生的 ...

  2. 【新闻早知道】10月13日 星期日

    [新闻早知道]10月13日  星期日  农历九月十五 1.教育部:坚决取消本科毕业前补考等"清考"行为,本科生体育不合格不能毕业: 2.吸取无锡事故教训,全国多地组织公路桥高架桥隐 ...

  3. 电报登陆收不到验证码_紧急扩散!这片海域船舶注意!超强台风奔袭,13日夜间将登陆(附防台措施)...

    中央气象台10月12日10时继续发布台风蓝色预警:南海热带低压已于今天(12日)上午8点钟加强为今年第16号台风,上午10点钟其中心位于海南省万宁市以东大约730公里的南海中部海面上,就是北纬17.6 ...

  4. Qtum量子链周报(10月22日-10月28日)

    Qtum量子链 10月22日-10月28日新闻动态回顾 本篇文章会详细回顾Qtum量子链在过去的一周(10月22日- 10月28日)项目动态,新闻回顾后还包含Qtum所有目前技术开发进展,欢迎随时查阅 ...

  5. Qtum量子链周报(6月3日-6月9日)

    Qtum 量子链 6月3日-6月9日 新闻动态回顾 本篇文章会详细回顾 Qtum 量子链在过去的一周(6月3日- 6月9日)项目动态,新闻回顾后还包含 Qtum 所有目前技术开发进展,欢迎随时查阅. ...

  6. steam游戏在线人数统计周报第1期-2019年10月11日

    steam游戏在线人数统计周报第1期-2019年10月11日 top10热门增长游戏 top10周平均在线人数游戏 top10本周新游戏 top10玩家流失最大游戏 每周一凌晨统计上一周的数据,也就是 ...

  7. 第一阶段:2014年10月13日-12月14日,36天完成。每周5天,8周完成。

     DX11龙书+软引擎+OSGEARTH视频教程 项目:听师兄安排 DX11龙书:共36个DEMO,计划36/5=8周,每天1个, 第六章:5个DEMO 第七章:2个DEMO 第八章:3个DEMO ...

  8. steam游戏在线人数统计周报第2期-2019年10月13日

    统计时间范围:2019年10月07日-2019年10月13日 top10热门增长游戏 # 名称 增长人数(人) 增长比率 1 7 Days to Die 6176 92.43% 2 Sid Meier ...

  9. 天津Uber优步司机奖励政策(1月4日~1月10日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  10. 青岛Uber优步司机奖励政策(9月14日~9月20日)

    由于上周银行系统升级,工资延后 9/14-9/20奖励细则 滴滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不 ...

最新文章

  1. OpenCV单kinect多帧静止场景的深度图像去噪
  2. ASM(active shape models)算法介绍
  3. spark on yarn
  4. C++内联(inline)函数
  5. php pdo 新建数据库,php – 使用PDO数据库类而不是每次都创建新...
  6. [ZJOI 2012]灾难
  7. oracle 移动数据文件(装)
  8. 导入导出mysql数据库命令
  9. 从北京站到天通苑怎么走,
  10. python调用r语言函数_Python 中使用R语言
  11. 小米AI音响的拆解及简要系统分析
  12. 手贱大意删除重要的文件怎么办!!!一招教你怎样恢复误删的文件
  13. Python爬虫自学系列(一)
  14. 使用电脑过程中突然无法复制粘贴了
  15. 数据挖掘:实用案例分析 下载_萌低龄,超实用“萌系”呈现技巧及设计案例分析...
  16. 美元与人民币汇率 Python
  17. .分享10个最新的Web前端框架
  18. J2EE Development without EJB
  19. 网站服务器部署apk软件,供外网下载
  20. 设计原则之壹——开闭原则

热门文章

  1. ios 微信小程序 chooseImage 相机拍照跳转页面崩溃
  2. 好用的三维绘图软件CREO学习绘制弧
  3. java设计person类_定义一个Person类,含姓名、性别、年龄等字段;继承Person类设计...
  4. Android讯飞语音集成【在线语音合成2】
  5. Vue脚手架项目流程
  6. 大家是否还记得?中国移动今年10月的一项业务,让8亿用户受益
  7. 【ZYNQ-FPGA】zynq学习笔记(一)——使用ILA进行硬件调试
  8. 川大和吉大在计算机方面相比如何,都是985高校,四川大学、吉林大学和南开大学如何选择?...
  9. 诸暨软件测试,诸暨市2017年中考体育测试项目测试规范及评分标准
  10. 首师大计算机邵老师,信息科学学院 学生活动 【毕业季】看我徒手攀登——2013级计算机科学与技术专业邵玉杰学姐专访...