日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

第十二届蓝桥杯大赛软件赛省赛 C/C++ 大学B组

發(fā)布時間:2025/3/19 c/c++ 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第十二届蓝桥杯大赛软件赛省赛 C/C++ 大学B组 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

試題A :空間

67108864

試題B :卡片

// 答案是 3181 #include <iostream> using namespace std;int nums[15];bool check(int x) {while (x){int now = x % 10;x /= 10;if (nums[now] < 1) return false;nums[now] -- ;}return true; }int main() {for (int i = 0; i <= 9; i ++ ) nums[i] = 2021;for (int i = 1; ; i ++ ){if (!check(i)){cout << i - 1;return 0;}} }

試題C :直線

  • 需要注意當(dāng)垂直于x軸使無法計算斜率
  • 注意計算b時,式子中不要涉及到k,可以用整型,就不要用浮點數(shù)計算
// 答案是40257 #include <iostream> #include <map> using namespace std;const int N = 30 * 30;struct Point {int x, y; }p[N]; int cnt;map<pair<double, double>, int> ma;int main() {for (int i = 0; i < 20; i ++ )for (int j = 0; j < 21; j ++ ){p[cnt].x = i; p[cnt].y = j; cnt ++ ;}int res = 20 + 21;for (int i = 0; i < cnt; i ++ )for (int j = 0; j < cnt; j ++ ){int x1 = p[i].x, y1 = p[i].y, x2 = p[j].x, y2 = p[j].y;if (x1 == x2 || y1 == y2) continue;double k = 1.0 * (y2 - y1) / (x2 - x1);double m = 1.0 * (x2 * y1 - x1 * y2) / (x2 - x1);if (ma[{k, m}] == 0){res ++ ;ma[{k, m}] = 1;}}cout << res; }

試題D : 貨物擺放

  • a?b?c==na*b*c==na?b?c==n,不可能直接枚舉,發(fā)現(xiàn)abc的特點就是它們都是n的約束,因此我們可以直接枚舉n的所有約數(shù),復(fù)雜度大大降低
// 答案是2430 #include <iostream> #include <vector> using namespace std;typedef long long ll;const ll n = 2021041820210418;int main() {ll res = 0;vector<ll> ve;for (ll i = 1; i * i <= n; i ++ ){if (n % i == 0){ve.push_back(i);if (i * i != n) ve.push_back(n / i);}}for (auto i : ve)for (auto j : ve)for (auto k : ve)if (i * j * k == n)res ++ ;cout << res; }

試題E :路徑

// 答案是10266837 #include <iostream> #include <cstring> using namespace std;const int N = 2030;int gcd(int a, int b) {return b ? gcd(b, a % b) : a; }int dist[N][N];int main() {memset(dist, 0x3f, sizeof dist);for (int i = 1; i <= 2021; i ++ )for (int j = 1; j <= 2021; j ++ ){if (i == j) dist[i][j] = 0;else if (abs(i - j) <= 21) dist[i][j] = min(dist[i][j], i * j / gcd(i, j));}for (int i = 1; i <= 2021; i ++ )for (int j = 1; j <= 2021; j ++ )for (int k = 1; k <= 2021; k ++ )dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]);cout << dist[1][2021]; }

試題F :時間顯示

#include <iostream> #include <cstring> using namespace std;typedef long long ll;int main() {ll n; cin >> n;ll time = n / 1000;ll ss = time % 60;ll mm = time / 60 % 60;ll hh = time / 3600 % 24;printf("%02lld:%02lld:%02lld", hh, mm, ss); }

試題G :砝碼稱重

  • 砝碼可以放在天平兩邊或者不放,相當(dāng)于砝碼的重量可以為正貢獻(xiàn)也可以為負(fù)貢獻(xiàn)或者沒有貢獻(xiàn)
  • 由于j + w[i],因此可能會出現(xiàn)越界,要把M開大一些
#include <iostream> #include <cmath> using namespace std;const int N = 110, M = 2e5 + 10;int n, w[N]; bool f[N][M];int main() {cin >> n;int sum = 0;for (int i = 1; i <= n && cin >> w[i]; i ++ ) sum += w[i];f[0][0] = true;for (int i = 1; i <= n; i ++ ){for (int j = 0; j <= 100000; j ++ ){f[i][j] = f[i - 1][j];f[i][j] |= f[i - 1][abs(j - w[i])];f[i][j] |= f[i - 1][j + w[i]];}}int res = 0;for (int i = 1; i < M; i ++ )if (f[n][i])res ++ ;cout << res; } // TLE #include <iostream> using namespace std;const int N = 110, M = 1e5 + 10;int n, w[N]; bool vis[M];void dfs(int i, int sum) {if (i == n + 1){vis[abs(sum)] = true;return ;}dfs(i + 1, sum);dfs(i + 1, sum - w[i]);dfs(i + 1, sum + w[i]); }int main() {cin >> n;for (int i = 1; i <= n && cin >> w[i]; i ++ );dfs(1, 0);int res = 0;for (int i = 1; i < M; i ++ )if (vis[i])res ++ ;cout << res; }

