线性表题解

大模型呼叫中心场景分享之六:大模型外呼IT运维告警——智能监控与自动化响应的未来 在数字化运维(IT Operations)中,实时监控系统健康状态并及时响应告警是保障业务连续性的关键。传统的IT告警方式(如邮件、短信、钉钉/企业微信通知)存在信息过载、响应延迟、人工处理效率低等问题。而大模型(LLM)与语音技术(TTS/ASR)的结合,为IT运维告警提供了更智能的解决方案——大模型外呼告警系统。大模型外呼告警系统正在重新定义IT运维的效率和体验。通过实时语音交互+智能自动化,企业能够将平均故障修复时间(MTTR)从小时级缩短至分钟级。 阅读详情

NO.1:集合合并

题目要求

这里是题干:

问题: 线性表的合并A=A∪B
设:有两个集合A和B分别用两个线性表LA和LB表示

求:一个新的集合 A=A∪B

输入:两个集合

输出:按照要求合并的集合

注意:提交代码的时候,仅需提交你编写的那三个基本操作函数即可。

 然后看下给出的输入输出样例:

测试输入期待的输出时间限制内存限制
测试用例 1以文本方式显示
  1. 5↵
  2. 1 2 3 4 5↵
  3. 6↵
  4. 3 4 5 6 7 8↵
以文本方式显示
  1. Output La:1,2,3,4,5,↵
  2. Output Lb:3,4,5,6,7,8,↵
  3. Result La:1,2,3,4,5,6,7,8,↵
1秒64M
测试用例 2以文本方式显示
  1. 0↵
  2. 4↵
  3. 1 2 3 4↵
以文本方式显示
  1. Output La:↵
  2. Output Lb:1,2,3,4,↵
  3. Result La:1,2,3,4,↵
1秒64M
测试用例 3以文本方式显示
  1. 5↵
  2. 8 9 0 1 2↵
  3. 6↵
  4. 8 9 0 3 2 1↵
以文本方式显示
  1. Output La:8,9,0,1,2,↵
  2. Output Lb:8,9,0,3,2,1,↵
  3. Result La:8,9,0,1,2,3,↵
1秒64M

 预设代码

#include <stdio.h>  
#include <stdlib.h>  
#define LIST_MAX_SIZE  100  //空间初始大小  
#define OK 1  
#define ERROR 0  
  
typedef int ElemType;       //元素的数据类型  
typedef int Status;         //状态。函数返回值   
typedef struct {  
//  ElemType elem[ LIST_MAX_SIZE ]; // 存储空间  
    ElemType * elem;    // 存储空间  
    int  length;        // 当前元素个数  
    int  listsize;      // 能够保存的最大元素数量   
} SqList;  
  
// 以下为函数原型   
Status InitList( SqList & );  
Status ListInsert( SqList &, int, ElemType );   //这是需要你编写的基本操作   
Status GetElem( SqList, int, ElemType & );  //这是需要你编写的基本操作   
int    ListLength( SqList );        //这是需要你编写的基本操作  
Status ListTraverse( SqList &, void (*)( ElemType ) );  
void   ListUnion( SqList &, SqList );  
void   out( ElemType );  
int    equal(ElemType, ElemType );   
Status LocateElem(SqList, ElemType, Status (*)(ElemType,ElemType));  
  
// 以下为函数定义  
Status InitList( SqList & L )   // 建立一个空的线性表 L  
{  
    L.elem = (ElemType *)malloc(LIST_MAX_SIZE*sizeof(ElemType));  
//  if ( !L.elem )  exit(-1);   // 失败则终止程序   
    L.length    = 0;            // 空表长度为0  
    L.listsize  = LIST_MAX_SIZE;  
    return OK;  
}  
  
Status ListTraverse( SqList &L, void (*visit)( ElemType ) )  
{   // 依次对L的每个元素调用函数visit()。若visit()失败,则操作失败  
    int i, L_len = ListLength( L );  
    ElemType e;  
      
    for ( i = 1;  i <= L_len; i++ )  {  
        GetElem(L, i, e);  
        (*visit)( e );  
    }  
    return OK;  
}  
  
int equal(ElemType x, ElemType y)  
{   return x==y;  
}  
  
