C/C++之(一)洛谷刷题及洛谷评测 中

简介: C/C++之(一)洛谷刷题及洛谷评测 中

【P1317】 低洼地

题目描述

一组数,分别表示地平线的高度变化。高度值为整数,相邻高度用直线连接。找出并统计有多少个可能积水的低洼地?

如图:地高变化为 0 1 0 2 1 2 0 0 2 0

输入格式

两行,第一行n,表示有n个数。第2行连续n个数表示地平线高度变化的数据,保证首尾为0。(3<=n<=10000,0<=高度<=1000)

输出格式

一个数,可能积水低洼地的数目。

输入输出样例

输入  

10

0 1 0 2 1 2 0 0 2 0

输出  

3

#include <stdio.h>
int main()
{
    int n, i, j,count = 0;
    scanf("%d", &n);
    int array[n];
    for(i=1;i <= n;i++)
    {
        scanf("%d", &array[i]);
    }
    for(i=2;i<n;i++){
      if(array[i]<array[i-1]){
        j=1;
      }
      if(array[i]>array[i-1]&&j==1){
        count++;
        j=0;
      }
    }
    printf("%d",count);
    return 0;
}

【P1423 】小玉在游泳

题目描述

小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。已知小玉第一步能游 22 米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的 98\%98%。现在小玉想知道,如果要游到距离 xx 米的地方,她需要游多少步呢。请你编程解决这个问题。

输入格式

输入一个实数 ss(单位:米),表示要游的目标距离。

输出格式

输出一个整数,表示小玉一共需要游多少步。

输入输出样例

输入  

4.3

输出  

3

说明/提示

数据保证,0 \leq s \leq 1000≤s≤100,且 ss 小数点后最多只有一位。

#include <stdio.h>
int main()
{
  float s;
    scanf("%f", &s);
    int x=0;
    float i = 2.0, sum = 0;
    while (s>sum)
    {
       sum=sum+i;
       i=i*0.98;
       x++;
    }
    printf("%d", x);
    return 0;
}

【P2676】 [USACO07DEC]Bookshelf B

题目描述

Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了。现在,只有书架的顶上还留有一点空间。

所有 N(1 \le N \le 20,000)N(1≤N≤20,000) 头奶牛都有一个确定的身高 H_i(1 \le H_i \le 10,000)Hi(1≤Hi≤10,000)。设所有奶牛身高的和为S。书架的高度为B,并且保证 1 \le B \le S < 2,000,000,0071≤B≤S<2,000,000,007。

为了够到比最高的那头奶牛还要高的书架顶,奶牛们不得不像演杂技一般,一头站在另一头的背上,叠成一座“奶牛塔”。当然,这个塔的高度,就是塔中所有奶牛的身高之和。为了往书架顶上放东西,所有奶牛的身高和必须不小于书架的高度。

显然,塔中的奶牛数目越多,整座塔就越不稳定,于是奶牛们希望在能够到书架顶的前提下,让塔中奶牛的数目尽量少。 现在,奶牛们找到了你,希望你帮她们计算这个最小的数目。

输入格式

第 11 行: 2 个用空格隔开的整数:NN 和 BB;

第 2\dots N+12…N+1 行: 第 i+1i+1 行是 11 个整数:H_iHi。

输出格式

第 11 行: 输出 11 个整数,即最少要多少头奶牛叠成塔,才能够到书架顶部

输入输出样例

输入  

6 40

6

18

11

13

19

11

输出  

3

说明/提示

输入说明:

一共有 66 头奶牛,书架的高度为 4040,奶牛们的身高在 6\dots196…19之间。

输出说明:

一种只用 33 头奶牛就达到高度 4040 的方法:18+11+1318+11+13。当然还有其他方法,在此不一一列出了。

#include <stdio.h>
int main()
{
    int n, s, i, j, sum = 0, x, count = 0;
    scanf("%d %d", &n, &s);
    int array[20050];
    for (i = 1; i <= n; i++)
    {
        scanf("%d", &array[i]);
    }
    for (i = 0; i < n; i++)
    {
        for (j = i + 1; j <= n; j++)
        {
            if (array[i] < array[j])
            {
                x = array[i];
                array[i] = array[j];
                array[j] = x;
            }
        }
    }
    for (i = 0; i < n; i++)
    {
        sum = sum + array[i];
        count++;
        if (sum >= s)
        {
            break;
        }
    }
    printf("%d\n", count);
}
相关文章
|
算法 C语言 C++
从C语言的使用转换到C++(上篇)——刷题、竞赛篇
从C语言的使用转换到C++(上篇)——刷题、竞赛篇
277 0
|
存储 C++
【五一创作】C++刷题 【入门4】数组
【五一创作】C++刷题 【入门4】数组
131 0
|
6月前
|
算法 C++
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题-2
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题
|
6月前
|
算法 C++
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题-1
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题
|
7月前
|
C语言 C++
【C语言/C++】牛客网刷题训练-12
【C语言/C++】牛客网刷题训练-12
|
7月前
|
存储 自然语言处理 C++
刷题用到的非常有用的函数c++(持续更新)
刷题用到的非常有用的函数c++(持续更新)
89 1
|
存储 C语言 C++
【C/C++刷题——leetcode】查找字符串中最大的子串
【C/C++刷题——leetcode】查找字符串中最大的子串
336 0
|
机器学习/深度学习 人工智能 C++
【c++百日刷题计划】 ———— DAY16,刷题百天,养成刷题好习惯
【c++百日刷题计划】 ———— DAY16,刷题百天,养成刷题好习惯
193 0
【c++百日刷题计划】 ———— DAY16,刷题百天,养成刷题好习惯
|
7月前
|
C++
C++刷题ACM输入数组
C++刷题ACM输入数组
75 0
|
7月前
|
C++
第十三届蓝桥杯B组C++(试题C:刷题统计)
第十三届蓝桥杯B组C++(试题C:刷题统计)
53 0