
零散知识点
@萌橙开心
这个作者很懒,什么都没留下…
展开
-
Vscode 快速打开setting.json
每次打开Vscode的setting文件都会感觉非常的麻烦,这里说一下自己发现的快捷方法原创 2022-08-04 09:44:14 · 4665 阅读 · 0 评论 -
逆波兰表达式求值 解题报告
逆波兰表示法是一种将运算符(operator)写在操作数(operand)后面的描述程序(算式)的方法。举个例子,我们平常用中缀表示法描述的算式(1 + 2)*(5 + 4),改为逆波兰表示法之后则是1 2 + 5 4 + *。相较于中缀表示法,逆波兰表示法的优势在于不需要括号。请输出以逆波兰表示法输入的算式的计算结果。输入格式:在一行中输入1个算式。相邻的符号(操作数或运算符)用1个空...原创 2019-03-26 19:24:38 · 1088 阅读 · 0 评论 -
单调栈详解
单调递增或单调减的栈,跟单调队列差不多,但是只用到它的一端,利用它可以用来解决一些ACM/ICPC和OI的题目,如RQNOJ 的诺诺的队列等。单调栈是一种特殊的栈,特殊之处在于栈内的元素都保持一个单调性。假设下图是一个栈内元素的排列情况(单调递增的栈):此时插入情况有两种:(1).插入元素大于栈顶元素当插入7时,因7 > 6,满足单调递增的条件,故可以直接加入栈...转载 2019-03-07 10:49:16 · 446 阅读 · 0 评论 -
Children's Game UVA - 10905 解题报告
题目大意:给你N个数,让你把他们连接起来,使他们连起来的数最大。思路:这个题目是贪心算法,重点比较的是第一位的大小,然后交了一发WA了,然后看了看题解,发现自己的排序标准错了,不能看s>s1,而是要看s+s1>s1+s,改完之后AC。注意这里使用string来储存数字,目的就是方便比较。一个很实用的小技巧。下面给出一组样例,如果不按上述的排序方法,此样例便无法通过。2...原创 2019-03-14 10:44:47 · 239 阅读 · 0 评论 -
c语言中&&,||,&,| 的区别
&&:逻辑与,前后条件同时满足表达式为真||:逻辑或,前后条件只要有一个满足表达式为真&:按位与|:按位或&&和||是逻辑运算,&与|是位运算假如a = 0xaa ,b = 0x55a&&b = true ,在计算机中true以非0值表示,不同的编译器true值也不一样,一般为1a||b = true,a&...转载 2019-02-26 19:14:27 · 2965 阅读 · 0 评论 -
lowbit()函数的使用
lowbit()函数用来取一个二进制最低位的一与后边的0组成的数例:5(101),lowbit(5)=1(1) 12(1100),lowbit(12)=4(100)int lowbit(int t){ return t&(-t);}原理,二进制数的负数是正数取反加一12(1100),-12(0100)--------------------- ...转载 2019-02-26 15:47:50 · 1750 阅读 · 0 评论 -
线段树模板
在信息学竞赛中,经常遇到这样一类问题:这类问题通常可以建模成数轴上的问题或是数列的问题,具体的操作一般是每次对数轴上的一个区间或是数列中的连续若干个数进行一种相同的处理。常规的做法一般依托于线性表这种数据结构,导致了处理只能针对各个元素逐个进行,因此算法的效率较低。线段树是一种能够有效处理区间操作的高级数据结构,利用这种数据结构,我们能够设计出针对上述问题更加高效的算法。线段树的题目通常比较明...转载 2019-02-28 08:44:08 · 480 阅读 · 0 评论 -
Gym - 101234G Dreamoon and NightMarket结题报告(集合元素的组合中第K大的值)
题意:给你n种物品的价值,让你求这些物品组合的第k大的集合的值(集合内放的是物品种类,不得重复,但价值可以重复)、思路:这是一类经典的问题求集合元素所有组合中第K大的值。具体的步骤如下:(1)首先将储存元素的数组排序;(2)假设当前组合中最后一个元素的下标为 i , 考虑为以i为最后一个元素的全排列都举过了。那么从当前组合(sum, i)到下一个最小组合有两种可能:减去本身再加上后...原创 2019-01-18 17:42:23 · 503 阅读 · 0 评论 -
Gym - 101234C Crazy Dreamoon 解题报告(有关精度)
题目大意:大鹏经常在ACM比赛时做不出题,于是就开始画一些线段,无聊的他想知道他画的线段一共穿过了多少正方形格子,但由于他比较垃圾,所以想请你帮忙计算(多条直线经过一个格子算一个)。思路:当初拿过来这道题很蒙,以为是靠什么公式,但是推了半天也没推出来,补题的时候才知道是每一个单位横坐标一个个讨论,类似于分治法思想,但是这道题仍然不能AC,看了看大佬的代码,发现自己缺少精度的控制,垃圾的我赶紧找...原创 2019-01-18 14:42:13 · 595 阅读 · 0 评论 -
归并排序
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plain copy//将有序数组a[]和...转载 2018-12-07 09:47:41 · 182 阅读 · 0 评论 -
关于卢卡斯定理的粗略理解
今天突然想起了卢卡斯定理还不会就简单学习了一下,在这里进行分享。在学习卢卡斯定理之前必须要掌握逆元的概念,逆元详解 在掌握了逆元之后,开始介绍卢卡斯定理。 卢卡斯定理应用于大组合数取模,通常情况下,组合数可以用下面方法进行求取: (1).C(n, m) = C(n - 1,m) + C(n - 1, m - 1) (2).C(n, m) mod p = n!/(m!(n - m)!);...原创 2018-09-12 20:31:02 · 458 阅读 · 0 评论 -
利用逆元对除法运算进行取模操作(Gym - 101775A )
首先说明逆元的概念,类似于倒数的性质。(这里只给出费马小定理求取逆元)方程ax≡1(mod p),的解称为a关于模p的逆,当gcd(a,p)==1(即a,p互质)时,方程有唯一解,否则无解。对于一些题目会要求把结果MOD一个数,通常是一个较大的质数,对于加减乘法通过同余定理可以直接拆开计算,但对于(a/b)%MOD这个式子,是不可以写成(a%MOD/b%MOD)%MOD的,但是可以写...原创 2018-09-04 16:09:56 · 766 阅读 · 0 评论 -
错排公式
看了很多资料,,感觉还是百度百科全错排,百度百科 这里直接给出错排的例题和公式,公式只有两种,只给出第一种,个人感觉第二种实在是。。。用不上 递推公式:D(n)=(n-1)*(D(n-1)+D(n-2)) [D(1)=0,D(2)=1];考新郎 就不给代码了,简单说一下思路,先从n个新郎里选出m个新郎跪搓衣板了(默默心疼你们),然后在求m的错排就OK 简单的套公式。装信封 这个更...原创 2018-08-28 20:42:31 · 238 阅读 · 0 评论 -
关于拓扑排序的模板
今天补图论的题,发现自己又对拓扑排序这个算法有了些生疏,今天在这里写一下模板,这里按照入度的多少排序复杂度(n*n)//注意此模板规定点是从零开始,若不是则需要改动,并且输入不存在重复边的情况#include <bits/stdc++.h>using namespace std;const int maxn=1000+10;const int INF=0x3f3f3f...原创 2018-08-31 10:08:46 · 359 阅读 · 0 评论 -
关于unique函数的理解
头文件:algorithm 强调:unique函数并没有删除重复的元素,而是将不重复的元素提前,返回所有不重复元素的地址!!! 详解:https://www.cnblogs.com/wangkundentisy/p/9033782.html...原创 2018-08-26 11:09:43 · 490 阅读 · 0 评论 -
关于lower_bound以及uypper_bound的一些理解
今天又碰到了有关于lower_bound的这一类题,做的过程中还是发现了自己对这两个函数,运用的十分不娴熟,而且还存在一定的漏洞,今天在这里详细的整理一下。如果想查看两个函数的源代码点这里1、首先说一下使用这两个函数的前提:数组必须是已经排序好的!!!很多人都会犯过这个问题,因为这两个函数是使用的二分查找,所以必须先对数组进行排序,否则很难想自己预期的那样,找到想找的地方的值,而很...原创 2018-08-26 09:59:08 · 319 阅读 · 0 评论