Status LocateElem( SqList L, ElemType e,  
                   Status (*compare)(ElemType,ElemType) )  
{   //在L中查找与元素 e 满足compare() 的第 1 个元素  
    //返回 L 中第 1 个与 e 满足关系compare( ) 的元素的位序  
    int i = 1;  
    ElemType * p;  
    while ( i<=L.length )  //  
        if  ( (*compare)(e,L.elem[i-1]) ) break;  
        else  i++;  
    if ( i <= L.length )  return i;  // 找到 e,返回位序i  
    else return 0;      //若没有找到,则返回0  
}  
  
void out( ElemType e )  
{   printf("%d,", e);  
}  
  
void ListUnion( SqList &La,  SqList Lb ) //求 A=A∪B  
{   int La_len, Lb_len, i;  
    ElemType e;  
   
    La_len = ListLength( La );       // 求线性表的长度  
    Lb_len = ListLength( Lb );  
    for ( i = 1;  i <= Lb_len;  i++ )  {  
        GetElem(Lb, i, e);  // 取Lb中第i个数据元素赋给e  
        if ( !LocateElem( La, e, equal ) )   
            ListInsert ( La, ++La_len, e ); // La中不存在和 e 相同的数据元素,则插入  
    }  
}  
  
int main()  
{   SqList La, Lb;  
    int n, i;  
    ElemType e;  
      
    InitList( La );  
    InitList( Lb );  
    scanf("%d", &n);        //读入集合A   
    for ( i=0; i<n; i++ )  
    {   scanf("%d", &e);  
        ListInsert( La, i+1, e );  
    }  
    scanf("%d", &n);        //读入集合B   
    for ( i=0; i<n; i++ )  
    {   scanf("%d", &e);  
        ListInsert( Lb, i+1, e );  
    }  
    printf("Output La:");  
    ListTraverse( La, out );  
    printf("\nOutput Lb:");  
    ListTraverse( Lb, out );  
    ListUnion( La, Lb );  
    printf("\nResult La:");  
    ListTraverse( La, out );  
    printf("\n");  
    return OK;  
}  
  
