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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【算法题解】2022年第四届河南省CCPC大学生程序设计竞赛(喜提银牌)

發(fā)布時(shí)間:2024/3/13 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【算法题解】2022年第四届河南省CCPC大学生程序设计竞赛(喜提银牌) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • A. Mocha 上小班啦
    • E. Serval 的俳句
    • F. 集合之和
    • G. Mocha 上大班啦
    • H. 旋轉(zhuǎn)水管

比賽題目已上傳到CF:2022 CCPC Henan Provincial Collegiate Programming Contest

比賽排名:Live: 2022年河南省第四屆CCPC大學(xué)生程序設(shè)計(jì)競(jìng)賽 | RankLand (algoux.org)

喜提銀牌一枚

A. Mocha 上小班啦

這道題我隊(duì)友從A題開始往后看,直接發(fā)現(xiàn)是道簽到題,上去就開寫,為了防止罰時(shí),我們一起檢查了一遍,不希望在小事在出錯(cuò)。最后一發(fā)A了。哈哈。

思路:構(gòu)造

  • 如果n >10,你們肯定不存在,因?yàn)橐WC數(shù)位中各個(gè)數(shù)字不相同。
  • 如果n <= 10
    • n = 1,答案就是0
    • n > 1,答案是就是10234…

比賽時(shí)AC代碼

#include <bits/stdc++.h> using namespace std; #define int long longsigned main() {int n;cin >> n;if (n > 10)cout << -1 << endl;else{if (n == 1){cout << 1 << endl;}else{cout << "10";for (int i = 2; i < n; i++){cout << i;}cout << endl;}}return 0; }

E. Serval 的俳句

過了一會(huì)發(fā)現(xiàn)E題過了很多,覺得肯定是道簽到題,然后隊(duì)長(zhǎng)讓我看,我上去一看發(fā)現(xiàn)還真是。

思路:貪心

首先,我們需要現(xiàn)在字符串從前到后找到5個(gè)相同字符,然后再再剩下的字符串中找7個(gè)字符,再然后在剩下的找5個(gè)相同字符,最后就找到了一個(gè)正確結(jié)果。

為啥這樣保證一定正確呢:當(dāng)時(shí)我想的是如果我從字符串的第一位開始找,如果某個(gè)字母出現(xiàn)了5次,那么它就一定是最優(yōu)的,并且只用到了整個(gè)字符串最短的部分,那么剩下的同理。

比賽時(shí)AC代碼

#include <bits/stdc++.h> using namespace std; #define int long longint cnt[26];signed main() {int n;string s;cin >> n >> s;string res = "";int ok = 0;for (int i = 0; i < n; i++){cnt[s[i] - 'a']++;if (cnt[s[i] - 'a'] == 5 and ok == 0){ok = 1;res += string(5, s[i]);for (int j = 0; j < 26; j++)cnt[j] = 0;}else if (cnt[s[i] - 'a'] == 7 and ok == 1){ok = 2;res += string(7, s[i]);for (int j = 0; j < 26; j++)cnt[j] = 0;}else if (cnt[s[i] - 'a'] == 5 and ok == 2){ok = 3;res += string(5, s[i]);break;}}if (ok == 3)cout << res << endl;elsecout << "none" << endl;return 0; }

F. 集合之和

剛開始看這道題的時(shí)候感覺這道肯定是個(gè)簽到提,但是這個(gè)題我們當(dāng)時(shí)都犯渾了,一直在想著怎么找規(guī)律,但找的規(guī)律都不對(duì),一開始發(fā)現(xiàn)了所有奇數(shù)都可以構(gòu)造出來,答案是1 2 3...。然后去想怎么構(gòu)造偶數(shù)的,但發(fā)現(xiàn)2和4都構(gòu)造不出來,是不是有其他偶數(shù)也構(gòu)造不出來,然后去嘗試6,8,10…,等等,就這樣過了一個(gè)多小時(shí)還沒寫出來,但是都有點(diǎn)崩潰了,我當(dāng)時(shí)內(nèi)心都已經(jīng)不能平靜下去了,但已經(jīng)過了兩三百人了,自己不可能寫不出來吧,然后隊(duì)友構(gòu)造出來了偶數(shù)8的構(gòu)造為1 2 3 5,然后我就想著看看以這個(gè)為突破口,然后突然發(fā)現(xiàn)它和奇數(shù)的規(guī)律好像,都是把最后一位加了1,然后我就去測(cè)試10,發(fā)現(xiàn)就是這樣,當(dāng)時(shí)激動(dòng)的快哭了。

