UVALive 6100 Jugglefest Mid-Central USA 2012 模拟
2016-07-13 18:25
344 查看
题意:每一秒都要往上抛一个球,这个球可以使用当前秒掉下来的球,如果没有,则使用一个新球。有个一节奏序列,每次抛球的高度都按照这个序列进行循环,
落下的时间点等于当前时间点 + 抛出高度。如果一个时间点有两个及以上的球掉下来,输出crash。
思路:单纯模拟,细节在注释
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4111
落下的时间点等于当前时间点 + 抛出高度。如果一个时间点有两个及以上的球掉下来,输出crash。
思路:单纯模拟,细节在注释
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4111
#include <stdio.h> #include <iostream> #include <algorithm> #include <string.h> using namespace std; int p; int a[10]; char ans[30]; int cnt; int main() { int i, j, pos; bool q; while(scanf("%d", &p), p) { memset(ans, 0, sizeof(ans)); for(i = 0; i < p; i++) scanf("%d", &a[i]); char ch = 'A', now; cnt = 0; q = true; //i为当前的第i秒,j为当前使用节奏的第j个 for(i = 0, j = 0; i < 20; i++, j = (j + 1) %p) { if(ans[i] == 0) //ans[i] == 0表示在这一秒没有球落下来,那么要使用一个新球 ans[i] = ch++; now = ans[i]; //now为当前使用的球 pos = i + a[j]; //pos是这个球落下的时间 if(pos < 20) { if(ans[pos] != 0) //ans[pos] != 0表示这个时间点已经有球落下来,那么输出crash { q = false; break; } ans[pos] = now; } } printf(q == true ? "%s\n" : "CRASH\n", ans); } return 0; }
相关文章推荐
- C#模拟http 发送post或get请求的简单实例
- Transformation 能将 Windows XP/Server 2003 操作系统,完美地模拟成 Windows Vista 的软件
- 用javascript和css模拟select的脚本
- PHP模拟asp.net的StringBuilder类实现方法
- C#使用ImitateLogin模拟登录百度
- javascript用层模拟可移动的小窗口
- JS模拟简易滚动条效果代码(附demo源码)
- 自编jQuery插件实现模拟alert和confirm
- JS模拟按钮点击功能的方法
- JS模拟的Map类实现方法
- PHP模拟asp中response类实现方法
- 模拟Spring的简单实现
- javascript 模拟点击广告
- JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
- php实现模拟post请求用法实例
- JavaScript实现MIPS乘法模拟的方法
- 模拟xcopy的函数
- JS模拟实现Select效果代码
- php模拟服务器实现autoindex效果的方法
- C# SendInput 模拟鼠标操作的实现方法