杂类模板

坑点

cout

换行请用cout<<'\n',大量使用cout<<endl,评测机不好会导致超时(亲身经历 luogu P1440)

二分

二分过程最好用mid = (l+r)>>1

(l+r)/2 结果会舍去小数,也就是a+b是正数的时候,值变小,但是是负数的时候,值变大。
    比如1.5,和-1.5 。所以对于结果是正数,是向下取整,是负数的话,是向上取整
(l+r)>>1 正宗的向下取整

multiset

使用lower_bound 最好使用multiset自带的lower_bound,upper_bound也一样
使用普通的lower_bound可能会超时(亲身经历)

删除元素方面:如果是传入迭代器,只会删除迭代器指向的那一个值,如果传的是值,会删除所有等于这个值的节点

离散化

离散化能不用map就不要使用map,poj-2299 使用map离散化直接超时,改成用数组排序离散化AC

int快读

inline void read(int &x){
    int s=0,w=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
    while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
    x = s*w;
}

数学方面

质数

ll p[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 51};

p数组里面的质数相乘刚好会超过1e18

求卡特兰数

int N;
ll f[maxn];
f[0] = 1;f[1] = 1;
for(int i = 2;i<=N;i++){
    for(int j = 0;j<=i-1;j++){
        f[i] += f[j] * f[i-1-j];
    }
}

离散化

ll arr[maxn];
int pos[maxn],tail;
struct node2
{
    ll v,id;
    bool operator< (const node2 & o) const{
        return v<o.v;
    }
}cpy[maxn];
void Lisa(){ //将原下表i和离散化的下标pos[i]对应起来
    sort(cpy+1,cpy+N+1);
    for(int i = 1;i<=N;i++){
        if(cpy[i].v != cpy[i-1].v) pos[cpy[i].id] = ++tail;
        else pos[cpy[i].id] = tail;
    }
}
全部评论

相关推荐

会员标识
02-20 16:28
已编辑
牛客运营
从03年的“北大毕业生卖猪肉”到前段时间上热搜的“北大博士入职城管”,这些年“下沉式就业”现象频繁牵动着大家的视野和目光吧,很吸睛?我觉得并不是,如果你说985大学生XXX,那可能成不了焦点,如果说是北大清华毕业生去当城管,卖猪肉,大家都会讨论一番,无论是谁都知道北大清华的过人之处。但是呢近些年的确有很多985、211名校毕业生选择到基层就业或回老家创业,会不会觉得大财小用?老家的哥哥,因为当时学的专业不是很好,但好在学校不错,一路本硕连读,毕业之后在上海打拼了2年,也攒了一些小钱,随后回村选择科学养鸡,买了很大一块地开始科学方法的养鸡、卖鸡蛋,村里的老人都会议论纷纷,白瞎了家里供你读书,又回...
下午吃泡馍:不是每一个脱下长衫的人在下沉市场重获新生,并不是每一个养猪养鸡的高学历人才都会成功。现实是很多人的“长衫”就是自己为数不多甚至唯一的底牌了,拼尽全力拿到一个不错的学历,这时候主流媒体告诉对方脱下长衫也可以活的精彩,其实真的挺难过的。强者恒强,但是弱者是人群的底色。 本质上是整个市场的问题,没有足够多的增长点,没有足够多的岗位,自上而下没有积极向上的氛围。外企撤出,供应链缺失...在发展的过程中总有阵痛,现阶段可能就是我们承受阵痛的过程。之前在牛客看到一个小伙伴说:时代的一粒灰尘,落在谁的身上,都将是无法承受之重!深有感触。
点赞 评论 收藏
分享
明天不下雨了:兄弟你是我今天看到的最好看的简历(我说的是简历风格跟简历书写)把985 211再搞亮一点。投boss就说;您好,我华科(985)研二在读,本科211。对您的岗位很感兴趣,希望能获得一次投递机会。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务