牛客算法入门一(17)

这篇博客主要介绍了算法入门的一些问题,包括校门外的树问题、明明的随机数处理、拼数的字典序排序以及纪念品的贪心分组策略。在巨石滚滚问题中探讨了贪心算法的应用,同时提到了值周问题的解决思路,强调了在大型数据输入输出时使用`std::ios::sync_with_stdio(false)`来优化效率。最后,讲解了铺地毯问题的倒查方法。
摘要由CSDN通过智能技术生成

https://ac.nowcoder.com/acm/problem/collection/481

校门外的树

标记始末状态

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int vis[10005];

int main() {
   
    int l, m;
    cin>>l>>m;
    while (m--) {
   
        int x, y;
        cin>>x>>y;
        for (int i=x; i<=y; i++) vis[i]=1;
    }
    int cnt=l+1;
    for (int i=0; i<=l; i++)
        if (vis[i]) cnt--;
    cout<<cnt<<endl;
    return 0;
}

明明的随机数

排序,去重(把不重复元素前移)

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[110];

int main() {
   
    int n;
    cin>>n;
    for (int i=0; i<n; i++) cin>>a[i];
    sort(a,a+n);
    int k=unique(a, a+n)-a;
    cout<<k<<endl;
    for (int i=0; i<k; i++) cout<<a[i]<<" ";
    return 0;
}

拼数

自定义字典序的string排序

#include <bits/stdc++.h>
using n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值