2024睿抗編程賽國賽-題解

2024睿抗編程賽國賽題解

RC-u1 大家一起查作弊

題目重述

我們需要從給定的多行字符串中提取出所有的關鍵詞,并計算這些關鍵詞的可疑分數總和、總長度以及關鍵詞的數量。具體步驟如下:

  1. 關鍵詞定義:由大寫字母、小寫字母、數字組成的字符串,并且前后均為非大小寫字母及數字(即關鍵詞的邊界是非字母數字字符或字符串的開頭/結尾)。
  2. 可疑分數計算
    • 同時包含大寫字母、小寫字母、數字:+5 分
    • 同時包含(大寫字母和數字)或(小寫字母和數字):+3 分
    • 同時包含大寫字母和小寫字母:+1 分
    • 其他情況:+0 分
  3. 輸出要求
    • 第一行:可疑分數的總和
    • 第二行:關鍵詞的總長度和關鍵詞的數量(用空格隔開)
輸入示例
static void nnmMNBkf3kfa(){int fefvB4=2;int [][]fsdk9A=new int[fefvB4][fefvB4];fsdk9A[0][0]=1;for (int gfdgsUB3 = 0; gfdgsUB3 < fefvB4; gfdgsUB3++) {for (int fdnbXZ8 = 0; fdnbXZ8<fefvB4-gfdgsUB3-1; fdnbXZ8++) {fsdk9A[gfdgsUB3][fdnbXZ8+1]=fsdk9A[gfdgsUB3][fdnbXZ8]+gfdgsUB3+fdnbXZ8+2;fsdk9A[gfdgsUB3+1][fdnbXZ8]=fsdk9A[gfdgsUB3][fdnbXZ8]+gfdgsUB3+fdnbXZ8+1;break;}break;}
}
輸出示例
155
276 54

算法思路

主要是要學會getline讀取字符串;

code

#include <bits/stdc++.h>
using namespace std;
#define int long long 
bool check1(char ch)
{if (ch >= 'a' && ch <= 'z') return true;else if(ch >= 'A' && ch <= 'Z') return true;else if (ch >= '0' && ch <= '9') return true;return false;
}
int sc = 0, le = 0, cnt = 0;
signed main()
{string s;while (getline(cin, s)){for (int i = 0; i < s.size(); i ++){if (check1(s[i])){bool f1 = 0, f2 = 0, f3 = 0;int r = i;for (int j = i; j < s.size(); j ++)if (check1(s[j]))				r = j;else break;for (int j = i; j <= r; j ++){if (s[j] >= 'a' && s[j] <= 'z') f1 = 1;else if (s[j] >= 'A' && s[j] <= 'Z') f2 = 1;else if (s[j] >= '0' && s[j] <= '9')f3 = 1; }cnt ++;if (f1 && f2 && f3) sc += 5;else if ((f1 && f3) || (f2 && f3)) sc += 3;else if (f1 && f2) sc++;le += r - i + 1;i = r + 1;}}}cout << sc << endl;cout << le << " " << cnt ;return 0;} 

RC-u3 勢均力敵

題目描述

給定一個整數 n n n 2 < n ≤ 4 2 < n \leq 4 2<n4)和 n n n 個不同的個位數字(數字在 [1, 9] 范圍內),用這些數字組成的所有 n ! n! n! 個不同的 n n n 位數。需要將這些數字分成兩組,滿足以下條件:

  1. 兩組的數字個數相等(即每組有 n ! / 2 n!/2 n!/2 個數字)。
  2. 兩組的數字的平方和相等。

題目要求輸出其中一組的數字,每個數字占一行。

輸入格式
  • 第一行:正整數 n n n 2 < n ≤ 4 2 < n \leq 4 2<n4)。
  • 第二行: n n n 個不同的個位數字,用空格分隔。
輸出格式
  • 輸出其中一組的 n ! / 2 n!/2 n!/2 個數字,每個數字占一行。解不唯一時,輸出任意一組均可。
示例

輸入:

3
5 2 1

輸出:

125
512
251

算法思路

因為 n 最大取4, 換算過來就是 24 中排列情況, 這期間又不是全部需要枚舉,所以直接dfs深搜即可

第一個 dfs 把所有組合情況加在 v 中

第二個 dfs2 則枚舉所有組合情況分成數量相同的兩堆

code

