这周除了接着看上次没看完剩下的题,主要的就是做题了

我把这周新学到的和以前还没总结过的以及做题心得再主要说一下

这周做题和看到的主要是以下这几类

我把这周做题时遇到的某几类题简单归了一下类然后总结

遍历节点图

搜索和有向图

1、P7228 MOLEKULE

2、P2853 [USACO06DEC]Cow Picnic S

3、P4017 最大食物链计数

4、P1037 产生数

5、P2419 Cow Contest S(floyd/拓扑排序/dfs)

6、P2850 Wormholes G

从这些题中学到的一点东西以及心得

1、一道思维题,给出某两节点之间相连,自定义方向使最长的一条路径最短

但只要发现了它的规律即可破题 使每个节点全为入度或全为出度时最长路最短,即对于深度为奇数的点 uu,可以把连接它的儿子 vv 的边定向成 u->vu−>v;对于深度为偶数的点,反过来,变成 v->uv−>u。

2、无权的有向图也可以用vector存储。

3.两节点之间有多条连边求最大路径时可以一直用max只保留两点间大最大路径长度

4、在有向图中,要注意有环和无环是不一样的,有时需要判断其中是否会出现环,在搜索的过程中,不回溯时,若能访问到已标记的节点则就是环

5、有环的时候不能用拓扑排序,如果确定无环,则可以用拓扑排序,先找到一个入度为零的点,(可以定义一个数组,每输入一组方向u->v时便使a[v]++,输入完a[i]值为零的i则入度为0)然后就可以用拓扑排序输出一个正常的序列了

6、.可以用map[a][b]=c记录从a点到b点这条路的权值为c

无向图

1、P1330 封锁阳光大学(染色)

2、P6635 「JYLOI Round 1」箭头调度

3、P1294 高手去散步

4、P6037 Ryoku 的探索​​​​​​5​​​​​​

5、P3496 GIL-Guilds

6、P1144 最短路计数

1、第一题是一个染色问题,染色问题就是将不同的颜色(要求)按要求分布在一张图的若干个点上,这个题就是要求相邻两个点的颜色不能相同,如果染到最后发现涂完这个之后他和其余相邻的颜色相同了,那么就染色失败,不能完成(但是要注意整个大图不一定是连通的,所以要分开给每一块连通图染色)本题dfs染色核心代码

void dfs(int x)
{
for(int i=1;i<=b[x][0];i++){if(f[x]==f[b[x][i]]){cout<<"Impossible";return;}
if(f[b[x][i]]==0)
{    f[b[x][i]]=3-f[u];if(f[b[x][i]]==1)t++;else tot++;dfs(b[x][i]);}}}

2、在遇到无向图时可以用邻接表(稀疏图)或邻接矩阵(稠密图)

(涉及权值时别忘把数组预处理全赋为一个最大值0x7f)

3.dfs无向图的大概思想就是先找一个起点然后搜索和他相连的没有被标记的结点如果都被标记就回溯反回到上一个结点再去搜索别的结点,直到所有的点都被标记。

4.可以用map[a][b]=c记录从a点到b点这条路的权值为c

但是注意不要忘记map[b][a]=map[a][b]!! 只能在无向图中写

搜索与二叉树

1、P1030 求先序排列

2、P3884 二叉树问题

3.P3915 树的分解​​​​​​

4、P2052 道路修建

5、P6591 植树 (无根树)

6、P2420 让我们异或吧

7、P7980 a question

8、P1364 医院设置

1、在树中,求深度和宽度的方法

在用floyd循环后,深度就是 max(a[1][i],nowmax)(循环时b[a[1][i]]++;记录每一层节点数,)

宽度即为 max(b[i],nowmax)

2、树可能是空树,有个别时候需要验证是否为空

3、树和dfs:我一般都是先遍历根节点,然后再左子树右子树,感觉这样比较好写,一般都是用堆栈来实现,栈是后进先出所以可以先将右子树堆栈然后再让左子树进栈这样左边就会出现在栈顶了)
4、树和bfs:用队列实现,先找根节点,然后推入队列,因为队列是先进先出,所以可以接着推左子树结点然后再推右子树结点,这样就能保证先搜的是左子树

