12 2021 档案
摘要:一、前言 问题描述:问有n个人发出了n张投票,问是否能投票出某个人当选主席,当然当选主席不是那么容易的必须要保证那个人的得票严格大于总投票数的一半 二、问题分析 如果一个元素严格大于总元素的一半,那么经过抵消过后,必然最后剩下的还是那个元素,则这个元素我们称之为主元素,这种方法的确定是不能够判断是否
阅读全文
摘要:代码如下: #include "bits/stdc++.h" using namespace std; int main() { int a,b;//如果a b互质,那么不能拼出来的最大数是a * b - a -b 数字个数为(a-1)(b-1)/2 cin >> a >> b; cout << a
阅读全文
摘要:一、前言 引入题目:三个小朋友刚学数学没多久,由于不会进位,只能准确10以内的数。现在有一群羊,羊主人说数量不超过两百。小A每次数到5以后就又回到1开始数,最后剩了3只羊。小B每次数到7就回到1开始数,最后剩了5只羊。小C每次数到8之后就回到1开始数,最后剩余7只羊。请求出这群羊有多少只 二、分析题
阅读全文
摘要:一、前言 gcd也就是欧几里得算法也称辗转相除法,是一种求解最大公约数的算法 exgcd是扩展欧几里得算法,该算法在gcd的基础上增加了一个求解二元一次不定方程的解 二、 1.GCD 由于gcd较为简单,这里不加以证明,故给出代码: 1 #include "bits/stdc++.h" 2 usin
阅读全文
摘要:证明1^2+2^2+.......+n^2=1/6*n*(n+1)*(2*n+1) 利用恒等式可知(1+n)^3 = n^3 + 3*n^2 + 3*n + 1 移项可知(1+n)^3 - n^3 = 3*n^2+3*n+1 可得2^3 - 1^3 = 3*1 + 3*1 + 1 可看出1+n到2有
阅读全文
摘要:一.前言 上一篇随笔提过Ackermann函数了,因此我直接给出栈和队列实现Ackermann函数的代码以及注释 #include "bits/stdc++.h" using namespace std; int ack(int m,int n) { stack <int> s1;//存储每次处理节
阅读全文
摘要:一.前言: 人傻钱不多,只求期末不挂科! 二.递归的基础 (1)递归的概念:所谓递归就是一个函数自己调用自己,然后不断向下走,直到出口,也就是得出了解 (2)递归的要素: 1.递归的参数(就是要求解某一个东西,需要用到的变量) 2.结束条件(也就是递归的出口) 3.递归的方向(像迷宫类的程序就是多个
阅读全文
摘要:一.前言: 1.栈是一种先进后出结构的数据结构,栈加入元素是从栈顶加入的,删除元素也是从栈顶删除的; 2.队列是一种先进先出的数据结构,队列加入元素是从队尾加入的,删除元素是从队首删除的; 二.习题练习 (A) 现在有n个元素分别是1,2,3,...,n,我们想知道通过一个栈,在n次push/pop
阅读全文
摘要:第一、topk问题(采用快排优化后的topk,时间复杂度为O(n)),然后cin输入一直超时,最后换成了scanf函数AC #include "bits/stdc++.h" using namespace std; int a[5000005]; void topk(int start,int en
阅读全文