當(dāng)前位置:
首頁(yè) >
第十二届蓝桥杯大赛软件赛省赛第二场 C/C++ 大学B组
發(fā)布時(shí)間:2025/3/19
28
豆豆
生活随笔
收集整理的這篇文章主要介紹了
第十二届蓝桥杯大赛软件赛省赛第二场 C/C++ 大学B组
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
試題A :取余
1試題 B: 雙階乘
// 59375 #include <iostream> using namespace std;const int mod = 100000;int main() {int n = 2021;int res = 1;for (int i = 1; i <= 2021; i += 2) {res = (res * i) % mod;}cout << res; }試題 C: 格點(diǎn)
// 15698 #include <iostream> using namespace std;int main() {int cnt = 0;for (int i = 1; i <= 2021; ++ i) {for (int j = 1; j <= 2021; ++ j) {if (i * j == 2021)cnt ++ ;}}cout << cnt; }試題 D: 整數(shù)分解
- dp
- f[i][j]f[i][j]f[i][j]表示用i個(gè)數(shù)相加表示數(shù)字j的方案數(shù)
- 數(shù)論隔板法
- 將2021拆分成2021個(gè)1,期間可以放2020個(gè)擱板,將2021分成五個(gè)正整數(shù)相加,也就是在這2020個(gè)擱板中選四個(gè)位置放四個(gè)擱板,因此,答案就是C20204C^4_{2020}C20204?
試題 E: 城邦
- prim
- kruscal
試題 F: 特殊年份
#include <iostream> using namespace std;bool check(int x) {int a[5];for (int i = 0; i < 4; ++ i) {a[i] = x % 10;x /= 10;}if (a[1] == a[3] && a[0] - 1 == a[2]) return true;return false; }int main() {int cnt = 0;for (int i = 0; i < 5; ++ i) {int year;cin >> year;if (check(year))cnt ++ ;}cout << cnt; }試題 G: 小平方
#include <iostream> using namespace std;int main() {int n;cin >> n;int cnt = 0;for (int i = 1; i <= n - 1; ++ i) {int pf = i * i;if (pf % n < n / 2.0)cnt ++ ;}cout << cnt; }試題 H: 完全平方數(shù)
#include <iostream> #include <cmath> using namespace std;bool check(int x) {int t = (int)sqrt(x);if (t * t == x)return true;return false; }int main() {int n;cin >> n;for (int i = 1; i <= n; ++ i) {if (check(i * n)) {cout << i << endl;return 0;}} }試題 I: 負(fù)載均衡
#include <iostream> #include <queue> using namespace std; typedef pair<int, int> PII; const int N = 2e5 + 10;int power[N]; priority_queue<PII, vector<PII>, greater<PII>> que[N]; // 小頂堆數(shù)組int main() {int n, m;cin >> n >> m;for (int i = 1; i <= n; ++ i)cin >> power[i];while (m -- ) {int a, b, c, d;cin >> a >> b >> c >> d;while (que[b].size() && que[b].top().first <= a) {power[b] += que[b].top().second;que[b].pop();}if (power[b] < d) {cout << -1 << endl;} else {power[b] -= d;cout << power[b] << endl;que[b].push({a + c, d});}} }試題 J: 國(guó)際象棋
- 典型的 狀壓dp
- 由于這里行數(shù)比列數(shù)少,因此我們枚舉每一列的擺放狀態(tài)
- f[i][a][b][j]f[i][a][b][j]f[i][a][b][j]表示考慮前i列,第i-1列狀態(tài)為a,第i列狀態(tài)為b,且一共放了j個(gè)馬(因?yàn)檫@道題與數(shù)量有關(guān))的方案數(shù)
- 確定正確的初始狀態(tài)
總結(jié)
以上是生活随笔為你收集整理的第十二届蓝桥杯大赛软件赛省赛第二场 C/C++ 大学B组的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 启动过滤器异常 java.lang.Ab
- 下一篇: 第十一届蓝桥杯大赛软件赛省赛 C/C++