罗小白


私信TA

用户名:Timmmmy

访问量:16398

签 名:

隔一年又回来刷题了...

等  级
排  名 141
经  验 7194
参赛次数 0
文章发表 46
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

有问题可以互相交流,共同提高 欢迎私信,请多指教:)

解题思路:
        很人类的思维,每次输入衣服长度后,更新status数组的值,随后记得加上一个空隔位
注意事项:
        最后一件衣服后面也加了一个空隔位,追求严谨的同学,最后多加一条语句status[index-1] = '0'即可。我懒。
参考代码:

#include<bits/stdc++.h>
using namespace std;

int main()
{
    // 晾衣杆长度
    int n;
    cin >> n;
    // 每组衣服的件数
    int cloNum;
    char status[100010];
    while (cin >> cloNum) {
        int i, j;
        // 当前衣服长度
        int cloLen;
        // 查询位置,即题目里的i
        int queryPos;
        // 操作status数组的下标,题目意思是从1位置开始晾衣服的
        int index = 1;
        // 初始化
        memset(status, '0', sizeof(char) * 100010);
        for (i = 0; i < cloNum; ++i) {
            cin >> cloLen;
            // 这里可能要花点时间理解,简单说就是从index位置开始晾衣服,晾cloLen个长度
            for (j = 0; j < cloLen; ++j) {
                status[index + j] = '1';
            }
            // index记得更新
            index += cloLen;
            // 空隔位,顺便index自增
            status[index++] = '2';
        }
        cin >> queryPos;
        cout << status[queryPos] << endl;
    }
    return 0;
}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区