PTA乙级 (1069 微博转发抽奖 (20分)(vector,map))

1069 微博转发抽奖 (20分)

https://pintia.cn/problem-sets/994805260223102976/problems/994805265159798784

1、使用vector来保存输入的用户名。

2、使用map来进行筛选,记录用户是否已经中奖。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 #include <cmath>
 5 #include <string>
 6 #include <cstring>
 7 #include <vector>
 8 #include <map>
 9 using namespace std;
10 int main()
11 {
12     vector<string> rec;
13     map<string, int> count;
14     string temp;
15     int m,n,s;
16     rec.push_back(" ");
17     cin>>m>>n>>s;
18     for(int i=1;i<=m;i++)
19     {
20         cin>>temp;
21         rec.push_back(temp);
22     }
23     if(s>m)
24     {
25         cout<<"Keep going...\n";
26         return 0;
27     }
28     else{
29         for(int i=s;i<=m;i+=n)
30         {
31             while(count[rec[i]]>=1) i++;
32             count[rec[i]]+=1;
33             cout<<rec[i]<<endl;
34         }
35     }
36     return 0;
37 }

原文地址:https://www.cnblogs.com/jianqiao123/p/12210753.html

时间: 2024-11-06 11:37:04

PTA乙级 (1069 微博转发抽奖 (20分)(vector,map))的相关文章

PAT Basic 1069 微博转发抽奖 (20 分)

小明 PAT 考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔 N 个人就发出一个红包.请你编写程序帮助他确定中奖名单. 输入格式: 输入第一行给出三个正整数 M(≤ 1000).N 和 S,分别是转发的总量.小明决定的中奖间隔.以及第一位中奖者的序号(编号从 1 开始).随后 M 行,顺序给出转发微博的网友的昵称(不超过 20 个字符.不包含空格回车的非空字符串). 注意:可能有人转发多次,但不能中奖多次.所以如果处于当前中奖位置的网友已经中过奖,则跳过他顺次取下一位. 输

1069 微博转发抽奖 (20 分)

#include <iostream> #include <set> #include <string> using namespace std; set<string>ss; void tmp() { int n, m, t; cin >> t >> n >> m; for (int i = 1; i <= t; i++) { string s; cin >> s; if (i == m &&a

1069. 微博转发抽奖(20)

1069. 微博转发抽奖(20) 小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包.请你编写程序帮助他确定中奖名单. 输入格式: 输入第一行给出三个正整数M(<= 1000).N和S,分别是转发的总量.小明决定的中奖间隔.以及第一位中奖者的序号(编号从1开始).随后M行,顺序给出转发微博的网友的昵称(不超过20个字符.不包含空格回车的非空字符串). 注意:可能有人转发多次,但不能中奖多次.所以如果处于当前中奖位置的网友已经中过奖,则跳过他顺次取下

PTA乙级 (1068 万绿丛中一点红 (20分)(map))

1068 万绿丛中一点红 (20分) https://pintia.cn/problem-sets/994805260223102976/problems/994805265579229184 题目思路: 题目给定N*M个数字,要求找出只出现一次的数字,并且这个数字的相邻的数字都和他的差值必须大于给定的阈值tol.那么我们就找出出现次数为1的数字,然后判断该数字是否满足阈值这个条件.我们用map的key表示数字,value来表示key出现的次数. 题目代码: 1 #include <iostre

PAT 1069. 微博转发抽奖

PAT 1069. 微博转发抽奖 小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包.请你编写程序帮助他确定中奖名单. 输入格式: 输入第一行给出三个正整数M(<= 1000).N和S,分别是转发的总量.小明决定的中奖间隔.以及第一位中奖者的序号(编号从1开始).随后M行,顺序给出转发微博的网友的昵称(不超过20个字符.不包含空格回车的非空字符串). 注意:可能有人转发多次,但不能中奖多次.所以如果处于当前中奖位置的网友已经中过奖,则跳过他顺次取下

PTA乙级 (1057 数零壹 (20分))

1057 数零壹 (20分) https://pintia.cn/problem-sets/994805260223102976/problems/994805270914383872 第一次:段错误  错误代码: 1 #include <cstdio> 2 #include <cstring> 3 #include <string> 4 #include <cmath> 5 #include <algorithm> 6 #include <

PTA乙级 (*1054 求平均值 (20分))

1054 求平均值 (20分) https://pintia.cn/problem-sets/994805260223102976/problems/994805272659214336 #include <cstdio> #include <cstring> #include <string> #include <iostream> #include <cmath> #include <algorithm> #include <

PTA乙级 (1048 数字加密 (20分))

1048 数字加密 (20分) https://pintia.cn/problem-sets/994805260223102976/problems/994805276438282240 第一次提交:  错误原因:a的位数大于b时,b不足的位需要补0做运算! 第二次提交: 代码: #include <iostream> #include <cstring> #include <string> #include <cmath> #include <alg

PTA乙级 (1043 输出PATest (20分))

1043 输出PATest (20分) https://pintia.cn/problem-sets/994805260223102976/problems/994805280074743808 #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <string> #include <cmath> using na