zoukankan      html  css  js  c++  java
  • 编程训练1

    1. 古老的俄罗斯方块游戏机。

    题目:自定义俄罗斯方块列数,每次俄罗斯方块下落个数为1*1,当一行都落满俄罗斯方块时,得分+1。现在小明玩到m个俄罗斯方块,求此时的分数。

    输入:

    第一行  列数  俄罗斯方块个数m

    第二行  a(1) a(2) a(3) ...a(i)...a(m)  表示第i个俄罗斯方块落在第a(i)行

    输出:分数

    例:输入

    3 9

    1 1 2 2 2 3 1 2 3

    输出:2

    思路:统计数组中每一行的数字重复的次数c,得分为c/列数n。

     1 #include <iostream>
     2 #include <string>
     3 #include <stdio.h>
     4 #include <algorithm>
     5 using namespace std;
     6 
     7 int main()
     8 {
     9     int a[2];
    10     for(int i=0;i<2;i++) cin>>a[i];
    11     char b[1000];
    12     for(int j=0;j<a[1];j++)
    13     {
    14         cin>>b[j];
    15     }
    16     int c=0;
    17     for(int i=0;i<sizeof(b);i++)
    18     {
    19         int n=b[0];
    20         for(int j=i+1;j<sizeof(b);j++)
    21         {
    22             if(n==b[j]) c+=1;
    23         }
    24     }
    25 
    26     if(c<a[0]) cout<<0<<endl;
    27     else cout<<c/a[0]<<endl;
    28     //else cout<<1<<endl;
    29     return 0;
    30
    31 }

    2. 一节课总有m分钟,小明有的时间在睡觉,且每一分钟听课的兴趣权值不一样,同桌叫醒小明一次,可持续n分钟听课。现给定每一分钟的小明听课兴趣权值,与此时原来是否在睡觉,求同桌叫醒小明一次,小明清醒后总听课效率最高(=每分钟兴趣权值*每分钟)是多少?

    输入:

    第一行  一节课总时间m  叫醒听课时间

    第二行  a(1) a(2) a(3) ...a(i)...a(m)  a(i)表示第i个分钟内听课的兴趣权值

    第三行  b(1) b(2) b(3) ...b(i)...b(m)  b(i)=0或1,第i分钟内原来是否在睡觉,1为清醒,0为睡觉

    输出:总听课效率

    例:输入

    6 3

    1 3 5 2 5 4

    1 1 0 1 0 0

    输出:16

    思路:输入m列,n分钟。关键在于求出第几分钟叫醒小明。求出n个相邻的每分钟感兴趣权值*清醒状态的最小值,即为可以叫醒小明的时间。

     1 #include <iostream>
     2 #include <string>
     3 #include <stdio.h>
     4 #include <algorithm>
     5 using namespace std;
     6 
     7 int main()
     8 {
     9     int a[2];
    10     for(int i=0;i<2;i++) cin>>a[i];
    11     int b[1000];
    12     for(int j=0;j<a[0];j++) cin>>b[j]; //每分钟的权值
    13     int c[1000];
    14     for(int j=0;j<a[0];j++) cin>>c[j]; //1为清醒
    15     int m[a[0]-a[1]+1];                //用来存储相邻的m个数的b*c的最小值,即可用来使c=1的m目标数
    16     for(int i=0;i<a[0]-a[1]+1;i++)
    17     {
    18         for(int j=1;j<a[1];j++)
    19         {
    20             m[i]=b[i]*c[i];
    21             m[i]+=b[j]*c[j];
    22         }
    23     }
    24     int number,max=0;
    25     for(int i=0;i<(a[0]-a[1]+1);i++)
    26     {
    27         int min=m[0];
    28         if(min>m[i]) number=i;        //求出应该在第number分钟使c=1
    29     }
    30     for(int j=0;j<number+a[1];j++) max+=b[j]; 
    31     cout<<max<<endl;
    32     return 0;
    33 }
  • 相关阅读:
    获取ios设备的当前IP地址
    swift 日期的基本操作
    iOS ChildViewController使用示例
    Swift 进制转换问题
    objc_msgSend iOS8 EXC_BAD_ACCESS
    objc非主流代码技巧
    黑魔法__attribute__((cleanup))
    判断一个对象是否实现了某方法,而非继承而来
    Controlling How NSThread and NSRunLoop Exit
    万年历-农历-节气
  • 原文地址:https://www.cnblogs.com/lijuanhu321/p/9461384.html
Copyright © 2011-2022 走看看