1069. 微博转发抽奖(20)
1069. 微博转发抽奖(20)
小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包。请你编写程序帮助他确定中奖名单。
输入格式:
输入第一行给出三个正整数M(<= 1000)、N和S,分别是转发的总量、小明决定的中奖间隔、以及第一位中奖者的序号(编号从1开始)。随后M行,顺序给出转发微博的网友的昵称(不超过20个字符、不包含空格回车的非空字符串)。
注意:可能有人转发多次,但不能中奖多次。所以如果处于当前中奖位置的网友已经中过奖,则跳过他顺次取下一位。
输出格式:
按照输入的顺序输出中奖名单,每个昵称占一行。如果没有人中奖,则输出“Keep going...”。
输入样例1:
9 3 2 Imgonnawin! PickMe PickMeMeMeee LookHere Imgonnawin! TryAgainAgain TryAgainAgain Imgonnawin! TryAgainAgain
输出样例1:
PickMe Imgonnawin! TryAgainAgain
输入样例2:
2 3 5 Imgonnawin! PickMe
输出样例2:
Keep going...
解析:计算机科学最重要的方法论就是分层\封装,如计算机系统结构,TCP\IP结构,这样做了以后可以使一件非常复杂的事情变得非常的明晰,这里面揭示了一种解决问题的方法论,就是一个问题非常复杂,看能不能分成几个层次或者阶段,在数学中也是这样,一个定理非常复杂(上学时我导师曾经用8个课时讲完一个定理),但是并不是上来就怼这个定理,而是讲了将近六七个引理,然后将这些引理连到一起就成了这个定理.
本题算法很简单(人脑想象),但是实现起来一头雾水,那就分成几个阶段吧:
1,从第S个开始, 每隔N个输出名字---->不难
2,在1基础上,输出名字时,顺便把名字存到另外一个数组中(供查阅是否有人重复得奖使用)--->简单
3,在2基础上,如果有人重复得奖,则把这种情况除掉--->简单
4, 在3的基础上增加没有人得奖这种情况-->简单
代码如下:
/*************************************************************************> File Name: 1069.c> Author: YueBo> Mail: yuebowhu@163.com> Created Time: Tue 30 May 2017 08:00:14 AM CST************************************************************************/#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main()
{int M, N, S;char names[1000][32];char tmp[20];int i, j = 0, k;int cnt = 0;int flag, flag1 = 0;scanf("%d%d%d", &M, &N, &S);for (i = 1; i < S; i++)scanf("%s", tmp);i = 1;cnt = N - 1;while (i+S-1 <= M){scanf("%s", tmp);cnt++;if (cnt == N){flag = 0;for (k = 0; k < j; k++){if (!strcmp(names[k], tmp)){flag = 1;break;}}if (flag == 0){flag1 = 1;printf("%s\n", tmp);strcpy(names[j], tmp);j++;cnt = 0;}elsecnt = N - 1;}i++;}if (flag1 == 0)printf("Keep going...\n");return 0;
}
1069. 微博转发抽奖(20)相关推荐
- 【PAT乙】1069 微博转发抽奖 (20分) set
1069 微博转发抽奖 (20分) 小明 PAT 考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔 N 个人就发出一个红包.请你编写程序帮助他确定中奖名单. 输入格式: 输入第一行 ...
- PAT 1069. 微博转发抽奖(20)
1069. 微博转发抽奖(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 小明PAT考了满分,高兴之余决定 ...
- 1069 微博转发抽奖 (20分)
1069 微博转发抽奖 (20分) 小明 PAT 考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔 N 个人就发出一个红包.请你编写程序帮助他确定中奖名单. 输入格式: 输入第一行 ...
- PAT 乙级 1069 微博转发抽奖 (20 分)
题目:PAT 乙级 1069 微博转发抽奖 (20 分) 经验总结: 可以建立一个set,用于存放中奖用户.若set中有此用户,代表此用户已中奖,奖品顺延. C++代码: #include<bi ...
- 1069 微博转发抽奖 (20 分)(算法分析+代码实现)
1069 微博转发抽奖 (20 分) 题目链接 算法分析 用flag记录是否输出过获奖人名字 用map类型take记录某人是否拿走过奖品 用cnt记录间隔人数 然后按要求输出就好. 代码实现 #inc ...
- 1069 微博转发抽奖 (20 分)
1069 微博转发抽奖 (20 分) 小明 PAT 考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔 N 个人就发出一个红包.请你编写程序帮助他确定中奖名单. 输入格式: 输入第一 ...
- 【最简便解法】1069 微博转发抽奖 (20分)
立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 小明 PAT 考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔 N 个人就发出一个红包.请你 ...
- PAT Basic 1069. 微博转发抽奖(20)
小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包.请你编写程序帮助他确定中奖名单. 输入格式: 输入第一行给出三个正整数M(<= 1000).N ...
- PAT 1069. 微博转发抽奖(20)-乙级
小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包.请你编写程序帮助他确定中奖名单. 输入格式: 输入第一行给出三个正整数M(<= 1000).N ...
最新文章
- C#PDF转Image
- python函数注释 参数 省略号_解决python 输出是省略号的问题
- 如何根据sessionID获取session解决方案
- 操作系统原理:连续的内存分配
- python自动获取天气_用python获取天气数据,并作定时播报
- 软件测试基础知识(三)
- android 蒙版图片带拖动_黑橙修图:新手入门篇2-一句话带你认识图层蒙版
- 埃斯顿三轴机器人编程_一文了解Estun Studio机器人仿真与离线编程软件
- 2022 年最佳 15 款网络监控工具
- 找出数组中重复的值和所在位置
- Spring Cloud 与 Dubbo 功能对比
- 【供应链架构day10】供应链架构的基础逻辑
- 国外广告联盟,别被人当傻子割了
- 怎么看神经网络过早收敛_深度学习训练网络中,test loss比training loss早很多收敛,迭代次数要怎么取?...
- linux 755是什么意思
- JAVA-day09-多线程
- K8s 污点(Taints)与容忍(Tolerations)
- 【已解决】树莓派新系统连接vcn后无任务栏如何解决?
- 安装CV2,安装opencv
- 华硕ASUS B250M PLUS+i5 7500+核显+macos12.0+opencore0.7.2
热门文章
- 前端学习(1161):箭头函数02
- 淘宝主站Cgroup资源控制
- 玩转oracle 11g(22):ora-01691和修改密码过期时间
- java 盘符 系统_001-Java再回首开篇-入门基础
- 移动端click延迟和tap事件
- 理解CSS3 max/min-content及fit-content等width值
- 关于AI你可能不知道的5件事情
- 剑指offer--重建二叉树
- java面向对象编程思想_Java面向对象编程思想
- tc溜溜865手机投屏卡_溜溜tcgames老版本(电脑玩手机游戏)-溜溜TC Games32位/64位旧版本PC下载V2.0.0官网安卓真机投屏-西西软件下载...