跳至主要內容
C++ STL模板——题单#2

C++ STL模板——题单#2

1.容器适配器——(stack)栈与(queue)队列

//stack
stack<int> s;
stack< int, vector<int> > st;  //覆盖基础容器类型,使用vector实现st
s.empty();  //判断stack是否为空,为空返回true,否则返回false
s.size();   //返回stack中元素的个数
s.pop();    //删除栈顶元素,但不返回其值
s.top();    //返回栈顶元素的值,但不删除此元素
s.push(item);   //在栈顶压入新元素item


//queue
queue<int> q; 
q.empty();  //判断队列是否为空
q.size();   //返回队列长度
q.push(item);   //队尾压入一个新元素
q.front();  //返回队首元素的值,但不删除该元素
q.back();   //返回队尾元素的值,但不删除该元素
q.top();    //返回具有最高优先级的元素值,但不删除该元素

LPrincess大约 5 分钟ACMalgorithm
Prime-埃氏率

质数,埃氏筛

质数:又称素数;除1和他本身外,不被其他自然数整除,否则为合数。

第一种:暴力筛选法

找质数最基础的方法:

bool isprime(int n)
{
    if(n<2)return false;
    for(int i=2;i<n;i++)
    {
        if(n%i==0)return false;
    }
    return true;
}

LPrincess大约 5 分钟ACMalgorithm
格式化输出——cpp

c++获取数组中最大值

int a[n];
*max_element(a,a+n);

保留小数

printf("%.2f"%90.5)->90.50(不适用于保留1位小数)


LPrincess小于 1 分钟ACMalgorithm
格式化输出——py

Python就是要多实践,不懂就举个例子试试,多试试,才能懂这些函数是干什么的

保留两位小数,如90.50

print("%0.2f"%90.5)

LPrincess大约 1 分钟ACMalgorithm
QP+位运算

位运算,快速幂

前景提要:模运算(mod)

注意:有关取模运算,n%mod—>若n>abs(mod)则n%mod=0;

//加法取模
(a+b)%mod=(a%mod+b%mod)%mod;
//乘法取模
(a*b)%mod=(a%mod*b%mod)%mod;
//减法取模
(a-b)%mod=(a%mod-b%mod+mod)%mod;
//除法取模(特殊)
//规则1:当a能整除b时
(a/b)%mod=a%(b*mod)/b;
//规则2:无论a是否可以整除b,当b和mod互质(b和mod很少不互质) or a不能整除b
(a/b)%mod=a*qp(b,mod-2,mod)%mod;


LPrincess大约 4 分钟ACMalgorithm
题单9

xujc-oj竞赛组题单#9

提示

如果方便可以用万能头:#include<bits/stdc++.h>, 但竞赛中,用万能头会比普通调用更耗时

对角线的数量

数学上规定多边形的对角线是不相邻的两个顶点之间的线段。求正n边形对角线的数量。

公式:m * (m - 3) / 2

paper-cut

罗少有一张长方形的纸,他每次都会把这张纸剪成面积相同的两半(这两半也都是长方形),然后丢掉其中的一半。


LPrincess大约 2 分钟ACMalgorithm