Day 23 - 模拟赛

news/2024/11/16 16:48:38/文章来源:https://www.cnblogs.com/So-noSlack/p/18332172

百万富翁的第二次实验

题目描述

马克吐温有一本非常著名的小说《百万英镑》,这本小说中主角最后归还了百万英镑给两位富翁。但结果就是两位富翁依然有无穷的问题需要进行社会实验,于是,他们打算进行第二次社会实验。那就是不同财富值的人在一场舞会上会发生什么事情。为了满足自己的好奇,百万富翁们邀请了全伦敦所有人来自己的舞会。舞会开始后他们就后悔了,因为来的人太多了,而且很多人的财富都相同,统计起来太费事了。所以百万富翁们找到你,希望你根据来舞会的时间,找出在一段时间内,来舞会的所有人财富值都互不相同的人数。

输入格式

第一行输入一个 \(n\) 表示有 \(n\) 个人参与舞会。

按照时间顺序输入 \(n\) 个人的财富值。

输出格式

输出在一段时间内参加舞会的所有人财富值都互不相同的人数的最大值。

\(\text{input1}\)

7
2 3 4 5 5 6 7

\(\text{output1}\)

4

数据范围

对于 \(100\%\) 的数据保证:每个人的财富值不超过 \(10^{11}\)\(0 \le n \le 10^6\)

#include<iostream>
#include<cmath>
#include<map>
using namespace std;
#define MAXN 1000005long long n, a[MAXN], ans = 0;
map<long long, int> mp;int main() {ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);cin >> n;for(int i = 1; i <= n; i ++) cin >> a[i];long long l = 1, r = 1;while(r <= n) {if(!mp[a[r]]) mp[a[r]] ++;else {mp[a[r]] ++;while(a[l] != a[r]) mp[a[l]] --, l ++;mp[a[l]] --, l ++;}ans = max(ans, r - l + 1); r ++;}cout << ans << "\n";return 0;
}

magic

题目描述

输入格式

输出格式

\(\text{input1}\)

7 1
1 6 5 3 2 8 9
4 37

\(\text{output1}\)

2

样例解释

数据范围

\(\text{UpDate}\)\(p_i\) 范围更改为 \(1 \le p_i \le 10^8\)

#include<iostream>
#include<algorithm>
using namespace std;
#define MAXN 500005long long n, m, a[MAXN], ap[MAXN], ar[MAXN], aq[MAXN], p, q;bool cmp(long long x, long long y) { return x > y; }long long check(long long mid) { return a[1] * p * mid - ar[mid] * p - aq[mid]; }int main() {ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);cin >> n >> m;for(int i = 1; i <= n; i ++) cin >> a[i];sort(a + 1, a + n + 1, cmp);for(int i = 1; i <= n; i ++) ar[i] = ar[i - 1] + a[1] - a[i], aq[i] = aq[i - 1] + (i - 1) * a[i];while(m --) {cin >> p >> q;long long l = 1, r = p, ans = -1; while(l <= r) {long long mid = (l + r) >> 1;if(check(mid) >= q) ans = mid, r = mid - 1;else l = mid + 1;}cout << ans << "\n";}return 0;
}

统计区间

题目描述

有一个长度为 \(n\) 的数列 \(\{a_i\}\)\(a_i \in [1, n]\) 中,现在要统计区间中出现的数都恰好出现 \(2\) 次的区间数。

输入格式

第一行一个整数 \(n\)

第二行 \(n\) 个整数表示 \(a_i\)

输出格式

一行一个整数,表示满足条件的区间数.

\(\text{input1}\)

7
5 3 5 5 4 4 3

\(\text{output1}\)

4

数据范围

对于 \(30\%\) 的数据保证:\(1 \le n \le 10^3\)

对于 \(100\%\) 的数据保证:\(1 \le n \le 10^6\)

#include<iostream>
using namespace std;
#define MAXN 1005long long n, a[MAXN], cnt[MAXN][MAXN], mp[MAXN], ans = 0;int main() {ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);cin >> n; for(int i = 1; i <= n; i ++) cin >> a[i];for(int i = 1; i <= n; i ++) for(int j = 1; j <= n; j ++) cnt[i][j] = cnt[i - 1][j] + (a[i] == j);for(int l = 1; l <= n; l ++) for(int r = l + 1; r <= n; r += 2) {bool f = true;for(int i = l; i <= r; i ++) if(cnt[r][a[i]] - cnt[l - 1][a[i]] != 2) { f = false; break; }ans += f;}cout << ans << "\n";return 0;
}

柱形图

题目描述

输入格式

输出格式

\(\text{input1}\)

5
5 3
4 4
2 1
3 2
1 5

\(\text{output1}\)

24

\(\text{input2}\)

6
3 1
2 1
2 2
2 3
1 1
2 2

\(\text{output2}\)

8

\(\text{input3}\)

5
15 19
5 6
1 13
3 7
1 2

\(\text{output3}\)

285

样例解释

样例 \(1\) 解释:见题目描述中的图。

数据范围

本题采用捆绑测试。

#include<iostream>
#include<cmath>
using namespace std;
#define MAXN 200005long long n, a[MAXN][18], b[MAXN][18], lg[MAXN] = { -1 }, ans = 0;long long query1(long long l, long long r) {long long len = lg[r - l + 1];long long ans = min(a[l][len], a[r - (1 << (len)) + 1][len]);return ans;
}long long query2(long long l, long long r) {long long len = lg[r - l + 1];long long ans = min(b[l][len], b[r - (1 << (len)) + 1][len]);return ans;
}int main() {ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);cin >> n;for(int i = 1; i <= n; i ++) { cin >> a[i][0] >> b[i][0]; lg[i] = lg[i / 2] + 1; }for(int i = 1; i <= lg[n]; i ++) for(int j = 1; j + (1 << i) - 1 <= n; j ++) a[j][i] = min(a[j][i - 1], a[j + (1 << (i - 1))][i - 1]), b[j][i] = min(b[j][i - 1], b[j + (1 << (i - 1))][i - 1]);for(int l = 1; l <= n; l ++) for(int r = l; r <= n; r ++) ans = max(ans, (r - l + 1) * query1(l, r) * query2(l, r));cout << ans << "\n";return 0;
}

\[100 + 100 + 30 + 20 = 250 \]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/774033.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 756. Pyramid Transition Matrix

原题链接在这里:https://leetcode.com/problems/pyramid-transition-matrix/description/ 题目: You are stacking blocks to form a pyramid. Each block has a color, which is represented by a single letter. Each row of blocks contains one less block than the row …

两个燃点,引爆在线教育平台数智化

人人都能消费数据,事事都能数据驱动,正在成为火花思维数智化升级下的日常,这也与火山引擎推出的企业数智化升级新模式不谋而合。关注 字节跳动数据平台公众号,回复“火花思维”,获取高清方案设计及产品资料 2017年,专注于少儿逻辑思维的在线教育品牌火花思维正式成立,依…

一个简单的遍历需求

今天开发一个前端遍历展示的接口,被前端怼了看图需求很简单多行展示 每行多个,可显示更多,每行可左右滑动为了图省事简单组装一下直接返回回去了,方便是真的方便,前端生气也是真的生气,可以简单对这个横向、纵向接口压缩一下横向空间上,可以取分页,前端自己传,无论是懒…

分享一个MySQL数据库表结构导出word文档最方便的方法

原文链接:https://blog.csdn.net/typ1805/article/details/83658708 1、使用的是MySQL-Front工具,这个工具使用非常方便,尤其是导出数据的时候,几百万的数据一两分钟就导完了,推荐使用。 MySQL-Front下载(只有3.93M):https://mysql-front.en.softonic.com/ 注:新版本和…

排球比赛计分程序模拟冲刺(sprint)

模拟冲刺计划(spring) 选择小的用户故事模拟冲刺: 裁判张三、业余排球比赛组织者李四、排球运动员王五 一、任务拆分与开发时间:裁判张三:任务 1:开发操作指南和演示视频- 时间:第 1 天 任务 2:实现提前设置比赛基本信息功能- 时间:第 2 天 任务 3:设计简便计分操作界面…

代码随想录day14 || 226 翻转二叉树,101 对称二叉树, 104 二叉树的最大深度, 111 二叉树的最小深度

226 翻转二叉树 func invertTree(root *TreeNode) *TreeNode {// 思考,广度优先遍历,对于每一层,翻转其左右子节点if root == nil {return nil}queue := list.New()queue.PushBack(root)size := 1 // 存储每一层的节点个数for queue.Len() > 0{var count intfor i:=0; i&…

【数值计算方法】数值积分微分

《现代数值计算方法 第二版》1. 引言 高数中计算积分思路基本是牛顿莱布尼兹法: \[I[f]=\int_{a}^{b}f(x)\mathrm{d}x=F(b)-F(a), \]\[F^{\prime}(x)=f(x). \]实际计算中,原函数一般无法求出.给不出解析解,只能求出数值解. 设在区间 [a,b]( 不妨先设 a,b 为有限数 ) 上 ,\(f(x)…

经典的反转

def reverseArr(arr, start, end):while(start < end):arr[start], arr[end] = arr[end], arr[start]start +=1;end -=1def fun(arr,d, n):reverseArr(arr,0, n-1)reverseArr(arr, n-d, n-1)reverseArr(arr,0, n-d-1)arr = [1,2,3,4,5,6,7] fun(arr,2,len(arr)) print(arr)

【日记】今天又是哪朵小云不开心了呀(1886 字)

正文上午上班没多久,天就特别阴,感觉像是要下暴雨的样子。前台接了一个电话,家里人打来的,她妈妈叮嘱她,要注意一点。他们那边已经开始下了。她转过头对我笑笑说,原来下雨在一个城里也能不同步。当时我笑了笑,对她说,局部降雨还有更局部的,然后打开的视频网站,随便点…

51nod两问-Pinball等

问题1-Pinball为什么这样解释的通,我看不懂什么意思?还有这个 \(e\) 在后面状态中没有体现。具体做法?为什么只有 \([a_i,c_i]\) 需要考虑?他可以往左边掉。那么从 \(n\) 开始掉又如何考虑 Kamp手绘的图:这个图似乎就不满足了。不知道什么意思。这个思路怎么做。

2024.7.26模拟赛8

模拟赛 抽象比赛,含金量最高的是题目背景? 好像还是连续的。。。 T1 Same Integers 题目背景签到题,因为只有加操作,目标是将两个较小的数加成最大的。 根据差的奇偶判断能否加二得到,如果不能先加一调一下。(简单题,题解抽象一点也没事吧)code #include<bits/stdc+…