_Phoebe__ 2022-01-13 20:14 采纳率: 96.9%
浏览 25
已结题

不太理解这个代码的意思 想知道怎么解释

题目在这里https://www.luogu.com.cn/problem/P1097
代码上标注的两个地方是什么意思呢?
谢谢大家!


#include <bits/stdc++.h>
using namespace std;
int a[200050];
int main(){
    int n,i,k,s=1;
    cin>>n;
    for (i=0;i<n;i++) cin>>a[i];
    sort(a,a+n);
    a[n]=-10000000;//理解不了这个语句是干什么用的 
    for (i=1;i<=n;i++)
        if (a[i]==a[i-1]) s++; 
           else {cout<<a[i-1]<<' '<<s<<endl;s=1;}//这里是怎么实现计数的捏? 
    return 0;
}
  • 写回答

1条回答 默认 最新

  • 吉拉尔 2022-01-13 23:10
    关注

    总共有n个数,存放在0~n-1的位置,计数逻辑是用后一个(i)和当前(i-1)进行比较,所以最后一个数a[n-1]要和a[n]比较,a[n]=-10000000只是随机的,只要不在规定的自然数范围内都可以随便写,主要确保和最后一个数a[n-1]不相等。
    计数规则是:如果当前数和上一个数相等则个数+1,不相等则是没出现过的自然数,新自然数个数重置为1。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月21日
  • 已采纳回答 1月13日
  • 创建了问题 1月13日

悬赏问题

  • ¥35 引用csv数据文件(4列1800行),通过高斯-赛德尔法拟合曲线,在选取(每五十点取1点)数据,求该数据点的曲率中心。
  • ¥20 程序只发送0X01,串口助手显示不正确,配置看了没有问题115200-8-1-no,如何解决?
  • ¥15 Google speech command 数据集获取
  • ¥15 vue3+element-plus页面崩溃
  • ¥15 像这种代码要怎么跑起来?
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误
  • ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