/**************** 
Status ListInsert( SqList &L, int i, ElemType e ) 
{   //在顺序线性表L中第 i (1≤i≤L.length+1)个位置之前插入元素e, 
 
    Here is wating for you. 
 
} 
 
Status GetElem(SqList L, int i, ElemType &e) 
{ 
 
    Here is wating for you. 
 
} 
 
int ListLength(SqList L) 
{    
 
    Here is wating for you. 
 
} 

信息梳理

题目比较简单,所以就简单梳理一下预设代码中的信息。

首先是创建了线性表的结构体SqList,里面包含三个元素:

typedef struct {  
    ElemType * elem;    // 存储空间  
    int  length;        // 当前元素个数  
    int  listsize;      // 能够保存的最大元素数量   
} SqList; 

 然后是它写好的基本操作:

Status InitList( SqList & );  
Status ListTraverse( SqList &, void (*)( ElemType ) );  
void   ListUnion( SqList &, SqList );  
void   out( ElemType );  
int    equal(ElemType, ElemType );   
Status LocateElem(SqList, ElemType, Status (*)(ElemType,ElemType));  

所以这道题是不需要你去实现合并操作的,你只需要补全基本操作就即可:

Status ListInsert( SqList &, int, ElemType );   //这是需要你编写的基本操作   
Status GetElem( SqList, int, ElemType & );  //这是需要你编写的基本操作   
int    ListLength( SqList );        //这是需要你编写的基本操作 

代码实现

因为是基本操作所以就直接放代码了,如果是线性表不熟悉的可以去看一看线性表的介绍:

Status ListInsert( SqList &L, int i, ElemType e )   
{   //在顺序线性表L中第 i (1≤i≤L.length+1)个位置之前插入元素e,   
    if(L.length==0){  
        L.elem[0]=e;  
    }  
    else{  
        for(int j=L.length;j>=i;j--){  
            L.elem[j]=L.elem[j-1];  
        }  
        L.elem[i-1]=e;  
    }  
    L.length++;  
}   
   
Status GetElem(SqList L, int i, ElemType &e)   
{   e=L.elem[i-1];  
    return OK;  
}   
   
int ListLength(SqList L)   
{   return L.length;  
}  

NO.2:链表原地逆序

题目要求

请编写函数 void inverse( LinkList ),实现单链表的原地置逆。即利用原来的结点将线性表:L =(a1, a2, …… , an)

变换为:L =( an,  …… , a2, a1)

预设代码 

注意:不要直接划走!!!继续往下看!!!

#include <iostream>  
using namespace std;  
  
typedef int ElemType;  
typedef struct node  
{   ElemType    data;  
    struct node * next;  
} NODE;  
typedef NODE * LinkList;  
  
void output( LinkList );  
void change( int, int, NODE * );  
LinkList createList( ElemType );  
void inverse( LinkList );   
  
LinkList createList( ElemType finish )  //finish:数据结束标记   
{  
    ElemType x;  
    NODE *newNode;   
    LinkList first = new NODE;   // 建立头结点  
    first->next = NULL;  
    first->data = finish;  
    cin >> x;                 // 约定以finish结束连续输入  
    while ( x != finish )  
    {  
        newNode = new NODE;      // 建立新结点  
        newNode->data = x;  
        newNode->next = first->next; // ①  
        first->next = newNode;       // ②  
        cin >> x;  
    }  
    return first;  
}  
  
void output( LinkList head )  
{   cout << "List:";  
    while ( head->next != NULL )  
    {   cout << head->next->data << ",";  
        head = head->next;  
    }  
    cout << endl;  
}  
  
int main(int argc, char** argv)   
{  
    LinkList head;  
  
    head = createList( -1 );  
    output( head );  
    inverse( head );  
    output( head );  
    return 0;  
}  

PS:这里说明下哈!这些题目的预设代码大多是用C++的,的是仔细看的话会发现,其实跟C语言差不多,并且C语言在C++环境下是可以直接编译的,所以如果老师要求用C++的话,用C语言也是完全没有问题的!

信息梳理

然后进行一个简单的信息梳理,首先是链表结点(包括指针域和数据域),同时注意这个链表是带有头结点的:

typedef struct node  
{   ElemType    data;  
    struct node * next;  
} NODE;  
typedef NODE * LinkList; 

 然后是定义的三个基本操作,我们需要完成其中的void inverse( LinkList ) :

void output( LinkList );  
void change( int, int, NODE * );  
LinkList createList( ElemType );  
void inverse( LinkList );   

然后注意以下就是LinkList createList( ElemType )它是使用头插法的。

代码实现

这是一道经典的链表题,其难点在于”原地“二字。意思就是要求在该链表的基础上实现置逆,而不能再去开辟新的链表空间,而这样的现实意义就是:尽可能地实现空间的复用,是空间效率更高!

 直接从整个来链表看的话,似乎有点难下手,我们不妨将其减治:

我们假设只有两个结点,那么问题就很简单了,我们需要将1、2结点的连接断开同时将2指向1,以及将1指向空,这样两步操作。然后我们试着画一下三个结点:

发现同样是两步操作!!!好像问题变的简单起来了!!!我们不妨加上头结点看一看:

头结点好像有点不一样,每次置逆后,它要指向新链表的第一个结点。所以我们先不动头结点,每处理一次结点,就将其指向第一个结点。所以我们用一个结点*current来表示当前遍历的结点,又因为涉及到指针链接的断开,我们需要用一个结点*next来保存当前结点的后继,用*pre存好每次处理后的第一个结点:

LinkList pre=NULL;  
LinkList current=head->next;  //第一个遍历的结点当然是第一个结点
LinkList next=NULL; 

 所以我们这样写:

void inverse( LinkList head )  
{   LinkList pre=NULL;  
    LinkList current=head->next;  
    LinkList next=NULL;  
    while(current){  
        next=current->next;  
        current->next=pre;  
        pre=current;  
        current=next;  
    }  
    head->next=pre;  
}  

next=current->next; 

//这是保存当前结点的后继

current->next=pre;
pre=current;  

//将当前结点指向第一个结点,并更新第一个结点

current=next;  

//然后更新next,进入下一次循环

然后当current为空时,循环停止。退出循环后,将我们之前没处理的头结点head指向现在链表的第一个结点pre。

试着运行一下:

过啦!!!

源码

集合合并

链表原地置逆​​​​​​​

这两道题两周之前的题了(最近题有点多)(●'◡'●)。我抓紧把这两周的题解补上,也算是对知识的巩固吧。

RT-DETR训练前的准备,将数据集划分成训练集、测试集验证集(附完整脚本及使用说明) 在计算机视觉领域,当我们着手训练一个模型时,。其中,将数据集划分为和更是一项基础性且关键的操作。这篇博客分析了这一划分背后的原因、其重要意义以及如何通过代码实现,帮助大家更好地理解和运用这一技巧,。 阅读详情

相关推荐

【SWPUCTF 2021 新生赛】hardrce

对每个字符的ASCII值进行按位取反操作(这种要进行自增马进行绕过。

XiaoHei的博客 460

线性表题目

线性表题目

weixin_63233998的博客 1923

别再只盯着时序了!聊聊SDC里那些容易被忽略的‘配角’命令:工作条件、线载模型与面积约束

本文深入探讨了SDC(设计约束)中常被忽视的关键命令,包括set_operating_conditions、set_wire_load_model和set_max_area。这些‘配角’命令在芯片设计中扮演着至关重要的角色,影响时序收敛、功耗和面积优化。文章通过实际案例和最佳实践,揭示了如何正确配置工作条件、选择线载模型以及动态调整面积约束,以提升设计质量和效率。

weixin_26875109的博客 208

3. 链表原地逆序

3. 链表原地逆序

czh_vegetable的博客 2040

InVEST模型实战指南:从水源涵养到热岛缓解的生态系统服务评估

本文提供了InVEST模型的实战指南,详细介绍了从环境搭建、数据预处理到核心模型应用的完整流程。通过水源涵养、碳存储、土壤保持和城市热岛缓解等核心模型的拆解,帮助生态学者与规划者系统量化评估生态系统服务,将复杂的生态价值转化为直观的空间数据与地图,为科学决策提供有力支撑。

weixin_29197051的博客 430

谷粒商城学习笔记-15-数据库初始化

这一节的主要内容是把创建对应的数据库和数据库表。

epitomizelu的专栏 1438

【数据结构】——线性表的相关习题

若将删除结点 * p的操作转换为删除结点 * p的后继结点来实现,将下一个结点的指针域指向上一个结点,在交换数据域后,将* q结点从单链表中断开并释放该结点即可,这样的时间复杂度为O(1)。,也是将新结点的指针域指向下一个结点,该结点与前一个结点连接,然后通过一个中间变量将上一个结点的数据域与该结点交换即可,从而使时间复杂度达到。3、在单链表中删除第i个结点的时间复杂度为(),若将删除结点 * p的操作转换为删除结点 * p的后继结点来实现,其时间复杂度为()。时,则该双链表为空。

小宇y的博客 3500

国科大学习资料--VLSI测试与可测试设计--2020期末考试试题

国科大学习资料–VLSI测试与可测试设计–2020期末考试试题 国科大学习资料–VLSI测试与可测试设计–2020期末考试试题 国科大学习资料–VLSI测试与可测试设计–2020期末考试试题 一、概念题 1简述可测试性测度与两个主要的测度指标的含义; 2以March C-算法为例,说明March算法的构成,以及March C-算法的故障覆盖率; 3“效果-原因”诊断法和“原因效果诊断法”的不同; 4列举四条扫描设计时出现的问 题及解决办法; 5最少写出1149.1与1500的五点不同; = = = = =

无名何许人的博客 1150

链表原地逆序(C语言)

请编写函数 void inverse( LinkList ),实现单链表的原地置逆。即利用原来的结点将线性表:L =(a1, a2, …… , an) 变换为:L =( an, …… , a2, a1) 说明:本题目为经典的单链表算法设计题目,简单而有内涵。预设代码中仅用到了C++中的个别东西,但没有采用面向对象的编程方式。

2301_79497461的博客 284

优秀的 Verilog/FPGA开源项目介绍(二十七)- 小型CPU

介绍在FPGA上实现一个CPU是一个令人兴奋的事情,但是太复杂的CPU实现起来太难,而且不适合去了解计算机的架构,所以今天介绍一些小型的CPU,比如8051、MIPS、MSP430等~关于RISC-V的项目,请查看《优秀的 Verilog/FPGA开源项目介绍(二)-RISC-V》ZipCPUhttp://zipcpu.com/about/zipcpu.html项目介绍Z...

OpenFPGA的博客 2576

什么是信噪比?信噪比越大好还是越小好?

在进行声音增强的时候,往往需要考虑声音信号和噪声的信噪比,那么信噪比是什么呢?越大越好还是越小越好,此处引入百度百科的解读: 信噪比,英文名称叫做SNR或S/N(SIGNAL-NOISE RATIO),又称为讯噪比。是指一个电子设备或者电子系统中信号与噪声的比例。这里面的信号指的是来自设备外部需要通过这台设备进行处理的电子信号,噪声是指经过该设备后产生的原信号中并不存在的无规则的额外信号(或信息),并且该种信号并不随原信号的变化而变化。 同样是“原信号不存在”还有一种东西叫“失真”,失真和噪声实际上有一

码匀的博客 7万+

数据结构51道基础题之线性表13题

题好精要,巩固基础 文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决....

&volume的博客 1476

用R来做一个临床研究亚组分析的森林图

在编程语言里R语言最强大的功能是做图功能,我们知道在做Meta分析的时候会需要做森林图,实际上我们在很多临床研究中也经常看到森林图,主要是亚组分析的森林图,比如下面这篇文章里的一个森林图: 今天就教教大家怎么用R语言来做上面这种亚组分析的森林图 1. 在Excel里编辑好数据,按照下面的格式整理,保存为csv格式 2. 下载安装R跟Rstudio R软件的下载地址: https://mirrors.tuna.tsinghua.edu.cn/CRAN/ Rstudio下

Mrrunsen的博客 5340

icoding题解线性表

设计算法将其调整为左右两部分,左边的元素(即排在前面的)均为奇数,右边所有元素(即排在后面的)均为偶数,并要求算法的时间复杂度为O(n),空间复杂度为O(1)。试写一高效算法,删除表中所有大于mink且小于maxk的元素(若表中存在这样的元素),分析你的算法的时间复杂度。设计一个高效的算法,从顺序表L中删除所有值介于x和y之间(包括x和y)的所有元素(假设y>=x),要求时间复杂度为O(n),空间复杂度为O(1)。,am),B=(b1, b2,…编写算法,在一非递减的顺序表L中,删除所有值相等的多余元素。

zxlzxl66的博客 673

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

[题解]CSP-买菜(线性表)

文章目录算法思想结果分析 题目链接. 算法思想 利用线性表存储他们在装车的时间,题目要求计算他们共同在装车的时间,我就只需要求两个线性表的交集即可。同时注意,题目条件里有对于一个时间段[s, t]而言,是从时刻s到时刻t这段时间,时长为t-s,也就是说,是左开右闭区间,长下面这个样。 #include<iostream> #include<math.h> using namespace std; //买菜 int n = 0; int shopping_H[1000005] = {

东皇太一在此的博客 282

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【算法题解】线性表相关

文章目录从尾到头打印链表排序链表的合并反转链表输出单链表倒数第 K 个节点两个链表的第一个公共节点删除链表中节点,要求时间复杂度为O(1) 从尾到头打印链表 来源:剑指offer 牛客网 有三种思路: 第一就是利用栈先入后出的特性完成; 第二就是将链表元素顺序存下来,然后进行数组翻转; 第三是利用递归。 1.栈思路: class Solution { public: vector<i...

qq_43145072的博客 366

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

[题解]CSP-火车购票(线性表)

文章目录算法思想结果分析 题目链接. 算法思想 使用线性表,这里用数组,因为第一次要判断同一排的座位,所以另外设置一个数组place来记录每一排剩余的座位数,这样就不需要遍历每一个座位即可得到结果。第二次判断得从头遍历,找到所需要的数量即可。 #include<iostream> using namespace std; //数组 int chair[21][6] = {};//座位编号,0 代表售出 int place[21] = {}; //每一排剩余座位数 int n, p, tic

东皇太一在此的博客 413

数据结构线性表选择题习题题解

数据结构线性表选择题题解

qq_64496118的博客 452

求链式线性表的倒数第K项——个人题解与总结

在解决此类问题时,应该注意对于K大于链表长度或者输入为空的边界情况的处理。利用队列数据结构的特性,只需要维护一个大小为K的队列,这种方法提醒我们要突破“必须要存储所有数据”的思维定式,能够想到若要确定倒数第K项元素,只需要知道最后K个元素即可。而队列的FIFO特性完美匹配了这个题目的需求。每当新元素加入时,如果A队列已满(size>K),就自动淘汰最早的元素,这种机制确保了A队列始终包含最新的也就是最后的K个元素。这种思维方式教会我们:有时候不需要掌握全部信息也能解决问题。

Daybreak_OvO的博客 433

opj线性表Placing apples 题解

4:Placing apples 总Time Limit: 1000msMemory Limit: 65536kB Description We are going to place M same apples into N same plates. There could be some empty plates. How many methods do we have? Whe

dreamjay1997的博客 864

数据结构题解:线性表的创建,插入数据,排序,合并。

#include &lt;cstdio&gt; #include &lt;cmath&gt; #include &lt;algorithm&gt; #include &lt;iostream&gt; #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 #define OK 1 #define ERROR 0 #define INFEASIBLR...

小宫主的博客 939

数据结构线性表题解

1,大整数加法: 链接:http://xmnd.openjudge.cn/ds201602/1/ 分析:题意很简单,给两个大整数,让你求出他们两的和 其实Java中就有专门用于大整数、大浮点数的运算,有兴趣的了解一下,用起来很方便 import java.math.BigInteger; import java.util.Scanner; public class Main { p...

swunHJ的博客 765

[题解]CSP-最小插值(线性表)

文章目录算法思想代码说明结果分析 题目链接. 算法思想 存储在线性表(数组)中之后,对它使用快排,使得数据按照升序排列,只需要从头遍历,计算相邻两个数之差,再找出所有插值的最小值即可。 代码说明 #include<algorithm>这个库函数里边有快速排序sort(),当第三个参数缺省时,默认按照升序排列,第一个和第二个参数为你需要排序的数组首地址和结束地址。 #include<iostream> #include<algorithm> using namespace

东皇太一在此的博客 395

[题解]CSP-小明种苹果(线性表)

文章目录算法思想结果分析 题目链接. 算法思想 依题意,对从第2行开始的每一行的后边,只需要求得从第2个开始的疏果数总数,把它当作一个整体就好。比较大小计算P和k的时候,就只需要它了。至于T就更简单了,把下面所有数据加起来就好。 其实不需要线性表结构的,每次一读入数据就顺便计算就非常方便 #include<iostream> using namespace std; //小明种苹果 long long int N, M, m; //我就不懂了,只是把这行从 "int" 换成 "long long

东皇太一在此的博客 223

[题解]CSP-分蛋糕(线性表)

文章目录算法思想代码说明结果分析 题目链接. 算法思想 遍历蛋糕,判断一下到底是给这个人还是下一个,判断标准是这个人手中的蛋糕量是否达到了k,若达到了,就让给下一个。 注意对最后一个蛋糕而言,无论是给当前这个人还是让给下一个,都有一个人没有计数,记得算进去。 多审题,多审题。 代码说明 上面的注意点,也可以从我写的while循环里边的 if 的两个分支的角度来考虑: 1、进入到第一个分支,很显然没有改变ans,需要把当前这个人算进去; 2、进入到第二个分支,我们把这个蛋糕让给了下一个人,记得不要把下一个人给

东皇太一在此的博客 362

洛谷P3156题解(线性表)

题目来源 #include <stdio.h> #include<iostream> const int MaxSize = 2e6+5; using namespace std; typedef long long DataType; typedef long long ll; typedef struct{ DataType data[MaxSize]; int length; }SeqList; int CreatList (SeqList *L,DataType a[

m0_54249271的博客 503
上一篇: 数据结构-栈(理解版)
下一篇: 线性表题解
小陈又菜
博客等级 码龄3年 680粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值