2017/8/9训练日记

今天终于a完了25道题,包括dfs,bfs以及图论算法和拓扑排序;

其中拓扑排序这个题

输入n和m,n表示26个字母前n个字母,m表示有多少个关系,然后输入m个关系,判断是否这n个字母存在一个排序关系
如果存在输出在几个关系之后就输出几个关系之后就可以确定,比如第一个测试数据,前四个关系输入之后,就输出结果
后两个关系输入不用管,,如果存在环那么就输出冲突,如果不能确定次序就输出不能确定。


考察了拓扑排序的基本思想:每一步寻找一个入度为0的结点,然后删除之。将这个结点指向的结点入度减1。删除从这个结点出发的所有边
同时考察了对于一个有向图是否有环、是否严格有序的判断。(当发现多个结点的度为0时,则不是严格有序。当发现没有结点入度为0时,则有环)
需要注意的是逻辑上的关系。“Sorted sequence cannot be determined.”这个判断,要放在最后,即只有发现了所有的点都没有环,且并没有发现严格有序性质的时候,才可以判为“Sorted sequence cannot be determined."
逻辑上的判决一定要注意优先级。
这个问题中优先级最高的是判断有环。一旦发现找不到度为0的结点,则立即return。
第二优先级是是否严格有序的判断。当每一步能且只能找到一个度为0的结点,则return。
第三优先级是无法确定。(当发现无法确定时,并不能立即return,因为还需要判断是否有环)


思维方式:当条件x成立时,另外的条件y,z是否一定不成立。如果一定不成立,则可以断言return。否则必须继续判断下去

//http://blog.csdn.net/u012860063/article/details/38681633

ac代码见大佬博客


再有就是看了单调队列

单调队列,就是一个符合单调性质的队列,它同时具有单调的性质以及队列的性质。

他在编程中使用频率不高,但却占有至关重要的地位。

它的作用很简单,就是为了维护一组单调数据,让我们在运行的过程中能够快速寻求前k个或后k个中最大或最小的值。

//http://blog.csdn.net/justmeh/article/details/5844650

包括单调队列的应用

//http://blog.csdn.net/justmeh/article/details/5844654

再结合课件

课件上给的例题很多,一下午光看例题了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值