USACO 2020 December Contest, BronzeProblem 2. Daisy Chains题解
题目描述:
每天,作为她绕农场行走的一部分,奶牛 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题解相关推荐
- USACO 2020 December Contest, BronzeProblem 1. Do You Know Your ABCs?
QUESTION Farmer John 的奶牛正在 "mooZ" 视频会议平台上举行每日集会.她们发明了一个简单的数字游戏,为会议增添一些乐趣. Elsie 有三个正整数 A.B ...
- USACO 2022 December Contest, BronzeProblem 1. Cow College 题解
以下是2022年-2023年USACO赛季第一个月的青铜组第一题,可以使用"计数数组+打擂台找最值"的思想,需要考生掌握一点算法才能通关.文章引用了官网题面,提供思考思路和代码,代 ...
- USACO 2021 January Contest, BronzeProblem 3. Just Stalling题解
题目描述 Farmer John 有 N 头奶牛(1≤N≤20),高度为 a1-aN.他的牛栏有 N 个牛棚,高度限制分别为b1-bN(例如,如果 b5=17,那么一头高度不超过 17 的奶牛可以住在 ...
- USACO 2021 January Contest, BronzeProblem 3. Just Stalling题解 贪心 排序
已经鸽了好久了写一篇题解把 题目描述 Farmer John 有N头奶牛(1≤N≤20),高度为a1-aN.他的牛栏有N个牛棚,高度限制分别为b1-bN(例如,如果b5=17,那么一头高度不超过17的 ...
- USACO 2020 February Contest, Gold
USACO 2020 February Contest, Gold 图片懒得上传了,如果影响阅读可以看个人公开笔记 另外就是之前接近一年没登陆,所以消息都没看到,抱歉了. 测试地址 Problem 1 ...
- USACO刷题记录:2020铜组第二题Daisy Chains
原题目链接:http://www.usaco.org/index.php?page=viewproblem2&cpid=1060 题目在这里复制一下: 每天,作为她绕农场行走的一部分,奶牛 B ...
- USACO 2017 December Contest Platinum T3: Greedy Gift Takers
题目大意 有 N(1≤N≤1e5)头牛按顺序排成一列,编号从 1 到 N,1 号牛在队头,N 号牛在队尾. 每次位于队头的牛 i 拿到一个礼物,然后插入到从队尾数ci头牛之前的位置..举个栗子: 初 ...
- C++ Word Processor | USACO 2020 January Contest
题目描述 奶牛 Bessie 正在完成她的写作课的一篇作文.由于她写字很难看,她决定用一个文字处理器来输入这篇作文. 这篇作文共有 N 个单词(1≤N≤100),用空格分隔.每个单词的长度在 1 到 ...
- 【USACO 2018 December Bronze】The Bucket List题解
题目描述 Farmer John正在考虑改变他给奶牛挤奶的时候分配牛奶桶的方式.他认为这最终能使得他使用数量更少的桶,然而他不清楚具体是多少.请帮助他! Farmer John有N头奶牛(1≤N≤10 ...
最新文章
- cdh jar包 sqoop2_安装sqoop1.4.6-cdh5.5.2
- wxWidgets:wxStdOutputStream类用法
- oracle undoautotune,温故知新 - UNDO,UNDO_RETENTION 及 _undo_autotune
- 童话镇计算机乐谱,童话镇简谱(歌词)-陈一发演唱-桃李醉春风记谱
- websphere内存设置_WebSphere Classloader内存泄漏预防
- java跨函数跳转_VS code 函数无法跨文件跳转到定义
- 北京计算机一级2020,2020北京市一级计算机基础及MS Office应用考试在线自测试题库(不限设备,登陆即可做题)...
- Set无序集合 HashSet 的对象元素唯一性
- 像程序员一样思考:如何仅使用JavaScript,HTML和CSS来构建Snake
- excel操作练习_你见过最好的Excel教程有哪些?
- 计算机三级之嵌入式系统学习笔记4
- 浏览器后退不刷新页面
- 中国开放教育资源协会
- 整理学 nodejs 资源
- oledb操作Excel
- springboot前台页面写Java代码,接收后台数据,SpringBoot整合Thymeleaf的使用
- toad 连接mysql8.0_toad for mysql免费版
- 台式计算机设备验收单,电脑设备验收单.doc
- Android中添加手心默认输入法,并能卸载
- Android 房贷计算