#include <bits/stdc++.h>
using namespace std;
#define int long long
int n, sum;
int a[30];
vector<int> v, x;
bool st[30], st2[30], flag;
void dfs(int u, int x) {if (u == n) {v.push_back(x);return ;}for (int i = 0; i < n; i ++) {if (st[i]) continue;st[i] = 1;dfs(u + 1, x * 10 + a[i]);st[i] = 0;}
}void dfs2(int u)
{if (u == sum || flag) return ;if (x.size () == sum / 2){int s1 = 0, s2 = 0;for (int i = 0; i < sum; i ++) {if (st2[i]) s1 += v[i] * v[i];else s2 += v[i] * v[i];}if (s1 == s2) {flag = 1;for (auto c : x) {cout << c << endl;} return;}}x.push_back(v[u]);st2[u] = 1;dfs2(u + 1);st2[u] = 0;x.pop_back();dfs2(u + 1);
}signed main() {cin >> n;for (int i = 0 ; i < n; i ++ )cin >> a[i];dfs(0, 0);sum = v.size();dfs2(0);return 0;
}

RC-u4 City 不 City

題目描述

“City 不 City”是一個網絡熱梗,源于一位外國友人保保熊在直播旅游時用奇怪的腔調說“好 city,啊!”。現在,一些叛逆的年輕人喜歡在旅行時避開網紅打卡點,選擇一些小眾的特色地方小城鎮,不追求“city”,而是喜歡說“好 country,啊”。

給定各個城鎮的旅游熱度和城鎮間的旅行花銷,請為旅行者規劃一條最經濟的路線,并盡可能避開熱度很高的網紅點。

輸入格式:
  • 第一行:4 個正整數 n(城鎮數量,1 < n ≤ 10^3)、m(通路條數,1 ≤ m ≤ 5n)、s(出發地)、t(目的地)。
  • 第二行:n 個不超過 100 的正整數,表示 n 個城鎮的旅游熱度。
  • 接下來的 m 行:每行給出 uvcost,表示城鎮 uv 之間有一條雙向通路,花銷為 cost(不超過 10^3 的正整數)。
輸出格式:
  • st 的最小花銷路線;若有多條相同最小花銷的路線,選擇途經城鎮的最高旅游熱度值最小的那條。
  • 輸出格式:最小花銷 最高熱度值(若沒有途經城鎮,最高熱度為 0)。
  • 如果無法從 s 走到 t,輸出 Impossible
輸入樣例 1:
8 14 7 8
100 20 30 10 50 80 100 100
7 1 1
7 2 2
7 3 1
7 4 2
1 2 1
1 5 2
2 5 1
3 4 1
3 5 3
3 6 2
4 6 1
5 6 1
5 8 1
6 8 2
輸出樣例 1:
4 50
解釋:

從 7 到 8 的最短路徑有 3 條:

  1. 7->1->5->8(最高熱度:max(100, 50) = 100)
  2. 7->2->5->8(最高熱度:max(20, 50) = 50)
  3. 7->3->6->8(最高熱度:max(30, 80) = 80)

選擇最高熱度最小的路徑 7->2->5->8,輸出 4 50

輸入樣例 2:
3 1 1 2
10 20 30
1 3 1
輸出樣例 2:
Impossible

算法思路

Dijstra() 標準模板題,主要是要處理好best數組,best數組用來記錄路上的最高熱度

code