ps:找根节点时就是找入度为零的点,也可以用定义一个数组实现,每输入一组父节点到子节点:u->v时便使a[v]++,输入完a[i]值为零的i则入度为0

然后记录一个dfs+记忆化搜索的题:有点类似于剪枝,优化时间

[NOIP2017 普及组] 棋盘 - 洛谷

搜索与地雷

​​​​​​P4961 小埋与扫雷

用到三个函数,分别是输入时每遇到雷时便将此雷周围八个格子的数字+1(这样遍历后就能求出地雷数字图了),第二个函数便是判断周围八个有无空格,第三个是遍历将没有雷的标记并继续搜索八联通把没有地雷的标记,通过遍历地图能求出连通块的数量,然后再通过函数一再加上周围八格无雷的数字的数量

做题注意和做题小心得

ps1:在搜索中要注意的是,图不一定是全部连通的,也可能是分开成了好几块,要对每个连通块都搜索,做题时好几次都没有注意然后导致最后结果是错的,要时刻注意

ps2:邻接矩阵 开始要预处理使二维数组所有数字最大(可为0x7f)因为边权有可能为负的,怪不得在做题的时候看着题解上说要预处理,我觉得不加也可以结果就错了,加上那一段就对了,上课问费老才注意到边权也可以是负的,呃呃呃大意了

ps3:数组赋值不一定是0更方便 可以用memset赋值-1 不与题中数字冲突,更方便

ps4:要注意看数据范围需不需要用long long(怎么总是在这里栽跟头)有的题即使表面上看起来不需要,但是当结果累加时可能就超过了一定的范围

本周心得体会

截止到现在仅仅把费老给的那九十多道搜索看了,好像感受到了和以前不一样的感觉。

以前只是单纯看题,然后像一个机器一样去做题,现在感觉做的题目其实可以变相反应去解决生活中的问题呀。 以前感觉算法只单单是比赛算法,从没把它和实际生活联系起来,但现在,果然,见多识广(啧啧啧虽然不算多),见识到了好多多种多样的题,好多都是和生活息息相关的呀,

那个扫雷,以前经常玩,盲目的点格子或者是似懂非懂的经过心里的小计算去点有把握的格子,但从没想过棋盘上面的数字竟也可以用代码算法去实现从而确定是数字几,(虽然现在只是很简单的去实现一丁点,但让我感悟了许多)

扫雷,走地图,食物链(要是生物考试能敲个这代码就不用担心自己查错了哈哈哈小声说),还有后边几个都是游戏题,打怪、消耗能量(感觉有点难 需要考虑很多),虽然是最基本简单的游戏,但实现这就已经够整我的了,那些大游戏不就是基于这些最最最最最最基本的思想么(虽然这和那相比起来可能过于简单)

看了三周的搜索,好像也理解了为什么这个搜索要看这么长时间,前天和一个大一下学期也选修acm的学长聊了会,他说几乎很多题都能用搜索算法的思想解决,好像确实是这样,放在平常来看,举个例子,在导航时,往往会给你推送一个最优的路径解,这不就是整天做的搜索地图题演变过来的么,果然知识都是有用的学了就一定能和实际生活联系起来并用到

果然看得多点脑袋里可能真的会多一点东西,这三周的搜索让我受益匪浅,而且这好像也是头一次连续坚持了三周多去干一件不是常规的事,真的会慢慢改变吧!暂且先对搜索告一段落吧,期待接下来的并查集带给我新的思路和启发

