_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日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改