2025牛客寒假算法基礎集訓營6

A.復制雞

思路:比較簡單,略。

void solve()
{int n, m, k;cin >> n;int last = -1, ans = 0;for (int i = 0; i<n; i++){int x;cin >> x;if (x != last){ans++;}last = x;}cout << ans << endl;
}

B.好伙計猜拳

思路:這道題和最長子序列相似,在符合時加1,而這里是加懲罰值,并且又有交換的條件,所以開二維數組來進行動態轉移。

void solve()
{int n, c1, c2;cin >> n >> c1 >> c2;vector<int> a(n+1), b(n+1);for (int i = 1; i<=n; i++){cin >> a[i] >> b[i];}vector<vector<int>> dp(n+1, vector<int>(2, INF));dp[0][0] = 0;int ans = INF;for (int i = 1; i<=n; i++){for (int j = 0; j<i; j++){if (a[j] <= a[i] && b[j] <= b[i]) // (aj, bj) -> (ai, bi)dp[i][0] = min(dp[i][0], dp[j][0]+c1*(i-j-1));if (a[j] <= b[i] && b[j] <= a[i]) // (bj, aj) -> (ai, bi)dp[i][0] = min(dp[i][0], dp[j][1]+c1*(i-j-1));}for (int j = 0; j<i; j++){    if (a[j] <= b[i] && b[j] <= a[i]) // (aj, bj) -> (bi, ai)dp[i][1] = min(dp[i][1], dp[j][0]+c1*(i-j-1));if (b[j] <= b[i] && a[j] <= a[i]) // (bj, aj) -> (bi, ai)dp[i][1] = min(dp[i][1], dp[j][1]+c1*(i-j-1));}dp[i][1] += c2;ans = min({ans, dp[i][0]+c1*(n-i), dp[i][1]+c1*(n-i)});}cout << ans << endl;
}

C.數列之和

思路:這道題可以打表觀察出來規律,之前以為會是加2和加4的規律,發現并沒有什么規律,再仔細觀察,查看缺失值是哪些,發現是2^p (p!=1),所以就簡單了,二分一下就能做出來,并注意二分的左右取值,1e18大概是2^{60},以為k的范圍到1e18,其中并不可能缺失一半,所以假設k的范圍為2e18,所以來確定取值,如果取值太大后對2取指數會超范圍。

int qpow(int a, int b) {int res = 1;while (b) {if (b & 1) res *= a) ; a *= a ;b >>= 1;}return res;
}void solve()
{int n, m, k;cin >> n;if (n == 1){cout << 2 << endl;return ;}auto check = [&](int x)->bool{int p = qpow(2, x);return p/2-(x-1) >= n;};int l = 0, r = 125;while (l+1 < r){int mid = (l+r) >> 1;if (check(mid)) r = mid;else l = mid;}cout << 2*(r+n-2) << endl;
}

F.薪得體會

void solve()
{int n, m, k;cin >> n;vector<node> s(n+1);for (int i = 1; i<=n; i++){cin >> s[i].a >> s[i].b;s[i].sum = s[i].a + s[i].b;}int ans = 0;sort(s.begin()+1, s.end(), [&](node x, node y){return x.sum < y.sum;});vector<int> mx(n+1);for (int i = 1; i<=n; i++) mx[i] = max(mx[i-1], s[i].a+s[i].b);for (int i = 1; i<=n; i++){if (ans >= s[i].a) ans = max(ans, s[i].sum);else ans = max(ans, s[i-1].sum);ans = max(ans, s[i].a);}cout << ans << endl;
}

H.小雞的排列構造

void solve()
{int n, m;cin >> n >> m;int l, r, c;for (int i = 0; i<m; i++){cin >> l >> r >> c;}if ((l-r+1) % 2 == 0){for (int i = n; i>=1; i--){cout << i << " \n"[i==1];}return ;}else{vector<int> a(n+1);iota(a.begin()+1, a.end(), 1);sort(a.begin()+1, a.end(), greater<int>());for (int i=n; i>=2; i-=2){swap(a[i], a[i-1]);}for (int i = 1; i<=n; i++){cout << a[i] << " \n"[i==n];}}
}

I.小雞的排列構造的checker

struct query{int l, r, c;
};
class Fenwick{
public:vector <int> tree;int n;Fenwick (){}Fenwick (int x){init(x);}void init(int x){n = x;tree.resize(n + 1);}int lowbit(int x){return x & (-x);}void add(int x, int k){for(; x <= n; x += lowbit(x))tree[x] += k;}int qsum(int x){int ans = 0;for(; x; x -= lowbit(x))ans += tree[x];return ans;}void clean(){for(int i = 1; i <= n; i ++) tree[i] = 0;}
};
void solve()
{int n, m, k;cin >> n >> m;Fenwick fen(n);vector<int> pos(n+1), val(n+1);for (int i = 1; i <= n; i++) {cin >> val[i];pos[val[i]] = i;}vector<query> que(m+1);vector<vector<int>> q(n+1);for (int i = 0; i<m; i++){cin >> que[i].l >> que[i].r >> que[i].c;q[val[que[i].c]].push_back(i);}vector<int> ans(m);for (int i = 1; i<=n; i++){for (int j: q[i]) ans[j] = fen.qsum(que[j].r)-fen.qsum(que[j].l-1)+que[j].l;fen.add(pos[i], 1);}for (int i=0; i<m; i++){cout << ans[i] << "\n";}
}

J.鐵刀磨成針

void solve()
{int n, x, y;cin >>n >> x >> y;auto dc = [&](int s, int xs)->int{int res = (s+(s-xs+1))*xs/2;return res;};int ans = 0;for (int i = 1; i<=min(n, y); i++){int now = x+i;int sum = now*(min(n, y)-i);sum += dc(now, min(now, n-min(n, y)+1));ans = max(ans, sum);}cout << ans << endl;
}

K.雞翻題

void solve()
{int n, x, y;cin >> x >> y;if (y % 2 == 0){cout << "NO" << endl;return ;}if (x % 2 == 0){if (y % 4 == 1){cout << "YES" << endl;return ;}else {cout << "NO" << endl;return ;}}else {if (y % 4 == 3){cout << "YES" << endl;return ;}else {cout << "NO" << endl;return ;}}
}

?L.變雞器

void solve()
{int n, m, k;cin >> n;string s, st = "CHICKEN";cin >> s;map<char, int> mp;mp['C'] = -2, mp['H'] = -1, mp['I'] = -1, mp['K']=-1, mp['E']=-1, mp['N'] = -1;int num = 0;for (int i = 0; i<n; i++){if (s[i] == st[num]) num++;mp[s[i]]++;}if (num != 7){cout << "NO" << endl;return ;}if ((n-num)%2){cout << "NO" << endl;return ;}vector<int> sb;for (auto [x, nn] : mp){sb.push_back(nn);}int max_num = *max_element(sb.begin(), sb.end());int sum = accumulate(sb.begin(), sb.end(), 0ll);if (max_num <= sum/2){cout << "YES" << endl;}else cout << "NO" << endl;
}

思路待更新。。。

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

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

相關文章

【C#】詳解C#中的內存管理機制

文章目錄 前言一、C#內存管理的基本機制&#xff08;1&#xff09;托管堆&#xff08;Managed Heap&#xff09;&#xff08;2&#xff09;垃圾回收&#xff08;Garbage Collection&#xff09;&#xff08;3&#xff09;棧內存 二、 開發者需要主動管理的場景&#xff08;1&am…

ROS云課基礎題庫-01C++案例-甜甜圈

效率是核心&#xff0c;但效率高的教程會忽略掉非常多的細節。 解決問題的思路和細節對于一個問題的有效求解至關重要。 資料 云課五分鐘-02第一個代碼復現-終端甜甜圈C-CSDN博客 從云課五分鐘到五秒鐘焦慮的甜甜圈向前沖-CSDN博客 說明 復現重要性沒有那么大&#xff0c;…

C/S架構與B/S架構

一、定義與核心區別 C/S架構&#xff08;Client/Server&#xff0c;客戶端/服務器&#xff09; 客戶端需安裝專用軟件&#xff08;如QQ、企業ERP系統&#xff09;&#xff0c;直接與服務器通信。服務器端通常包括數據庫和業務邏輯處理1。特點&#xff1a;客戶端承擔部分計算任務…

【匯編語言】單片機程序執行過程

一、任務需求 指示燈LED4閃爍&#xff0c;亮0.5秒&#xff0c;滅0.5秒&#xff0c;無限循環 二、針對硬件的編程 1、確定原理圖2、確定硬件的物理關系 三、設計步驟 1.用自己的語言描述工作流程 1.1指示燈LED4亮1.2延時0.5秒1.3指示燈LED4滅1.4延時0.5秒1.5跳轉到1.1步 …

openharmony 富對富 WiFi投屏設計

castengine_wifi_display部件別名Sharing&#xff0c;媒體分享之意。擁有流媒體協議接入、媒體預覽、媒體轉分發能力&#xff0c;受投播管理服務管理和調用&#xff0c;是音視頻投播子系統重要的流媒體能力部件。提供一套簡單的Native C的接口&#xff0c;主要業務是Miracast投…

Android項目優化同步速度

最近項目需要使用ffmpeg&#xff0c;需要gradle配置引入ffmpeg庫&#xff0c;發現原來通過google官方的代碼倉&#xff0c;下載太慢了&#xff0c;每秒KB級別的速度。&#xff08;之前下gradle/gradle plugin都不至于這么慢&#xff09;&#xff0c;于是想到配置國內鏡像源來提…

Git 如何配置多個遠程倉庫和免密登錄?

自我簡介&#xff1a;4年導游&#xff0c;10年程序員&#xff0c;最近6年一直深耕低代碼領域&#xff0c;分享低代碼和AI領域見解。 通用后臺管理系統 代號&#xff1a;虎鯨 緣由 每次開發后臺界面都會有很多相同模塊&#xff0c;嘗試抽離出公共模塊作為快速開發的基座。 目標…

JVM組成面試題及原理

Java Virtual Machine&#xff08;JVM&#xff09;是Java程序的運行環境&#xff08;java二進制字節碼的運行環境&#xff09; 好處&#xff1a; 一次編寫&#xff0c;到處運行自動內存管理&#xff0c;垃圾回收機制 JVM由哪些部分組成&#xff0c;運行流程是什么&#xff1f;…

江科大51單片機筆記【11】AT24C02數據存儲秒表

一、數據存儲 先把需要的模塊導入做個測試 //main.c#include <REGX52.H> #include " LCD1602.h" #include " Key.h"void main() {LCD_Init();LCD_ShowString(1,1,"Hello");while(1){}} 代碼思路 分成兩塊寫&#xff0c;一塊寫I2C.c&am…

Hadoop的運行模式

Hadoop的運行模式 1、本地運行模式2、偽分布式運行模式3、完全分布式運行模式4、區別與總結 Hadoop有三種可以運行的模式&#xff1a;本地運行模式、偽分布式運行模式和完全分布式運行模式 1、本地運行模式 本地運行模式無需任何守護進程&#xff0c;單機運行&#xff0c;所有…

2.裝飾器模式

概述 裝飾器模式&#xff1a;在原有結構&#xff0c;動態地為對象添加職責&#xff0c;它是一種靈活的擴展功能方式。 業務場景&#xff1a;創建訂單 假設你正在開發一個電商系統&#xff0c;用戶在創建訂單時可以選擇不同的服務&#xff08;如折扣、配送、禮品包裝等&#…

C++11新特性 10.初始化列表、initializer_list

目錄 一.初始化列表 使用示例 二.initializer_list 1.基本概念 2.使用示例 一.初始化列表 C11提供的統一初始化方式&#xff0c;實現直接對數據初始化 使用示例 /* 初始化列表 */ #include <iostream> using namespace std; class Person { public:Person(string…

Vue 的 render 函數如何與 JSX 結合使用

在 Vue.js 中&#xff0c;render 函數提供了一種更底層的方式來創建虛擬 DOM 節點&#xff0c;而 JSX 則是一種 JavaScript 的語法擴展&#xff0c;允許開發者在 JavaScript 代碼中直接編寫類似 HTML 的結構。結合使用 render 函數和 JSX 可以帶來更高的靈活性和編程能力&#…

基于DeepSeek的智慧醫藥系統(源碼+部署教程)

運行環境 智慧醫藥系統運行環境如下&#xff1a; 前端&#xff1a; HTMLCSS后端&#xff1a;Java AIGCDeepseekIDE工具&#xff1a;IDEA技術棧&#xff1a;Springboot HTMLCSS MySQL 主要角色 智慧醫藥系統主要分為兩個角色。 游客 尚未進行注冊和登錄。具備登錄注冊、…

南開提出1Prompt1Story,無需訓練,可通過單個連接提示實現一致的文本到圖像生成。

&#xff08;1Prompt1Story&#xff09;是一種無訓練的文本到圖像生成方法&#xff0c;通過整合多個提示為一個長句子&#xff0c;并結合奇異值重加權&#xff08;SVR&#xff09;和身份保持交叉注意力&#xff08;IPCA&#xff09;技術&#xff0c;解決了生成圖像中身份不一致…

BLUEM2引擎源碼2025最新版

BLUE 引擎解析&#xff1a;傳奇私服圈中的熱門引擎 一、BLUE 引擎簡介 BLUE 引擎是傳奇私服圈子中較為知名的一款游戲引擎&#xff0c;它在傳統的傳奇引擎基礎上進行了優化和擴展&#xff0c;使得私服開發者可以更加方便地搭建和管理服務器。相比于早期的 GEE、LEG、Hero 等引…

第53天:Web攻防-SQL注入數據庫類型用戶權限架構分層符號干擾利用過程發現思路

#知識點&#xff1a;(本節課了解即可&#xff09; 1、Web攻防-SQL注入-產生原理&應用因素 2、Web攻防-SQL注入-各類數據庫類型利用 一、數據庫知識&#xff1a; 1、數據庫名&#xff0c;表名&#xff0c;列名&#xff0c;數據 2、自帶數據庫&#xff0c;數據庫用戶及權限 3…

【玩轉MySQL數據字典】MySQL數據字典與常用操作指令

MySQL數據字典簡介與常用操作指令 一、數據字典簡介 數據字典是MySQL 5.7中用于存儲數據庫對象元數據的系統表。在MySQL的早期版本中&#xff0c;元數據存儲在.frm文件及其他文件里。這種存儲方式存在諸多弊端&#xff0c;例如元數據不一致問題&#xff0c;不同文件間元數據的…

如何有效判斷與排查Java GC問題

目錄 一、GC的重要性與對性能的影響 &#xff08;一&#xff09;GC對性能的影響簡要分析 1.GC暫停與應用停頓 2.GC吞吐量與資源利用率 3.GC對內存管理的作用&#xff1a;資源回收 4.GC策略與優化的選擇 &#xff08;二&#xff09;GC的雙刃劍 二、GC性能評價標準 &…

el-table(elementui)表格合計行使用以及滾動條默認樣式修改

一、el-table新增合計行以及el-table展示數據出現的問題 1. 使用合計行 el-table的屬性show-summary設為true&#xff0c;即可在表格尾部展示合計行。默認情況下&#xff0c;第一列不展示數據&#xff0c;而顯示合計二字&#xff0c;可以通過sum-text自己配置&#xff0c;其余…