小米 OJ 编程比赛 12 月常规赛

小米兔跳格子

序号:#119难度:一般时间限制:1000ms内存限制:30M

描述

米兔爸爸为了让小米兔好好锻炼身体,便给小米兔设置了一个挑战——跳格子。

要吃到自己心爱的胡萝卜,小米兔需要跳过面前一些格子。现有 NN 个格子,每个格子内都写上了一个非负数,表示当前最多可以往前跳多少格,胡萝卜就放在最后一个格子上。米兔开始站在第 1 个格子,试判断米兔能不能跳到最后一个格子吃到胡萝卜呢?

输入

输入为 NN 个数字 (N \lt 10N<10),用空格隔开,第 ii 个数字 s_isi? (0 \le s_i \lt 100≤si?<10) 表示米兔站在第 ii 个格子上时,最多能往前跳的格数。

输出

若米兔能跳到最后一个格子上吃到胡萝卜,输出 “true“,否则输出 “false“

输入样例

2 0 1 0 0 3 4

复制样例

输出样例

false
 1 def solution(line):
 2     ans = [0 for i in range (30)]
 3     ln = len(line)
 4     for i in range (ln):
 5         for j in range(1, line[i] + 1):
 6             ans[i + j] = 1
 7     for i in range(1, ln):
 8         if ans[i] == 0:
 9             print(‘false‘)
10             return
11     print(‘true‘)
12
13
14 an = list(map(int, input().strip().split()))
15 solution(an)

数数字游戏

序号:#117难度:困难时间限制:1000ms内存限制:10M

描述

小爱和小冰是一对好闺蜜,她们都是世界上最聪明的人工智能之一。某一天,他们俩一起玩数数字游戏,规则如下:

  1. 首先小爱和小冰各说一个目标数字num1num1,num2num2;
  2. 小爱和小冰轮流报数(小冰报数方法与小爱相同),每次只报一个数,报数者可以选择将这个数报给谁;
  3. 小爱先开始报数字,把这个数给自己或小冰都行,小爱和小冰各自得到的所有数之和不能超过自己的目标数字;
  4. 最终,谁再也报不出符合条件的数字谁就算输,另一个人就赢(即谁报完数后,两人所得数字之和都达到了各自的目标数字,谁就赢);
  5. 由于两人智商都是非常的高,所以觉得游戏太简单了,于是两人决定每次报的数只能是斐波那契数列中的元素(例如每次取1,2,3,5,8.......) 。

现在两人各说一个目标数字后请你判断谁会赢。如果小爱赢则输出"Xiaoai Win",反之小冰赢输出"Xiaobing Win"。两人都很聪明,都会使用最优策略(每次报数是最优的)。

规定:斐波那契数列F(1)=1,F(2)=2,F(N)=F(N-1)+F(N-2)F(1)=1,F(2)=2,F(N)=F(N−1)+F(N−2)

输入

两个正整数,用空格隔开,分别表示小爱和小冰的目标数字num1num1,num2num2。

数据范围:num1,num2 &lt; =10000num1,num2<=10000

输出

输出 "Xiaoai Win" 或 "Xiaobing Win",分别表示小爱赢或小冰赢。

输入样例

1 4
3 4
4 4
1 5

复制样例

输出样例

Xiaoai Win
Xiaoai Win
Xiaobing Win
Xiaobing Win

博弈论,sg函数

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define N 10005
 4
 5 int f[N],sg[N],hash[N];
 6 void getSG(int n)
 7 {
 8     int i,j;
 9     memset(sg,0,sizeof(sg));
10     for(i=1;i<=n;i++)
11     {
12         memset(hash,0,sizeof(hash));
13         for(j=1;f[j]<=i;j++)
14             hash[sg[i-f[j]]]=1;
15         for(j=0;j<=n;j++)    //求mes{}中未出现的最小的非负整数
16         {
17             if(hash[j]==0)
18             {
19                 sg[i]=j;
20                 break;
21             }
22         }
23     }
24 }
25 int main()
26 {
27     int i,m,n,p;
28     f[0]=f[1]=1;
29     for(i=2;i<=21;i++)
30         f[i]=f[i-1]+f[i-2];
31     getSG(10001);
32     while(scanf("%d%d",&m,&n)!=EOF)
33     {
34
35         if((sg[m]^sg[n])==0)
36             printf("Xiaobing Win\n");
37         else
38             printf("Xiaoai Win\n");
39     }
40     return 0;
41 }

最后一题还没写......

原文地址:https://www.cnblogs.com/zllwxm123/p/10177857.html

时间: 2024-07-30 17:05:31

小米 OJ 编程比赛 12 月常规赛的相关文章

小米 OJ 编程比赛 03 月常规赛

A.数学等式 数据比较小,可以暴力+折半枚举. #include<bits/stdc++.h> #define ll long long #define rep(i,a,b) for(int i=a;i<=b;i++) using namespace std; const int maxn=200010; map<int,int>mp; int main() { int N,A,B,C,D,E; ll ans=0; scanf("%d%d%d%d%d",&

