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