首页 > 其他分享 >P2866 [USACO06NOV] Bad Hair Day S

P2866 [USACO06NOV] Bad Hair Day S

时间:2024-10-22 20:18:04浏览次数:3  
标签:头牛 int tt cdots Hair leq Bad hi USACO06NOV

[USACO06NOV] Bad Hair Day S

题目描述

农夫约翰有 N N N 头奶牛正在过乱头发节。

每一头牛都站在同一排面朝右,它们被从左到右依次编号为 1 , 2 , ⋯   , N 1, 2, \cdots, N 1,2,⋯,N。编号为 i i i 的牛身高为 h i h_i hi​。第 N N N 头牛在最前面,而第 1 1 1 头牛在最后面。

对于第 i i i 头牛前面的第 j j j 头牛,如果 h i > h i + 1 , h i > h i + 2 , ⋯   , h i > h j h_i>h_{i+1}, h_i>h_{i+2}, \cdots, h_i>h_j hi​>hi+1​,hi​>hi+2​,⋯,hi​>hj​,那么认为第 i i i 头牛可以看到第 i + 1 i+1 i+1 到第 j j j 头牛。

定义 C i C_i Ci​ 为第 i i i 头牛所能看到的牛的数量。请帮助农夫约翰求出 C 1 + C 2 + ⋯ + C N C _ 1 + C _ 2 + \cdots + C _ N C1​+C2​+⋯+CN​。

输入格式

输入共 N + 1 N + 1 N+1 行。

第一行为一个整数 N N N,代表牛的个数。
接下来 N N N 行,每行一个整数 a i a _ i ai​,分别代表第 1 , 2 , ⋯   , N 1, 2, \cdots, N 1,2,⋯,N 头牛的身高。

输出格式

输出共一行一个整数,代表 C 1 + C 2 + ⋯ + C N C _ 1 + C _ 2 + \cdots + C _ N C1​+C2​+⋯+CN​。

样例 #1

样例输入 #1

6
10
3
7
4
12
2

样例输出 #1

5

提示

数据规模与约定

对于 100 % 100\% 100% 的数据,保证 1 ≤ N ≤ 8 × 1 0 4 1 \leq N \leq 8 \times 10 ^ 4 1≤N≤8×104, 1 ≤ h i ≤ 1 0 9 1 \leq h _ i \leq 10 ^ 9 1≤hi​≤109。

代码

#include <iostream>

using namespace std;
const int N = 100010;
int st[N];
int tt = 0;
long long ans;

int main()
{
	int n; cin >> n;
	while (n--)
	{
		int x; cin >> x;
		//如果当前栈不为空 并且 要进栈的比栈顶还要大 => 出栈
		while (tt > 0 && x >= st[tt])
			tt--;
		ans += tt;
		st[++tt] = x;
	}
	cout << ans;
	return 0;
}

标签:头牛,int,tt,cdots,Hair,leq,Bad,hi,USACO06NOV
From: https://blog.csdn.net/weixin_73378557/article/details/143129290

相关文章

  • git报错系统列---bad ref for .git/logs/refs/remotes/origin/develop
    解决方案:先执行命令:gitgc--prune=now gitremotepruneorigin尝试执行后失败后会报如下的错:D:\myProjects\dms-api\src\main\java\com\netease\dms>gitgc--prune=nowerror:badreffor.git/logs/refs/remotes/origin/deverror:badreffor.git/logs/refs/r......
  • BUUCTF之Sandbox-bad
    BUUCTF之Sandbox-bad首先针对sandbox,我们需要有一个大概的认知,他是在一个代码执行环境下,脱离种种过滤和限制,最终成功拿到shell权限的过程,通常我们采用orw的方式来获取flag.orw全称onlyreadwrite,只使用readwrite函数将flag读取并且打印,shellcode分为三个步骤使用open函数......
  • springboot接口,放回404 Bad Request
    分析:这种报错,通常都是json格式有误,导致的,比如说接口接受的对象是JSONArray,但是传进来的参数是JSONObject类型2024-10-1610:39:07.555WARN18536---[io-8688-exec-10].w.s.m.s.DefaultHandlerExceptionResolver:Resolved[org.springframework.http.converter.HttpMessag......
  • DBPM: 增强时间序列对比学习:一种动态坏对挖掘方法《Towards Enhancing Time Series Co
    今天是2024年10月12日,思路枯竭,还是论文看的太少了,继续看论文.论文:TowardsEnhancingTimeSeriesContrastiveLearning:ADynamicBadPairMiningApproach或者是:TowardsEnhancingTimeSeriesContrastiveLearning:ADynamicBadPairMiningApproachGitHub:https://git......
  • 使用宝塔快速搭建配置Openai api接口代理+502 Bad Gateway网关错误问题解决
    本教程提供了一种简便快捷的方法,无需复杂步骤,极易操作,实现零代码、零部署的快速接入。实现准备1.服务器,这里使用阿里香港轻量服务器)2.OpenAI官方的模型apikey3.使用第三方系统或插件进行测试关于第三方网站系统或插件:《SparkAI系统介绍文档-渐进式AIGC系统》开......
  • 题解:SP4557 ANARC08H - Musical Chairs
    约瑟夫问题,由于问题涉及大量的删除和查找操作,直接用数组模拟会超时,可以用树状数组题意在每一轮游戏中,我们需要从当前的孩子位置开始数数,并淘汰第\(D\)个孩子。游戏需要不断地从剩下的孩子中进行选择并淘汰,直到只剩下最后一个孩子。注意两个点将树状数组的位置设为\(1\)......
  • Bad or missing usercopy whitelist? Kernel memory overwrite attempt detected to S
    Linux内核有一个usercopywhitelist机制,只允许这里面的region来做usercopy。如果是用kmem_cache_create申请的kmem_cache申请的内存空间来copytouser或者copyfromuser,那么就会报这个错。这时要用kmem_cache_create_usercopy,来将申请的区域加入到usercopywhitelist中。/***......
  • 502 Bad Gateway
    最优数学期望的分界点并不在区间中点处,因此需要整数三分,应当可以通过l=lmid+1、r=rmid-1收缩区间ACM时代,应当可以通过__gcd函数求最大公约数,不用自己手写了。【就算会编译错误也不计入罚时,试错成本极低】对double比较相对大小的精度还是要有信心的,虽然这道题其实用不上double,稍......
  • Nginx反向代理出现502 Bad Gateway问题的解决方案
    ......
  • el-tabs 搭配 el-badge微章使用
    实现效果 实现: <el-tabsv-model="activeName"class="demo-tabs"@tab-click="handleClick"><el-tab-panelabel="审批中"name="inProcess"><InProcess/></el-tab-pane&......