ACM本周搜索做题小结和心得体会相关推荐

  1. 纪中国庆10.5做题小结

    纪中国庆10.5做题小结 T1:教主的花园 T2:教主泡嫦娥 T3:保镖排队 T4:教主的别墅 T1:教主的花园 Description [问题背景] LHX教主最近总困扰于前来膜拜他的人太多了,所以 ...

  2. 纪中DAY15做题小结

    纪中DAY15做题小结 T1:淘汰赛制 T2:方程的解 T3:物流运输 T4:矩阵乘法(mat) T1:淘汰赛制 Description 淘汰赛制是一种极其残酷的比赛制度.2 ^ n名选手分别标号1, ...

  3. 纪中DAY5做题小结

    纪中DAY5做题小结 T1:直角三角形 T2:排序 T3:自行车赛 T4:小L的数列 T1:直角三角形 Description 二维平面坐标系中有N个点. 从N个点选择3个点,问有多少选法使得这3个点 ...

  4. 纪中DAY8做题小结

    纪中DAY8做题小结 T1:少女觉 T2:灵知的太阳信仰 T3:多段线性函数 T4:DY引擎 T1:少女觉 Description 在幽暗的地灵殿中,居住着一位少女,名为古明地觉. 据说,从来没有人敢 ...

  5. 纪中DAY10做题小结

    纪中DAY10做题小结 T1:库特的向量(code) T2:恭介的法则(rule) T3:沙耶的玩偶(doll) T1:库特的向量(code) Description 从前在一个美好的校园里,有一只( ...

  6. 做项目的一些心得体会

    原文地址:转:做项目的一些心得体会作者:快乐吧900 发信人: sunshineyaya (sunshine), 信区: Innovation 标  题: [创新实验]经验分享  系列  NO.1 发 ...

  7. USACO 做题小结

    还记得之前,发过一篇阶段性总结与未来规划..结果由于最近rp爆发(保研成功+进wf)后者显然靠bin神,前者也是运气.因此,放松了一段时间.然后就开始刷usaco了,原因是不用花时间找解题报告在NOC ...

  8. 学完计算机图形学可以做什么,计算机图形学心得体会.doc

    计算机图形学心得体会 姓 名 学号 201203284 班 级: 计科 序 号: 31 院 系: 计算机科学学院 通过一个学期的学习,经过老师细心的讲解,我对图形学这门课有了基础的认识,从的课上我学到 ...

  9. 【蓝桥】做题笔记及心得总结(基础篇)

    基础题 类型1:考察数据类型方面的应用 题目1: 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1& ...

最新文章

  1. 近期热门领域新鲜数据集汇总!
  2. VMware网络设置详解 打造超级虚拟网络 (说的最为复杂和全面的)
  3. foreach和while的区别(编译之后)_一文了解解释型语言和编译型语言之区别
  4. 求质数算法的N种境界 (N 10) zz
  5. p2psearcher2013其中
  6. java死信队列_Spring Boot系列教程之死信队列详解
  7. 最近公共祖先_LeetCode 236. 二叉树的最近公共祖先
  8. USER_AGENT 知识
  9. FORTAN中一个表达式多行
  10. Kettle8.2输入组件之Get data from xml
  11. 扩展卡尔曼滤波EKF
  12. 赖世雄老师---名词性从句
  13. 小程序接口加密时去除昵称数据含有的reshuffle表情(例如emoji)
  14. mysql逗号后update_隔mysql逗号
  15. Matplotlib绘制自定义函数曲线
  16. Linux服务器之间使用scp免密传输文件
  17. 3dmax中如何导入照片为背景
  18. 箭头函数(Arrow Function)
  19. 今天做了一个简单的PHP网页
  20. 圆锥误差补偿多子样算法

热门文章

  1. linux找不到内核头文件,linux内核编程找不到头文件
  2. 关闭端口命令,如何关闭电脑80端口
  3. vue3.0 引入bootstrap 4
  4. Spark Streaming 2.2.1 处理Kafka数据源的实战准备
  5. 简单理解Socket 协议
  6. AngularJS 学习笔记---AngularJS 简介
  7. 【Linux】磁盘挂载
  8. 中华好诗词大学季第二季(三)
  9. CSS图片水平垂直居中的三种方法
  10. .pem和.pk8(公钥私钥的协议相关)