码迷,mamicode.com
                                                                              首页 > 移动开发 > 详细

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

                                                                              时间:2018-12-26 11:48:16      阅读:61875      评论:0      收藏:0      [点我收藏+]

                                                                              标签:人工智   身体   clu   class   ted   斐波那契数列   rop   void   list   

                                                                              小米兔跳格子
                                                                              序号:#119难度:一般时间限制:1000ms内存限制:30M

                                                                              描述

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

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

                                                                              输入

                                                                               

                                                                              输入为 NN 个数字 (N \lt 10N<10),?#27599;?#26684;隔开,第 ii 个数字 s_isi? (0 \le s_i \lt 100si?<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"。两人?#24049;?#32874;明,都会使?#31859;?#20248;策略(每次报数是最优的)。

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

                                                                              输入

                                                                               

                                                                              两个正整数,?#27599;?#26684;隔开,分别表示小爱和小冰的目标数字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 }

                                                                               

                                                                               

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

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

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

                                                                              标签:人工智   身体   clu   class   ted   斐波那契数列   rop   void   list   

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

                                                                              (0)
                                                                              (0)
                                                                                 
                                                                              举报
                                                                              评论 一句话评论(0
                                                                              0条  
                                                                              登?#24049;?#25165;能评论!
                                                                              ? 2014 mamicode.com 版权所有 京ICP备13008772号-2
                                                                              迷上了代码!
                                                                              宁夏11选5开奖查询