博客
关于我
【PAT】1124 Raffle for Weibo Followers (20 分)
阅读量:739 次
发布时间:2019-03-22

本文共 1275 字,大约阅读时间需要 4 分钟。

为了生成John的幸运观众列表,我们可以采用以下策略:

  • 读取输入数据:首先,读取N、step和first的值,然后读取每个粉丝的名字存入向量followers

  • 初始化结构:使用vector来存储粉丝名字,并使用map来记录每个粉丝被抽中的次数,以避免重复抽选。

  • 抽奖循环:从指定的起始位置开始,每隔step个单位抽取一个粉丝。如果已经被抽中过,无需再次抽选,继续到下一个位置。

  • 更新结果:每次抽到一个新的粉丝时,将名字添加入winners向量,并将其计数加一,以便下一次抽取时跳过。

  • 处理结果:最后输出所有幸运观众的名字,或提示如果没有人中奖。

  • 以下是优化后的代码:

    #include 
    #include
    #include
    #include
    #include
    using namespace std;int main() { int n, step, first; string f; vector
    followers; vector
    winners; map
    record; scanf("%d %d %d", &n, &step, &first); for (int i = 0; i < n; i++) { cin >> f; followers.push_back(f); } int i = first - 1; // 从第first位开始 while (i < n) { int current = i; while (true) { string current_follower = followers[current]; if (record.find(current_follower) == record.end()) { break; } else { current += step; if (current >= n) { i = n; // 结束循环 break; } } } if (current >= n) break; i = current; winners.push_back(followers[current]); record[followers[current]]++; } if (winners.empty()) { cout << "Keep going...\n"; } else { for (const auto& winner : winners) { cout << winner << endl; } } return 0;}

    知识点总结

    • set和unordered_set:set按字典序排列,unordered_set元素存储位置随机,无法保证顺序。
    • reverse()函数:用于逆转向量。
    • 效率选择:使用向量存储粉丝,通过常见结构(如map)记录抽奖次数,确保高效且避免重复抽选,不影响查询和修改性能。

    转载地址:http://cgjwk.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现闭式函数计算特定位置的斐波那契数fibonacciNthClosedForm算法(附完整源码)
    查看>>
    Objective-C实现队列(附完整源码)
    查看>>
    Objective-C实现阶乘(附完整源码)
    查看>>
    Objective-C实现阶乘递归factorialRecursive算法(附完整源码)
    查看>>
    Objective-C实现阿特巴希密算法(附完整源码)
    查看>>
    Objective-C实现随机图生成器算法(附完整源码)
    查看>>
    Objective-C实现随机数生成器(附完整源码)
    查看>>
    Objective-C实现随机森林算法(附完整源码)
    查看>>
    Objective-C实现随机正态分布快速排序算法(附完整源码)
    查看>>
    Objective-C实现随机生成一个 RxC 列联表(附完整源码)
    查看>>
    Objective-C实现隐藏任务栏(附完整源码)
    查看>>
    Objective-C实现隔离数字的小数部分, 取这个数字并从底数中减去它,返回结果算法(附完整源码)
    查看>>
    Objective-C实现雅可比迭代法算法(附完整源码)
    查看>>
    Objective-C实现雪花算法(附完整源码)
    查看>>
    Objective-C实现雪花飘落效果(附完整源码)
    查看>>
    Objective-C实现霍夫曼树(附完整源码)
    查看>>
    Objective-C实现霍纳法则(附完整源码)
    查看>>
    Objective-C实现非丰富数之和算法(附完整源码)
    查看>>
    Objective-C实现非并行奇偶转置排序算法(附完整源码)
    查看>>
    Objective-C实现香农编码(附完整源码)
    查看>>