1 2 3 4

2 3 4 5 6 7 8

1 2 3 5

2 3 4 5 6 7 8 10

然后交了一發(fā)A了。激動(dòng)壞了。差點(diǎn)銀牌都沒了,就卡在這一道簽到題上了。

比賽時(shí)AC代碼

#include <bits/stdc++.h> using namespace std; #define int long longsigned main() {int n;cin >> n;if (n & 1){int m = (n + 1) / 2;cout << m << endl;for (int i = 0; i < m; i++){cout << i << " ";}cout << endl;}else{if (n == 2 or n == 4)cout << -1 << endl;else{int m = n / 2;cout << m << endl;for (int i = 1; i < m; i++){cout << i << " ";}cout << m + 1 << endl;}}return 0; }

G. Mocha 上大班啦

這道題也是簽到題,隊(duì)長(zhǎng)先發(fā)現(xiàn)了這道題,看過的人也挺多,然后發(fā)現(xiàn)和概率有關(guān),頓時(shí)就犯了難,因?yàn)殛P(guān)于概率的問題都特別難。但是當(dāng)時(shí)已經(jīng)過了幾十個(gè)人了,就想著不可能太難。最后發(fā)現(xiàn)概率是個(gè)幌子,一點(diǎn)沒用。這道題和概率沒有任何關(guān)系。純粹是迷惑人的。最后隊(duì)長(zhǎng)一發(fā)A了。不得不說這題真是妙啊。

思路:枚舉

題目的本意是將n個(gè)字符串想與,最后統(tǒng)計(jì)字符串中有多少個(gè)1,直接枚舉即可。

比賽時(shí)AC代碼

#include <bits/stdc++.h> using namespace std; #define int long longstring s[1010]; int cnt[4010]; signed main() {std::ios::sync_with_stdio(false);cin.tie(nullptr);int n, m;cin >> n >> m;for (int i = 1; i <= n; i++){cin >> s[i];for (int j = 1; j <= m; j++){if (s[i][j - 1] == '1')cnt[j]++;}}int q;cin >> q;while (q--){int a, b, l, r, p;cin >> a >> b >> l >> r >> p;}int res = 0;for (int i = 1; i <= m; i++){if (cnt[i] == n)res++;}cout << res << endl;return 0; }

H. 旋轉(zhuǎn)水管

這題是隊(duì)長(zhǎng)首先看到的,我倆都覺得這題不難,肯定能寫,但當(dāng)時(shí)只有一個(gè)人過,并且很多人都wa了,心想不可能這么難吧,然后就開始寫,首先想的是Acwing里的AcWing 1131. 拯救大兵瑞恩這道題,想著還記錄狀態(tài),但寫完了之后提交wa了,然后發(fā)現(xiàn)光記錄每個(gè)格子的狀態(tài)有沒有經(jīng)歷過不行,因?yàn)槊總€(gè)水管必須只能更改一次方向,而且只能走一次,所以不能記錄狀態(tài),然后隊(duì)長(zhǎng)重寫了一遍,但越來越復(fù)雜,寫了四百多行,最后提交還是wa了,然后我突然想到bfs不行,拿dfs可不可以,然后計(jì)算了一下復(fù)雜度,最后發(fā)現(xiàn)由于水管的特殊形態(tài),所以最多只有幾種走法,大約是O(n)的復(fù)雜度,所以一定不會(huì)超時(shí),然后我就提醒隊(duì)長(zhǎng)讓他用dfs寫,然后十分鐘不到就寫完并提交A了,我們當(dāng)時(shí)賊激動(dòng),太艱難了,終究是過了,一下上到銀牌了。

思路:DFS

每次搜的時(shí)候記錄每個(gè)位置有沒有走過,如果走過就不能在走,如果出界了也就不能在走了。走完之后還要回溯回來,為了換個(gè)路徑尋找。

  • 遇到I:只能從上一個(gè)過來的方向直走
  • 遇到L: 從上一個(gè)過來的方向向它的兩邊走

比賽時(shí)AC代碼