VC++6.0 下配置 pthread库2010年12月12日 星期日 13:14VC下的pthread多线程编程 转载

VC++6.0 下配置 pthread库2010年12月12日 星期日 13:14VC下的pthread多线程编程     转载 #include <stdio.h>#include <stdlib.h>#include <pthread.h> void* tprocess1(void* args){       int i=1;       while(i<=10){            printf("process1:%d\n",i);

2018-01-03 中文编程专栏月报:2017年12月

原文知乎地址: 中文编程专栏月报:2017年12月 祝各位2018年好! 上次月报末尾的下一步打算: 尝试在office软件插件中实现简单的中文编程(源自讨论) 基于官方文档Walkthrough: Creating Your First VSTO Add-in for Excel, 需要付费版的VS, 暂时不具备此条件. 而且国内其他开源版本的office应该使用率很低, 因此此方向暂不继续. 汉化编程语言关键词的推敲/整理 Java关键字的汉化用词探讨. 在评论中, 有建议参考易语言的关键字

网易云课堂_C++程序设计入门(下)_第10单元:月映千江未减明 – 模板_第10单元 - 单元作业:OJ编程 - 创建数组类模板

第10单元 - 单元作业:OJ编程 - 创建数组类模板 查看帮助 返回 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩. 本单元作业练习创建模板类.单元作业会涉及冒泡排序.线性查找等算法.如果对排序.查找不熟悉,可以自行baidu或者google 依照学术诚信条款,我保证此作业是本人独立完成的. 1 编写一个数组类模板 Array,能够存储不同类型的数组元素.对数组元素进行查找.

四川大学线下编程比赛第三题:书本转移

好久没写过日志,也怪最近事情真的特别多,最近参加关于编程方面就是CSDN高校俱乐部举办的线下编程塞,说起这次编程赛,总共三道题,题目都可以在csdn高校俱乐部上看到,参加比赛的时候有点小紧张,第三题涉及到队列,当时的机器没有代码提示,坑...也怨自己平时写代码用惯了代码提示,很多stl的方法都是隐隐约约知道,但是具体的不知道,导致第三题没有做出来,遗憾哈!下面贴一下今天写的第三题的代码 题目 四川大学线下编程比赛第三题:书本转移 题目详情: 小强有 3 个箱子 A,B,C 用来装书,所有的书(一

2014华为编程比赛-筷子问题

//华为编程:筷子,找到第一个单对的筷子 #include <stdio.h> #define max 37 int main() { int n,i,j; int a[max]; int flag=0; int error=-1; scanf("%d",&n); if(n>max) { printf("%d\n",error); return error; } for(i=0;i<n;i++) scanf("%d"

12月上海Cloudera Hadoop大数据培训:CCAH、CCDH

北京.上海.广州.成都长期开班:南京.杭州.芜湖定期开班 12月上海开班时间:管理员周末班(12月12-13日:12月19-20日) 开发者脱产班(12月28-31日) [其他课程安排请咨询]15000519329(陈老师) 课程内容: [Cloudera Apache Hadoop管理员课程] 课时:4天 学习系统管理的概念和Apache Hadoop的最佳实践, 从安装和配置到负载均衡和调优. 这个4天的的课程通过动手时间来赋予你部署的经验, 以及更多的安全方面的经验和故障排除. 课程结束后

CSDN挑战编程——《金色十月线上编程比赛第一题:小女孩数数》

金色十月线上编程比赛第一题:小女孩数数 题目详情: [金色十月线上编程比赛规则] 一个小女孩正在用左手手指数数,从1数到n.她从拇指算作1开始数起,然后,食指为2,中指为3,无名指为4,小指为5.接下来调转方向,无名指算作6,中指为7,食指为8,大拇指为9,如此反复.问最后会停在那个手指上?用编号1.2.3.4.5依次表示大拇指.食指.中指.无名指.小指. 输入格式: 输入多组数据.每组数据占一行,只包含一个整数n(1<=n<=1000000000). 输出格式: 每组数据占一行,只包含一个介

2015微软创新杯Imaginecup大赛报名进行中(报名截止2014年12月31日23:59)

CSDN高校俱乐部与微软官方合作,2015微软创新杯大赛中国区官网落户CSDN高校俱乐部:http://student.csdn.net/mcs/imaginecup2015 在微软官方设置创新杯中国区奖项之外,CSDN高校俱乐部每个竞赛项目特设一等奖.二等奖.三等奖及纪念奖若干名. CSDN高校俱乐部特别奖(获奖者需在高校俱乐部进行过报名备案):详情-> 1. 一等奖(三支团队): 每个竞赛项目一等奖一名,每支团队获得奖金2,000元人民币,团队成员每人尊享2015 CSDN VIP年卡会员: