Day 23 - 模拟赛

1|0百万富翁的第二次实验

题目描述

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

输入格式

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

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

输出格式

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

input1

7 2 3 4 5 5 6 7

output1

4

数据范围

对于 100% 的数据保证:每个人的财富值不超过 10110n106

#include<iostream> #include<cmath> #include<map> using namespace std; #define MAXN 1000005 long 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; }

2|0magic

题目描述

输入格式

输出格式

input1

7 1 1 6 5 3 2 8 9 4 37

output1

2

样例解释

数据范围

UpDatepi 范围更改为 1pi108

#include<iostream> #include<algorithm> using namespace std; #define MAXN 500005 long 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; }

3|0统计区间

题目描述

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

输入格式

第一行一个整数 n

第二行 n 个整数表示 ai

输出格式

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

input1

7 5 3 5 5 4 4 3

output1

4

数据范围

对于 30% 的数据保证:1n103

对于 100% 的数据保证:1n106

#include<iostream> using namespace std; #define MAXN 1005 long 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; }

4|0柱形图

题目描述

输入格式

输出格式

input1

5 5 3 4 4 2 1 3 2 1 5

output1

24

input2

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

output2

8

input3

5 15 19 5 6 1 13 3 7 1 2

output3

285

样例解释

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

数据范围

本题采用捆绑测试。

#include<iostream> #include<cmath> using namespace std; #define MAXN 200005 long 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


__EOF__

本文作者So_noSlack
本文链接https://www.cnblogs.com/So-noSlack/p/18332172.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   So_noSlack  阅读(74)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示