摘要: 后缀表达式基本可以使用栈来表达,所以30分的暴力做法很好做 正解的做法是: 暴力的做法是每次重新建立栈,用符号来把栈顶的元素弹出来,做完运算之后再放入栈中,如果是与运算,弹出两个元素,如果是或运算,弹出两个元素,如果是非运算,弹出一个元素,做完运算之后再将其放入栈中,最后栈里面只有一个元素。 题目中 阅读全文
posted @ 2020-11-29 21:03 xinyimama 阅读(397) 评论(0) 推荐(0)
摘要: 函数是各种编程语言中一项重要的概念,借助函数,我们总可以将复杂的任务分解成一个个相对简单的子任务,直到细化为十分简单的基础操作,从而使代码的组织更加严密、更加有条理。然而,过多的函数调用也会导致额外的开销,影响程序的运行效率。 某数据库应用程序提供了若干函数用以维护数据。已知这些函数的功能可分为三类 阅读全文
posted @ 2020-11-24 23:07 xinyimama 阅读(170) 评论(0) 推荐(0)
摘要: 题目简述: 共有n个动物,m条要求,每条要求描述了第x位上是1的话,必须购买y饲料,动物园里已有的动物必须的饲料已经购买了,问题是:在不要求增加购买饲料的基础上,还能放进去多少种动物?共有k个二进制,数据保证输入的动物编号各不相同,给出的饲料种类各不相同,n和m的范围都是100万,饲料的范围是1亿, 阅读全文
posted @ 2020-11-18 10:14 xinyimama 阅读(245) 评论(0) 推荐(0)
摘要: 单调栈的优化的过程,需要二分的做法,二分的做法是可以使用low_bound,这个函数的作用是去前闭后开的区间中,第一个大于等于val的值的位置,这个函数不错 不使用stl的代码,感觉我的二分写的好烂 使用stl的部分 阅读全文
posted @ 2017-10-03 18:59 xinyimama 阅读(136) 评论(0) 推荐(0)
摘要: 此题的重点在于两个部分:一是如何将森林转换成一棵树,原则是添加根为0的点,将各个树链接起来;二是循环的顺序问题,因为每一种课只能选择一遍,所以只能倒序循环,有点儿想01背包 阅读全文
posted @ 2017-10-03 18:43 xinyimama 阅读(113) 评论(0) 推荐(0)
摘要: 刚开始看到这个题的时候,感觉自己的DP转移方程写的是对的,但是还是差了一点,无论是dp还是搜索,状态的定义真的非常重要,此题是一个经典的区间DP的题,按照区间dp的一般思路写就好 k在i和j之间,所以k是>=i,<j的,这个一定要记清楚,同时dp的顺序也应该明白,先循环长度,然后循环i、j和k 此题 阅读全文
posted @ 2017-09-22 17:34 xinyimama 阅读(441) 评论(0) 推荐(0)
摘要: 刚开始写的程序,只能过4个点,最后一个剪枝想不到,看了题解才想到 还有一个重点:如果保证不重复呢,就是保证递增就行 阅读全文
posted @ 2017-08-20 21:49 xinyimama 阅读(150) 评论(0) 推荐(0)
摘要: 这个剪枝也是够了,不过不愧是搜索经典题,做完此题之后,感觉对深搜有了更多的理解,感觉学动规之前一定要学搜索,好的搜索题一定需要你好好的定义状态,在这里一定要把状态的知识学扎实了 再来说小木棍,小木棍有一个基础剪枝,就是找到上界和下界的位置 剪枝一:先得拼大的 剪枝二:如果一根新的长度没有拼成功,那么 阅读全文
posted @ 2017-08-20 21:47 xinyimama 阅读(145) 评论(0) 推荐(0)
摘要: tarjan的裸题 tarjan的主要作用是求有向图中的强联通分量,通过维护两个值,一个是时间戳dfs,一个是low数组,现在理解的还不够深刻,之后理解好了再过来写 阅读全文
posted @ 2017-08-10 22:00 xinyimama 阅读(111) 评论(0) 推荐(0)
摘要: 简单的区间动规 阅读全文
posted @ 2017-08-03 15:57 xinyimama 阅读(151) 评论(0) 推荐(0)