試題H :楊輝三角形


  • 由于左右對稱,要找第一次出現(xiàn)的位置,因此右半部分不需要考慮
  • 楊輝三角中每個數(shù)都可以用 組合 來表示,且同一行中的下角標(biāo)相同,同一斜行的上角標(biāo)相同
  • 1e9數(shù)據(jù),以行和列來枚舉是不現(xiàn)實的,因此我們考慮以每一斜行(下面以“列”代稱)來入手
  • 每一列中,從上到下嚴(yán)格單調(diào)遞增,因此,在每一列中,可以用二分查找n,而且我們發(fā)現(xiàn)在僅使用一半的楊輝三角以后,每一列中最上面的那個數(shù)是C2iiC^{i}_{2i}C2ii?,而最下面的那個數(shù)僅與當(dāng)前枚舉的行數(shù)有關(guān),最多肯定是n行,則為C2n1C^{1}_{2n}C2n1?;列與列之間,最上面的數(shù)是遞增的,且越靠下的列出現(xiàn)第一次出現(xiàn)的數(shù)的概率更高,因此,我們從最下面的列開始枚舉,從計算最上面的數(shù)可知我們只需要枚舉到第十七列(從第零列開始)
  • 關(guān)于如果計算CnmC^{m}_{n}Cnm?的優(yōu)化
#include <iostream> using namespace std;typedef long long ll;int x;ll C(int n, int m) {ll res = 1;for (int i = n, j = 1; i >= n - m + 1; i -- , j ++ ){res = res * i / j;if (res > x) return res;}return res; }bool check(int k) {int l = 2 * k - 1, r = max(l, x) + 1; // 保證右邊界大于等于左邊jie // int l = 2 * k, r = x;while (l + 1 != r){int mid = l + r >> 1;if (C(mid, k) >= x) r = mid;else l = mid;}if (C(r, k) == x){cout << 1ll * r * (r + 1) / 2 + k + 1;return true;}return false; }int main() {cin >> x;for (int i = 17; ; i -- )if (check(i))break; } // 20%分?jǐn)?shù) #include <iostream> #include <cmath> using namespace std;int f[2510][2510]; int cnt;int main() {int n; cin >> n;f[0][0] = 1;for (int i = 1; i <= 2500; i ++ ){for (int j = 1; j <= i; j ++ ){f[i][j] = f[i - 1][j - 1] + f[i - 1][j];cnt ++ ;if (f[i][j] == n){cout << cnt;return 0;}}} }

試題I :雙向排序(暫跳)

試題J :括號序列

總結(jié)

以上是生活随笔為你收集整理的第十二届蓝桥杯大赛软件赛省赛 C/C++ 大学B组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美成人久久久免费播放 | 成人在线一区二区三区 | 黄色av免费网站 | 日本高清精品 | 亚洲精品一区二区三区精华液 | 尤物视频在线观看免费 | 国产精品a久久久久 | 日韩一区二区精品视频 | 精品国产aⅴ一区二区三区四川人 | 色婷五月天| 91亚洲在线| 欧美一级网 | 91大神精品在线 | 免费观看全黄做爰的视频 | 亚洲精品专区 | 亚洲少妇一区二区 | 久久精品视频免费播放 | 欧美一级片免费 | 爱爱视频免费看 | 视频一区二区中文字幕 | 特级一级片 | 亚洲国产精品成人无久久精品 | 久久99国产视频 | 一级片免费视频 | 欧美成人免费在线视频 | 中文永久免费观看 | 亚洲免费观看高清在线观看 | 中文字幕免费在线看线人动作大片 | 激情影音 | 日本一区二区免费在线观看 | 国产精品18久久久久久无码 | 欧美成人视屏 | 欧美中文字幕视频 | 中文字幕精品视频在线观看 | 精品国产精品国产偷麻豆 | 欧美日韩精品一区二区三区蜜桃 | 少妇人妻无码专区视频 | 无码少妇一区二区三区 | 中国在线观看免费高清视频播放 | 在线成人一区二区 | 欧美三级a | 成人免费aaa | 99久久久国产精品 | 国产香蕉97碰碰碰视频在线观看 | 久久中文字 | 老女人网站 | 依人综合网 | 亚洲人成7777 | 精品视频久久久久 | 天天操天天爱天天干 | 亚洲乱码一区二区三区在线观看 | 欧美操穴| 成人三级做爰av | 蜜桃tv在线观看 | 国产www免费| 亚洲性xx | 日本不卡一区二区三区 | 8x8ⅹ国产精品一区二区二区 | 91禁动漫在线 | 草民午夜理伦三级 | 健身教练巨大粗爽gay视频 | 亚洲综合色在线观看 | 超碰狠狠干 | 精品人妻一区二区色欲产成人 | 91精选| 国产污污网站 | 亚洲欧美在线观看 | 免费a在线观看 | 中文字幕日韩高清 | 久久国产香蕉视频 | 国产探花一区二区三区 | 亚洲综合在线一区 | 免费一级做a爰片久久毛片潮 | 免费日本黄色片 | 国产野外作爱视频播放 | 少妇高潮一区二区三区69 | 亚洲国产成人在线视频 | 少妇姐姐 | 色网站视频 | 脱女学生小内内摸了高潮 | 亚洲AV无码精品自拍 | 日本女人黄色 | 欧美亚洲视频一区 | 亚洲三级免费观看 | 久久久久久久人妻无码中文字幕爆 | 人妻巨大乳hd免费看 | 国产精品日日摸夜夜爽 | 操操操av| 初高中福利视频网站 | 久久久穴 | 国产成人免费av | 亚洲视频欧洲视频 | 德国艳星videos极品hd | 国产馆在线观看 | 国产精品乱码一区二三区小蝌蚪 | 素人一区二区 | 操操网站 | 99草在线视频 | 亚洲一区二区三区不卡视频 |