#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
const int N = 1e3 + 10, M = N * 10;
int h[N], e[M], ne[M], idx, w[M];
void add(int a, int b, int c) {e[idx] = b, w[idx] = c, ne[idx] = h[a], h[a] = idx ++ ;
}
int p[N], dist[N];
int best[N];  // 記錄最高熱度 
int n, m, s, t;
bool st[N];
void Dijstra() {memset(dist, 0x3f, sizeof dist);memset(best, 0x3f, sizeof best);dist[s] = 0;best[s] = 0;for (int i = 1; i <= n; i ++) {int v = -1;for (int j = 1; j <= n; j ++) {if (!st[j] && (v == -1 || dist[j] < dist[v] || (dist[j] == dist[v] && best[j] < best[v]))) v = j;}st[v] = 1;for (int i = h[v]; i != -1; i = ne[i]) {int j = e[i];int d = dist[v] + w[i];int be = max(best[v], j == t ? 0 : p[j]); // 如果不是終點,就把熱度考慮進去 if ( d < dist[j] || (d == dist[j] && be < best[j])) {dist[j] = d;best[j] = be;}}}
}int main() {memset(h, -1,sizeof h);cin >> n >> m >> s >> t;for (int i = 1; i <= n; i ++) {cin >> p[i];}for (int i = 1; i <= m; i ++) {int a, b, c;cin >> a >> b >> c;add(a, b, c), add(b, a, c);}Dijstra();if (dist[t] == 0x3f3f3f3f)cout << "Impossible";else {cout << dist[t] << " " << best[t];}cout << endl;return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/80408.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/80408.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/80408.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

控制LED燈設備

本章分別使用C庫和系統調用的文件操作方式控制開發板的LED燈&#xff0c;展示如何在應用層通過系統提供的設備文件控制相關硬件。 本章的示例代碼目錄為&#xff1a;base_code/linux_app/led/sys_class_leds。 9.1. LED子系統 在Linux系統中&#xff0c;絕大多數硬件設備都有…

SpringBoot學習(上) , SpringBoot項目的創建(IDEA2024版本)

目錄 1. SpringBoot介紹 SpringBoot特點 2. SpringBoot入門 2.1 創建SpringBoot項目 Spring Initialize 第一步: 選擇創建項目 第二步: 選擇起步依賴 第三步: 查看啟動類 2.2 springboot父項目 2.3 測試案例 2.3.1 數據庫 2.3.2 生成代碼 1. SpringBoot介紹 Spring B…

在 Ubuntu 中配置 Samba 實現「特定用戶可寫,其他用戶只讀」的共享目錄

需求目標 所有認證用戶可訪問 Samba 共享目錄 /path/to/home&#xff1b;**僅特定用戶&#xff08;如 developer&#xff09;**擁有寫權限&#xff1b;其他用戶僅允許讀取&#xff1b;禁止匿名訪問。 配置步驟 1. 設置文件系統權限 將目錄 /home3/guest 的所有權設為 develo…

ENSP-OSPF綜合實驗

AR4中通過ospf獲取的其他區域路由信息&#xff0c;并且通過路由匯總后簡化路由信息 實現全網通&#xff0c;以及單向重發布&#xff0c;以及通過缺省雙向訪問&#xff0c; 通過stub簡化過濾四類五類lsa&#xff0c;簡化ospf路由信息 通過nssa簡化ospf信息 區域匯總簡化R4路由信…

linux(centos)聯網情況下部署

nginx部署 1.linux(centos)聯網情況下部署 1.下載nginx所需依賴 # 安裝開發工具組&#xff08;若未安裝&#xff09; sudo yum groupinstall "Development Tools"# 安裝 OpenSSL 開發包 sudo yum install openssl-devel# 安裝 PCRE 開發包 sudo yum install pcre-…

LeetCode 1550.存在連續三個奇數的數組:遍歷

【LetMeFly】1550.存在連續三個奇數的數組&#xff1a;遍歷 力扣題目鏈接&#xff1a;https://leetcode.cn/problems/three-consecutive-odds/ 給你一個整數數組 arr&#xff0c;請你判斷數組中是否存在連續三個元素都是奇數的情況&#xff1a;如果存在&#xff0c;請返回 tr…

Android Framework學習四:init進程實現

文章目錄 init流程簡介init源碼執行順序執行順序 init進程的具體工作事項掛載文件系統設置 SELinuxSecondStageMaininit.rc啟動zygote和serviceManager進程的重要性serviceManager工作原理 Framework學習之系列文章 init流程簡介 下面圖片主要圍繞 Android 系統中init進程的運…

HTTP/3展望、我應該遷移到HTTP/2嗎

1. HTTP/3展望 HTTP/3 基于 QUIC 協議&#xff0c;完全解決了“隊頭阻塞”問題&#xff0c;弱網環境下的表現會優于 HTTP/2&#xff1b;QUIC 是一個新的傳輸層協議&#xff0c;建立在 UDP 之上&#xff0c;實現了可靠傳輸&#xff1b;QUIC 內含了 TLS1.3&#xff0c;只能加密通…

【大模型面試每日一題】Day 15:流水線并行的Bubble問題及其緩解方法

【大模型面試每日一題】Day 15&#xff1a;流水線并行的Bubble問題及其緩解方法 &#x1f4cc; 題目重現 &#x1f31f;&#x1f31f; 面試官&#xff1a;解釋流水線并行&#xff08;Pipeline Parallelism&#xff09;的bubble問題及其緩解方法。 #mermaid-svg-Uz7WGsO8akW5F…

Windows環境下maven的安裝與配置

1.檢查JAVA_HOME環境變量 Maven是使用java開發的&#xff0c;所以必須知道當前系統環境中的JDK的安裝目錄。 搜索欄直接輸入“cmd” 或者 WinR 輸入cmd 在打開的終端窗口輸入“echo %JAVA_HOME”&#xff0c;就可以看到jdk的位置了。 如果沒有的話&#xff0c;請參考我的文章&a…

Kubernetes 集群部署應用

部署 Nginx 應用 命令行的方式 1. 創建 deployment 控制器的 pod # --imagenginx&#xff1a;這個會從 docker.io 中拉取&#xff0c;這個網站拉不下來 # kubectl create deployment mynginx --imagenginx# 使用國內鏡像源拉取 kubectl create deployment mynginx --imaged…

如何使用依賴注入來實現依賴倒置原則?

依賴注入(Dependency Injection, DI)是實現依賴倒置原則(DIP)的具體技術手段,它通過將依賴對象的創建和管理交給外部容器,從而實現高層模塊與低層模塊的解耦。下面從原理、實現方式、框架應用及最佳實踐四個方面詳細解析: 一、依賴倒置原則(DIP)的核心思想 高層模塊不…

python使用AES進行加密和解密

如果需要加密和解密功能,可以使用AES算法。以下是使用Python實現AES加密和解密的示例: from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad from Crypto.Random import get_random_bytesdef aes_encrypt(data,

SaaS場快訂首頁的前端搭建【持續更新】

文章目錄 一、創建頁面二、配置路由三、寫接口文件&#xff08;api&#xff09;1.定位的接口函數&#xff08;騰訊地圖api&#xff09;實現代碼&#xff1a; 2.獲取場館分類的數據3.獲取附近場館列表的數據 四、開發首頁頁面1.頂部區域2.搜索框3.場館分類4.附近場館列表 五、難…

深入解析 MQTT 協議:物聯網通信的基石

在當今物聯網蓬勃發展的時代&#xff0c;設備之間高效、可靠的通信變得至關重要。MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;協議&#xff0c;作為一種輕量級的消息傳輸協議&#xff0c;正逐漸成為物聯網通信的基石&#xff0c;廣泛應用于各種場景中。 …

在Python中計算函數耗時并超時自動退出

更多內容請見: python3案例和總結-專欄介紹和目錄 文章目錄 方法1:使用裝飾器結合信號模塊(僅Unix-like系統)方法2:使用多線程(跨平臺解決方案)方法3:使用concurrent.futures(Python 3.2+)方法4:使用 multiprocessing + Process(跨平臺)?方法5:使用 time 手動計…

理解c++中explicit關鍵字的作用

理解c中explicit關鍵字的作用 explicit 關鍵字的作用是防止構造函數被隱式調用&#xff0c;從而避免意外的類型轉換 #include <iostream> class Vec3 { public://構造函數沒有被explicit修飾Vec3(float value): x(value), y(value), z(value){}Vec3(float val1, float …

不止是UI庫:React如何重塑前端開發范式?

React&#xff1a;引領現代前端開發的聲明式UI庫 在當今快速發展的前端世界&#xff0c;React以其聲明式、組件化和高效的特性&#xff0c;穩坐頭把交椅&#xff0c;成為構建交互式用戶界面的首選JavaScript庫。本文將帶你快速了解React的核心魅力、主要優勢以及生態發展&…

理解 Token 索引 vs 字符位置

以下是對“理解 Token 索引與字符位置的區別”的內容整理&#xff0c;條理清晰&#xff0c;結構完整&#xff0c;保持技術細節&#xff0c;方便閱讀&#xff0c;無多余解釋&#xff1a; &#x1f50d; 理解 Token 索引 vs 字符位置 文本分塊方法中返回的索引是 token 索引&…

《異常鏈機制詳解:如何優雅地傳遞Java中的錯誤信息?》

大家好呀&#xff01;&#x1f44b; 作為一名Java開發者&#xff0c;相信你一定見過各種奇奇怪怪的異常報錯。但有沒有遇到過這樣的情況&#xff1a;明明只調用了一個方法&#xff0c;卻看到異常信息像俄羅斯套娃一樣一層層展開&#xff1f;&#x1f914; 這就是我們今天要講的…