• 每日一题AC


    3.小张的工厂里的厂房受到台风的袭击,导致部分厂房的顶棚遭到了破坏,急需修理。厂房是由一间间的相同宽度的隔间组成,这些隔间都是连在一起的,连成了一条直线,隔间采用塑钢板作为顶棚,多个隔间可以共用一块长的塑钢板。这些隔间里有的有货物,有的没有货物,因为考虑到最近可能还会有台风,所以必须把有货物的隔间的顶棚修理好。 目前塑钢板的供应商能提供的板材的数量有限制,但长度没有限制,所以小张只能尽量的减少板材的数量。请你帮助小张计算需要采购塑钢板的最小长度。

    输入格式 第1行:M,S和C(用空格分开)。M为能买到的板材的最大数目(1<=M<=50),S为厂房总的隔间的数量,1<=S<=200,C为有货物的隔间的数量。 第2到C+1行:每行包含一个整数,表示有货物的隔间的编号。编号从1开始,1<=C<=S

    输出格式 输出一行,采购的塑钢板的总长度。

    输入输出样列 输入样例1: 1 10 4 2 5 7 8 输出样例1: 7

    思路:对编号排序用最大的编号减最小的然后加一(网上题解说是最小生成树,我觉得没那么麻烦,代码实现功能和题解一样)

    AC代码:

    ​#include 
    #include 
    using namespace std;
    ​
    int main() {
        int m, s, c;
        cin >> m >> s >> c;
    ​
        int a[c];
        for (int i = 0; i < c; i++) {
            cin >> a[i];
        }
    ​
        sort(a, a + c);
        cout< 
    

     

    网上最小生成树

    #include
    #include
    using namespace std;
    ​
    const int MAXN=205;
    const int MAXM=40010;
    ​
    int M,S,C;
    int cnt=0;
    int num=0;
    int ans=0;
    int f[MAXN];
    int a[MAXN];
    struct Edge
    {
        int u,v,w;
        bool operator<(const Edge a)const{
            return w>M>>S>>C;
        for(int i=0;i<=S;++i)
        {
            f[i]=i;
        }
        for(int i=1;i<=C;++i)
        {
            cin>>a[i];
            for(int j=1;j 
    

     

  • 相关阅读:
    mybatisPlus
    针对垃圾渗滤液中膜产水脱氮工艺的设计,除氨氮树脂
    内存卡视频误删怎么恢复?4个方法,找回视频!
    Spring基础:注解实现AOP
    matlab矩阵的输入
    最新泛微java面试题及答案
    1329: 【C2】【排序】奖学金
    MacOS开发环境搭建
    JS高级 之 防抖debounce - throttle节流
    OBS-VirtualCam OBS的虚拟摄像头插件
  • 原文地址:https://blog.csdn.net/weixin_74384251/article/details/133819243