1 条题解

  • 0
    @ 2025-8-24 22:49:07

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar wmrqwq
    会登顶的。

    搬运于2025-08-24 22:49:07,当前版本为作者最后更新于2023-08-12 18:19:40,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    原题链接

    P9517 drink

    题目简述

    给定一个只包含 0011 的序列,求序列中第一个 11 出现的位置到最后一个 11 出现的位置一共有多少个数字。

    解题思路

    这道题是一道模拟题,只需要依次判断第一个 11 出现的位置和最后一个 11 出现的位置有几个数字即可,不过还有一些小细节,比如序列中没有 11 的情况,这时只需要判断一下,即可通过此题。

    参考代码

    #include<bits/stdc++.h>
    using namespace std;
    #define QwQ return 0;
    long long n,a[100010],b,c;
    int main()
    {
    	cin>>n;
    	for(int i=0;i<n;i++)
    	{
    		cin>>a[i];
    		if(a[i]==1)
    			c=i;//统计最后一个1出现的位置
    	}
    	for(int i=0;i<n;i++)
    		if(a[i]==1)
    		{
    			b=i;//统计第一个1出现的位置
    			break;
    		}
    	if(b==0 && c==0)//注意这里要特判
    		cout<<0;
    	else
    		cout<<c-b+1;//注意这里要加上1
    	QwQ;
    	
    }
    
    
    • 1

    信息

    ID
    8948
    时间
    1000ms
    内存
    512MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者