题解

459 条题解

  • 0
    @ 2006-09-09 18:36:10

    大家鄙视我吧....我这题提交了两次!!~~~第一次错了9个点,得了10分.....

    估计是全国最低的了.....伤心中

    另外,貌似我是第700个AC的...

  • 0
    @ 2006-08-29 16:41:46

    输出用write,注意 -_-!

  • 0
    @ 2006-08-23 08:55:51

    建议直接在提交框中写,这样比较有趣

  • 0
    @ 2006-08-19 21:31:45

    这题的通过率怎么只有64%啊

  • 0
    @ 2006-07-22 20:08:17

    怎么会有一道这样的题啊!!!

    我狂晕~~~~~~~~~~~~~

  • 0
    @ 2006-06-10 19:45:40
  • 0
    @ 2006-06-06 09:54:02

    超级弱智,把身高和椅子长加起来再一个一个比较就好了....

  • 0
    @ 2006-04-18 20:36:32

    ……NOIP2005第一题,弱智啊!

  • -1
    @ 2025-11-28 20:49:22

    这个题目很简单,但是可以对代码进行多次优化。

    首先,常规读入高度和身高,这个没什么可优化的。

    接下来分两步,一个是比较,一个是计算。

    常规做法基本上是 if(height[i] <= H + 30)s++;

    但是,对于部分要卡常的题目来说,可能会爆掉,而且每次都调用寄存器来计算 H+30,很显然是一种浪费。

    首先我们可以像多数题解那样,在读入 H 之后,直接对它进行 +=30的操作。

    但是实际上,比较的行为也可以简化。

    if(height[i] <= H )s++; 电脑计算的时候分为三步:

    计算 height[i] <= H 的值 (true | false)

    调用if判断里面表达式的值是否为真

    若真,对s进行s+=1的运算。

    我们简化时可以发现,s每次加的值都是恒定的 1 。

    联想到 : true == 1 , false == 0 , 我们可以直接将逻辑值的结果加给s。

    也即 s+=!(H<height[i]);

    CPP代码如下

    #include <iostream>
    using namespace std;
    int height[20],H,s;
    int main()
    {
        for(int i=0;i<10;i++)cin >> height[i];
        cin >> H;
        H += 30;
        for(int i=0;i<10;i++)s+=!(H<height[i]);
        cout << s;
    }
    
    
  • -1
    @ 2025-09-24 21:10:06
    #include <bits/stdc++.h>
    using namespace std;
    
    int main(){
        int a[10],ans=0;
        for(int i=0;i<10;i++)cin>>a[i];
    
        int n;
        cin>>n;
        for(int i=0;i<10;i++){
            if(a[i]<=n+30)ans++;
        }cout<<ans;
        return 0;
    }
    
  • -1
    @ 2025-09-12 17:08:56
    #include <bits/stdc++.h>
    #include <vector>
    using namespace std;
    
    int main(){
        vector<int> a(10);
        for(int i=0;i<10;i++){
            cin>>a[i];
        }int n,ans=0;
        cin>>n;
        for(int i=0;i<10;i++){
            if(a[i]<=n+30)ans++;
        }cout<<ans;
    }
    
  • -1
    @ 2025-09-12 17:08:05
    #include <bits/stdc++.h>
    #include <vector>
    using namespace std;
    
    int main(){
        vector<int> a(10);
        for(int i=0;i<10;i++){
            cin>>a[i];
        }int n,ans=0;
        cin>>n;
        for(int i=0;i<10;i++){
            if(a[i]<=n+30)ans++;
        }cout<<ans;
    }
    
  • -1
    @ 2025-09-12 17:07:42
    #include <bits/stdc++.h>
    #include <vector>
    using namespace std;
    
    int main(){
        vector<int> a(10);
        for(int i=0;i<10;i++){
            cin>>a[i];
        }int n,ans=0;
        cin>>n;
        for(int i=0;i<10;i++){
            if(a[i]<=n+30)ans++;
        }cout<<ans;
    }
    
  • -1
    @ 2023-08-23 14:33:13
    /*****************
    备注:
    *****************/
    #include <iostream>
    #include <iomanip>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    #include <cstdio>
    #include <set>
    #include <queue>
    #include <bitset>
    #include <deque>
    #include <stack>
    #include <ctime>
    using namespace std;
    #define LL long long
    #define MAXM 3010
    #define MAXN 3010
    const int N =1e5+10;
    const int INF =0x3f3f3f3f;
    int a[11],h,cnt=0; 
    int main ()
    {
        
        for(int i=1;i<=10;i++)
        {
            cin>>a[i];
        }
        cin>>h;
        for(int i=1;i<=10;i++)
        {
            if(a[i]<=h+30)
            {
                cnt++;
            }
        }
            
        cout<<cnt;  
       return 0;
    }
    
  • -1
    @ 2018-08-08 13:26:07

    我来给Pascal党发福利!!请记住托儿索就是我
    var
    a:array[1..10] of longint;
    n,i,t:longint;
    begin
    t:=0;
    for i:=1 to 10 do read(a[i]);
    read(n);
    for i:=1 to 10 do a[i]:=a[i]-30;
    for i:=1 to 10 do
    if a[i]<=n then inc(t);
    write(t);
    end.

  • -1
    @ 2018-08-08 11:30:32

    我来给Pascal党发一个,记住哦:我是国服压缩!!!
    var
    a:array[1..10] of longint;
    n,i,t:longint;
    begin
    t:=0;
    for i:=1 to 10 do read(a[i]);
    read(n);
    for i:=1 to 10 do a[i]:=a[i]-30;
    for i:=1 to 10 do
    if a[i]<=n then inc(t);
    write(t);
    end.

  • -1
    @ 2018-03-10 10:54:15

    #include <iostream>
    using namespace std;
    int height[20],H,s;
    int main()
    {
    for(int i=0;i<10;i++)cin >> height[i];
    cin >> H;
    H += 30;
    for(int i=0;i<10;i++)s+=!(H<height[i]);
    cout << s;
    }

  • -1
    @ 2018-03-10 10:54:01

    #include <iostream>
    using namespace std;
    int height[20],H,s;
    int main()
    {
    for(int i=0;i<10;i++)cin >> height[i];
    cin >> H;
    H += 30;
    for(int i=0;i<10;i++)s+=!(H<height[i]);
    cout << s;
    }

  • -1
    @ 2017-11-18 15:52:30

    Haskell一行过(可见此题有多水)。
    输入整个文件(getContents),
    全部用库里的函数读入(map read.words),
    将最后一个与前面的分离(last、init)并用库函数筛选(filter),
    再用库函数求出筛选出的序列的长度(length),
    最后输出(print)。

    main=print.length.(\l->filter(last l+30>=)(init l)).map read.words=<<getContents
    

信息

ID
1102
难度
3
分类
模拟 点击显示
标签
递交数
16810
已通过
8843
通过率
53%
被复制
67
上传者