第 17 场小白入门赛蓝桥杯

news/2024/10/11 5:00:37/

第 17 场小白入门赛

2 北伐军费

发现每次选大的更优,所以可以排序之后,先手取右边,后手取左边。

实际发现,对于 A − B A-B AB 的结果来说,后手对于这个式子的贡献是 − − a i --a_i ai ,也就是 a i a_i ai ,实际答案就是数组之和。

void solve(){cin >> n;for(int i = 1; i <= n; i ++) cin >> a[i]; cout << accumulate(a + 1, a + n + 1, 0LL) << '\n';
}

4 三顾茅庐

找规律,对于 x ≤ y x\leq y xy 的情况 2 2 2 次一循环。

对于 x > y x>y x>y 的情况, x x x 每次回减 y y y 直到用完 k k k 次机会或者 x < = y x<=y x<=y 了,实际就是取模的过程。

void solve(){int x, y, k;cin >> x >> y >> k;if(!y){cout << x << '\n';return ;}if(x <= y){cout << ((k & 1) ? y - x : x) << '\n';}else{int t = (x / y);if(k > t){k -= t;x %= y;cout << ((k & 1) ? y - x : x) << '\n';}else{cout << x - k * y << '\n';}}
}

3 挑选武将

思路比较简单,将每个城池出现几个武将排序,从前往后枚举,只要当前选过的加上剩余的 ≥ k \geq k k 即可。

蓝桥的 oj 比较垃圾,会 RE 只会返回 WA,非常不智能。

void solve(){cin >> n >> k;for(int i = 1; i <= n; i ++){cin >> x;a[x] ++;}vector<int> vc;for(int i = 1; i <= 100000; i ++){if(a[i]) vc.push_back(a[i]);} sort(vc.begin(), vc.end());vector<int> sum(vc.size());sum[0] = vc[0];for(int i = 1; i < vc.size(); i ++) sum[i] = vc[i] + sum[i - 1];auto ask = [&] (int l, int r){if(l > r) return 0LL;if(!l) return sum[r];return sum[r] - sum[l - 1];};int res = 0;for(int i = 0; i < vc.size() && (i + 1) <= k; i ++){if((i + 1) + ask(i + 1, vc.size() - 1) >= k) res = i + 1;}cout << res << '\n';
}

5 逆天改命

给你一个长度为 n n n 的数组 b b b ,你有一个 ∀ a i = 0 \forall a_i=0 ai=0 的数组 a a a

可以执行以下两种操作 :

1,选取 [l, r] 区间,这个区间必须存在 a i = 0 a_i=0 ai=0 ,令所有数 + 1

2,选取 [l, r] 区间,这个区间不存在 a i = 0 a_i=0 ai=0 , 令所有数 - 1

很有意思的一道题目。

发现对于数组操作的过程中,一定不可能让最小值 ≥ 2 \geq 2 2

因为最后一个 0 0 0 ,只能被选一次。

只要有 01 01 01 ,就能构造。

void solve(){int n, x, fg = 0;cin >> n;while(n --){cin >> x;fg |= (x == 0 || x == 1);}cout << (fg ? "YES" : "NO") << '\n';
}

6 智算士气

m = p 1 c 1 × p 2 c 2 × ⋯ × p i c i m=p_1^{c_1}\times p_2^{c_2}\times \cdots \times p_i ^{c_i} m=p1c1×p2c2××pici

对于每一位,至少存在一个数为 p i c i p_i^{c_i} pici ,正难则反,第 i i i 位共有 ( c i + 1 ) n − c i n (c_i+1)^n-c_i^n (ci+1)ncin 种方案,考虑所有位,答案为 ∏ i ( c i + 1 ) n − c i n \prod _i (c_i+1)^n-c_i^n i(ci+1)ncin

map<int, int> pm;void solve(){ cin >> n >> m;for(int i = 2; i <= m / i; i ++){while(m % i == 0){pm[i] ++;m /= i;}}   if(m > 1) pm[m] ++;int res = 1;for(auto [x, y] : pm){ res *= ksm(y + 1, n, mod) - ksm(y, n, mod);res %= mod;if(res < 0) res += mod;}cout << res;
}

http://www.ppmy.cn/news/1537277.html

相关文章

使用 Go 和 Gin 框架构建简单的用户和物品管理 Web 服务

使用 Go 和 Gin 框架构建简单的用户和物品管理 Web 服务 在本项目中&#xff0c;我们使用 Go 语言和 Gin 框架构建了一个简单的 Web 服务&#xff0c;能够管理用户和物品的信息。该服务实现了两个主要接口&#xff1a;根据用户 ID 获取用户名称&#xff0c;以及根据物品 ID 获…

多jdk版本环境下,jenkins系统设置需指定JAVA_HOME环境变量

一、背景 由于不同项目对jdk版本的要求不同&#xff0c;有些是要求jdk11&#xff0c;有些只需要jdk8即可。 而linux机器上安装jdk的方式又多种多样&#xff0c;最后导致jenkins打包到底使用的是哪个jdk&#xff0c;比较混乱。 1、java在哪 > whereis java java: /usr/bin/…

【自注意力与Transformer架构在自然语言处理中的演变与应用】

背景介绍 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;序列到序列&#xff08;seq2seq&#xff09;模型和Transformer架构的出现&#xff0c;极大地推动了机器翻译、文本生成和其他语言任务的进展。传统的seq2seq模型通常依赖于循环神经网络&#xff08;RNN&…

浅聊前后端分离开发和前后端不分离开发模式

1.先聊聊Web开发的开发框架Spring MVC 首先要知道&#xff0c;Spring MVC是Web开发领域的一个知名框架&#xff0c;可以开发基于请求-响应模式的Web应用。而Web开发的本质是遵循HTTP&#xff08;Hyper Text Transfer Protocol: 超文本传输协议&#xff09;协议【发请求&#xf…

docker远程端口

docker开启远程端口后&#xff0c;使用本地的访问是不可以访问会docker报错 需要在配置文件中加入sock vi /usr/lib/systemd/system/docker.service 配置文件在 ExecStart/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H uninx://var/run.docker/sock 6443端口也可以使用 systemct…

总结:Flink之DataStream各API介绍

一、介绍 本文主要是详细介绍 DataStream<T> 类中的各个方法,并给出它们的使用场景。 二、基本方法 getId(): 作用:返回转换操作的唯一标识符。场景:当需要调试或日志记录时,有时候需要知道操作的 ID。getParallelism(): 作用:获取流的并行度。场景:在优化作业时…

高级java每日一道面试题-2024年10月1日-服务器篇[Redis篇]-Redis数据结构压缩列表和跳跃表的区别?

如果有遗漏,评论区告诉我进行补充 面试官: Redis数据结构压缩列表和跳跃表的区别&#xff1f; 我回答: 关于Redis数据结构的理解是一个重要的考察点&#xff0c;特别是压缩列表&#xff08;ziplist&#xff09;和跳跃表&#xff08;skiplist&#xff09;这两种数据结构&…

QT-多线程、线程池的使用

在进行桌面应用程序开发的时候&#xff0c; 假设应用程序在某些情况下需要处理比较复杂的逻辑&#xff0c;如果只有一个线程去处理&#xff0c;就会导致窗口卡顿&#xff0c;无法处理用户的相关操作。这种情况下就需要使用多线程&#xff0c;其中一个线程处理窗口事件&#xff…