#include <bits/stdc++.h> using namespace std; #define int long longconst int N = 1e5 + 10; char g[3][N]; bool st[3][N]; int n = 4, m, ex, ey; // 1 是往下走,2是往左走,3是往上走,4是往右走 bool dfs(int x, int y, int k) {if (x == 3 and y == ey)return true;if (x < 1 or x > 2 or y < 1 or y > m or st[x][y])return false;st[x][y] = true;bool t;if (g[x][y] == 'I'){if (k == 1)t = dfs(x + 1, y, 1);else if (k == 2)t = dfs(x, y - 1, 2);else if (k == 3)t = dfs(x - 1, y, 3);elset = dfs(x, y + 1, 4);}else{if (k == 1 or k == 3){t = (dfs(x, y - 1, 2) || dfs(x, y + 1, 4));}else if (k == 2 or k == 4){t = (dfs(x - 1, y, 3) || dfs(x + 1, y, 1));}}st[x][y] = false;return t; }void solve() {cin >> m >> ex >> ey;for (int i = 1; i <= 2; i++){string s;cin >> s;for (int j = 1; j <= m; j++){st[i][j] = false;g[i][j] = s[j - 1];}}if (dfs(1, ex, 1))cout << "YES" << endl;elsecout << "NO" << endl; }signed main() {freopen("in.in", "r", stdin);std::ios::sync_with_stdio(false);cin.tie(nullptr);int t;cin >> t;while (t--){solve();}return 0; }

比賽的時(shí)候只寫了這五道題,剩下的能補(bǔ)的盡快補(bǔ)上。

總結(jié)

以上是生活随笔為你收集整理的【算法题解】2022年第四届河南省CCPC大学生程序设计竞赛(喜提银牌)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产精品99久久久久久宅男 | 欧美日韩国产在线 | 不卡免费视频 | 最近高清中文在线字幕在线观看 | 污片在线观看 | 中国少妇无码专区 | 苍井空浴缸大战猛男120分钟 | 9.1在线观看免费 | 美女操出白浆 | 成人免费毛片入口 | 日日操av | 国产剧情av麻豆香蕉精品 | 91精产国品一二三区在线观看 | 国产影视一区二区三区 | 九九色| 91国内精品视频 | 欧美一级黄色网 | 日韩欧美国产一区二区三区在线观看 | xxx日本黄色| 被扒开腿一边憋尿一边惩罚 | 欧美性做爰免费观看 | 欧美大浪妇猛交饥渴大叫 | 香蕉久久a毛片 | 亚洲欧美一区二区三区在线 | 影音先锋男人的天堂 | 日韩激情在线观看 | 日本va欧美va精品发布 | 国产精品女优 | 综合色导航 | 欧美性猛交xxxxx水多 | 中国a一片一级一片 | 欧美淫视频 | 福利国产视频 | 天天做日日做 | 免费av成人 | 亚洲天堂2013 | 69亚洲精品| 国产精品xxxxx | 长河落日电视连续剧免费观看01 | 亚洲中文字幕视频一区 | 国产成人精品a视频 | 波多野结衣免费在线视频 | 天天激情站| 黄色大片在线播放 | 最近中文字幕mv免费高清在线 | 日韩国产传媒 | 大乳女喂男人吃奶 | 欧美极品少妇xxxxⅹ免费视频 | 中文字幕导航 | 欧美区二区三区 | 欧美视频你懂的 | 黄色综合网| 日本久久久久久久久久 | 日本道在线观看 | 国产视频在线观看一区二区 | 婷婷五月色综合 | 毛片视频软件 | 欧美成人自拍视频 | 欧美黄视频 | 国产精品91一区二区 | 国产乱码精品1区2区3区 | 我会温柔一点的日剧 | 国产福利91| 欧美日韩一区二区三区 | 国产内射合集颜射 | 欧美日日夜夜 | 欧美黑人精品一区二区不卡 | 亚洲女人天堂 | 精品久久久久久亚洲综合网站 | 久久综合久久久 | 一区二区不卡在线观看 | 久久精品99国产精品日本 | 黄色录像大片 | 大胸美女被爆操 | 欧美经典一区二区 | 精品国产av 无码一区二区三区 | 污污的视频软件 | 美女尻逼视频 | 国产在线999 | 丁香色婷婷 | 五月天黄色小说 | 国产男女猛烈无遮挡免费视频动漫 | 久久综合久久综合久久 | 日本亲子乱子伦xxxx50路 | 欧洲精品码一区二区三区免费看 | www天天干 | 国产91免费视频 | 亚洲精品无吗 | 毛片毛片毛片毛片毛片毛片 | 国产美女自慰在线观看 | 久久尤物视频 | 色呦呦网站 | 制服一区二区 | 成人国产精品视频 | 99r精品视频 | 日韩在线不卡 | 国产精品人人 | 亚洲性视频在线 | 狠狠综合久久av一区二区 |