题目描述:

每天,作为她绕农场行走的一部分,奶牛 Bessie 会经过她最喜爱的草地,其中种有 N 朵花(五颜六色的雏菊),编号为1…N(1≤N≤100),排列成一行。花 i 有 pi 朵花瓣(1≤pi≤1000)。

作为一名崭露头角的摄影家,Bessie 决定给这些花拍些照片。具体地说,对于每一对满足 1≤i≤j≤N 的花 (i,j),Bessie 会给从花 i 到花 j 之间的所有花(包括 i 和 j)拍一张照。

后来 Bessie 查看这些照片时注意到有些照片里存在「平均」的花——一朵恰好有 P 朵花瓣的花,其中 P 等于照片中所有花的花瓣数量的平均值。

Bessie 的照片中有几张存在平均的花?

输入格式(从终端/标准输入读入):

输入的第一行包含 N。第二行包含 N 个空格分隔的整数 p1…pN。

输出格式(输出至终端/标准输出):

输出存在平均的花的照片数量。

输入样例:

4
1 1 2 3

输出样例:

6

每张仅包含一朵花的照片均会被计入答案(在这个样例中有 4 张)。另外,在这个样例中 (i,j) 为(1,2) 和 (2,4) 所对应的照片也存在平均的花。

供题:Nick Wu

思路解析:

1. 要求:题目要求任意一个连续区间,满足存在与该连续区间的平均值相同的数据的,一共有多少个区间

2. 嵌套循环枚举所有连续区间,注意枚举时要包括含有单个元素的区间

3. 计算该区间的平均值,与该区间中每个元素比较,若存在相同的情况,则视为满足要求,计数器记录共有多少个即可

4. 由于数据量n最多只有100,所以枚举的三层嵌套循环可以满足算法效率

知识点:

枚举、求均值及数据类型的使用(double)、嵌套循环、数组、前缀和优化(数据量小可无)、读题理解题意

代码:

#include <iostream>
#include <cstdio>
using namespace std;
int n, f[105], sum[105], ans;
int main(){cin >> n;for (int i = 1; i <= n; i++){cin >> f[i];sum[i] = sum[i - 1] + f[i];}
//  for (int i = 1; i <= n; i++)cout << sum[i] << " ";
//  cout << endl;for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++){double avg = (double)(sum[j] - sum[i - 1]) / (j - i + 1);
//          cout << "i " << i << " j " << j << " avg " << avg << endl;for (int k = i; k <= j; k++){if (f[k] == avg){ans++;
//                  cout << "k " << k << " f[k] " << f[k] << " ans " << ans << endl;break;} }}}cout << ans;return 0;
} 

思考:

1. 求均值的时候脑子绷着一根弦,保证数据类型

2. 前缀和可以减少循环的使用,提高效率

补充:

1. O(n^2):固定区间左端点,维护一个计算到当前右端点,pi片花瓣出现了多少盆的桶

