摘要:
扩展欧几里得算法 算法描述: 求解二元一次方程$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( 阅读全文
摘要:
# 莫比乌斯反演 ### **引例:[HAOI2011]Problem b** * **题目描述**: 对于给出的T个询问,每次求有多少个数对(x,y)满足 a ≤ x ≤ b ,c ≤y ≤ d,且gcd(x,y)=k? * **输入格式**: 第一行为一个整数T,接下来T行每行五个整数,分别表示 阅读全文
摘要:
后缀表达式基本可以使用栈来表达,所以30分的暴力做法很好做 正解的做法是: 暴力的做法是每次重新建立栈,用符号来把栈顶的元素弹出来,做完运算之后再放入栈中,如果是与运算,弹出两个元素,如果是或运算,弹出两个元素,如果是非运算,弹出一个元素,做完运算之后再将其放入栈中,最后栈里面只有一个元素。 题目中 阅读全文
摘要:
函数是各种编程语言中一项重要的概念,借助函数,我们总可以将复杂的任务分解成一个个相对简单的子任务,直到细化为十分简单的基础操作,从而使代码的组织更加严密、更加有条理。然而,过多的函数调用也会导致额外的开销,影响程序的运行效率。 某数据库应用程序提供了若干函数用以维护数据。已知这些函数的功能可分为三类 阅读全文
摘要:
题目简述: 共有n个动物,m条要求,每条要求描述了第x位上是1的话,必须购买y饲料,动物园里已有的动物必须的饲料已经购买了,问题是:在不要求增加购买饲料的基础上,还能放进去多少种动物?共有k个二进制,数据保证输入的动物编号各不相同,给出的饲料种类各不相同,n和m的范围都是100万,饲料的范围是1亿, 阅读全文
摘要:
单调栈的优化的过程,需要二分的做法,二分的做法是可以使用low_bound,这个函数的作用是去前闭后开的区间中,第一个大于等于val的值的位置,这个函数不错 不使用stl的代码,感觉我的二分写的好烂 使用stl的部分 阅读全文
摘要:
此题的重点在于两个部分:一是如何将森林转换成一棵树,原则是添加根为0的点,将各个树链接起来;二是循环的顺序问题,因为每一种课只能选择一遍,所以只能倒序循环,有点儿想01背包 阅读全文
摘要:
刚开始看到这个题的时候,感觉自己的DP转移方程写的是对的,但是还是差了一点,无论是dp还是搜索,状态的定义真的非常重要,此题是一个经典的区间DP的题,按照区间dp的一般思路写就好 k在i和j之间,所以k是>=i,<j的,这个一定要记清楚,同时dp的顺序也应该明白,先循环长度,然后循环i、j和k 此题 阅读全文