USACO 2020 December Contest, BronzeProblem 2. Daisy Chains题解相关推荐

  1. USACO 2020 December Contest, BronzeProblem 1. Do You Know Your ABCs?

    QUESTION Farmer John 的奶牛正在 "mooZ" 视频会议平台上举行每日集会.她们发明了一个简单的数字游戏,为会议增添一些乐趣. Elsie 有三个正整数 A.B ...

  2. USACO 2022 December Contest, BronzeProblem 1. Cow College 题解

    以下是2022年-2023年USACO赛季第一个月的青铜组第一题,可以使用"计数数组+打擂台找最值"的思想,需要考生掌握一点算法才能通关.文章引用了官网题面,提供思考思路和代码,代 ...

  3. USACO 2021 January Contest, BronzeProblem 3. Just Stalling题解

    题目描述 Farmer John 有 N 头奶牛(1≤N≤20),高度为 a1-aN.他的牛栏有 N 个牛棚,高度限制分别为b1-bN(例如,如果 b5=17,那么一头高度不超过 17 的奶牛可以住在 ...

  4. USACO 2021 January Contest, BronzeProblem 3. Just Stalling题解 贪心 排序

    已经鸽了好久了写一篇题解把 题目描述 Farmer John 有N头奶牛(1≤N≤20),高度为a1-aN.他的牛栏有N个牛棚,高度限制分别为b1-bN(例如,如果b5=17,那么一头高度不超过17的 ...

  5. USACO 2020 February Contest, Gold

    USACO 2020 February Contest, Gold 图片懒得上传了,如果影响阅读可以看个人公开笔记 另外就是之前接近一年没登陆,所以消息都没看到,抱歉了. 测试地址 Problem 1 ...

  6. USACO刷题记录:2020铜组第二题Daisy Chains

    原题目链接:http://www.usaco.org/index.php?page=viewproblem2&cpid=1060 题目在这里复制一下: 每天,作为她绕农场行走的一部分,奶牛 B ...

  7. USACO 2017 December Contest Platinum T3: Greedy Gift Takers

    题目大意 有 N(1≤N≤1e5)头牛按顺序排成一列,编号从 1 到 N,1 号牛在队头,N 号牛在队尾. 每次位于队头的牛 i 拿到一个礼物,然后插入到从队尾数ci​头牛之前的位置..举个栗子: 初 ...

  8. C++ Word Processor | USACO 2020 January Contest

    题目描述 奶牛 Bessie 正在完成她的写作课的一篇作文.由于她写字很难看,她决定用一个文字处理器来输入这篇作文. 这篇作文共有 N 个单词(1≤N≤100),用空格分隔.每个单词的长度在 1 到 ...

  9. 【USACO 2018 December Bronze】The Bucket List题解

    题目描述 Farmer John正在考虑改变他给奶牛挤奶的时候分配牛奶桶的方式.他认为这最终能使得他使用数量更少的桶,然而他不清楚具体是多少.请帮助他! Farmer John有N头奶牛(1≤N≤10 ...

最新文章

  1. cdh jar包 sqoop2_安装sqoop1.4.6-cdh5.5.2
  2. wxWidgets:wxStdOutputStream类用法
  3. oracle undoautotune,温故知新 - UNDO,UNDO_RETENTION 及 _undo_autotune
  4. 童话镇计算机乐谱,童话镇简谱(歌词)-陈一发演唱-桃李醉春风记谱
  5. websphere内存设置_WebSphere Classloader内存泄漏预防
  6. java跨函数跳转_VS code 函数无法跨文件跳转到定义
  7. 北京计算机一级2020,2020北京市一级计算机基础及MS Office应用考试在线自测试题库(不限设备,登陆即可做题)...
  8. Set无序集合 HashSet 的对象元素唯一性
  9. 像程序员一样思考:如何仅使用JavaScript,HTML和CSS来构建Snake
  10. excel操作练习_你见过最好的Excel教程有哪些?
  11. 计算机三级之嵌入式系统学习笔记4
  12. 浏览器后退不刷新页面
  13. 中国开放教育资源协会
  14. 整理学 nodejs 资源
  15. oledb操作Excel
  16. springboot前台页面写Java代码,接收后台数据,SpringBoot整合Thymeleaf的使用
  17. toad 连接mysql8.0_toad for mysql免费版
  18. 台式计算机设备验收单,电脑设备验收单.doc
  19. Android中添加手心默认输入法,并能卸载
  20. Android 房贷计算

热门文章

  1. 视频播放+详情页+购物车
  2. 计算机局域网组建与互建,实验4 局域网组建与网络互连认识实验指导
  3. PHPCMS留言板制作
  4. MySQL 1226 User 'root' has exceeded the 'max_questions' resource解决办法
  5. Math 函数-- cos()和acos()
  6. 设置EXCEL的默认打印机
  7. 锁屏状态接网络电话,Skype商务 iOS 版推重要功能更新
  8. 思科网络安全 第七章考试答案
  9. docker--扩展学习-网络--原理--16
  10. 漆学军:MACD交叉,金叉做多,死叉做空的例子程序