牛客周賽 Round 99

賽時成績如下:

?

A. Round 99

題目描述
對于給定的五位整數,檢查其中是否含有數字 99;換句話說,檢查是否存在相鄰的兩個數位,其值均為 。

解題思路: 檢查相鄰的兩個數字是否均為9

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pll = pair<ll, ll>;
void solve() {int n;cin >> n;string a = to_string(n);for (int i = 1; i < a.size(); i++) {if (a[i] == a[i - 1] && a[i] == '9') {cout << "YES" << '\n';return;}}cout << "NO" << '\n';
}
int main() {int t = 1;// cin>>t;while (t--) {solve();}return 0;
}

?B. 缺陷型電腦

題目描述

Tk 有一臺缺陷型電腦,它在輸出內容之前必須先加載 ASCII?表;
這臺電腦可以為每次輸入生成一個長度為 x?的 ASCII?表,該表包含編碼值從 1 到 x 的所有字符;

現在給定一個僅由可見字符集合構成的字符串 s。請你計算:要輸出 s 中的所有字符,至少需要多長的 ASCII?表。

【名詞解釋】

可見字符集為 ASCII 碼在 33 到 126 范圍內的可見字符。您可以參閱下表獲得其詳細信息(您可能關注的內容是,這其中不包含空格、換行)。

解題思路:包含從1-x的所有字符, 同時表的長度為x

因此, 直接找出輸入字符中最大的即為答案?

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pll = pair<ll, ll>;
void solve() {int n;string s;cin >> n >> s;int mx = *max_element(s.begin(), s.end());cout << mx << '\n';
}
int main() {int t;cin >> t;while (t--) {solve();}return 0;
}

?C.小苯的洞數構造

解題思路:

小苯對數字的 "洞數" 十分感興趣,即數字中含有的封閉圖形個數,如下是每個數位的 "洞數" 表:
現在小苯給定了一個整數 k,他希望你構造一個值最小的,滿足所有數位中的 "洞數" 總和恰好為 k 的正整數(不包含前導 0?),請你幫幫他吧。?

解題思路:

滿足由洞數構造出的值最小

?

1 洞:4,?6,?9

2 洞:8

0 洞:1,?2,?3,?5,?7?
為了讓生成的正整數數值最小,第一要點是“盡量少的位數”——位數少的數值更小

“8”有 2 個洞,用它能最快湊洞數,減少總位數

余下的 1 個洞(如果目標洞數為奇數),用“4”來補;雖然“0”也是 1 洞,但不能出現在首位;在多位數里放“4”比放“6”“9”都更小

特殊情況

當?𝑘=0
k=0 時,需要一個“零洞”且最小的正整數,顯然是 “1”

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pll = pair<ll, ll>;
void solve() {int k;cin >> k;if (k == 0) {cout << 1 << '\n';return;}int cnt = k / 2;if (k & 1) {cout << 4;}for (int i = 0; i < cnt; i++) {cout << 8;}cout << '\n';
}
int main() {int t;cin >> t;while (t--) {solve();}return 0;
}

?D.?前綴和

題目描述

小紅有一個由正整數組成的數組 a,但是她沒有告訴你數組中的元素具體是什么,你只知道這個數組的元素各不相同,且其前綴數組 s 對于給定的一個 x,其任意一項均滿足:,?對于數組的第 k 個元素,當 ?kx? 為偶數時,sk=a1+a2+?+ak? 也是偶數;
,?對于數組的第 k 個元素,當 ?kx? 為奇數時,sk=a1+a2+?+ak 也是奇數。
除此之外,你還知道這個數組是滿足條件的所有數組中字典序最小的。小紅現在來問你,這個數組中第 p 個元素是多少,你能快速的回答她嗎?
【名詞解釋】
字典序:從兩個數組的第一個元素開始逐個比較,直到找到第一個不同的元素,較小元素所在的數組的字典序較小。

解題思路: 以x為周期, 前面全是偶數, 最后一位是奇數

計算 a = ?p/x?:

這表示 p 所在的“塊”編號(每 x 個元素為一組)

判斷 p 是否是 x 的倍數:

如果 p % x == 0,說明 p 是當前塊的最后一個元素

否則,p 位于塊的中間

計算 a[p]:

如果 p 是塊的最后一個元素(p % x == 0),則 a[p] = 2a - 1

否則,a[p] = 2(p - a)

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pll = pair<ll, ll>;
void solve() {ll x, p;cin >> x >> p;ll a = p / x;if (p % x == 0) {cout << 2 * a - 1 << '\n';} else {cout << 2 * (p - a) << '\n';}
}
int main() {int t;cin >> t;while (t--) {solve();}return 0;
}

? E.?小宇

題目描述

給定一個長度為 n 的數組 {a1,a2,…,an}。
你可以進行以下操作多次:
,?選擇一個整數 x,將所有滿足 ai=x 的元素分別修改為它們的下標 i;

問 最少需要進行多少次操作,才能使數組變為嚴格單調遞增?

嚴格單調遞增:若數組 {b1,b2,…,bn} 對任意下標 i<ji<ji<j 都滿足 bi<bj,則稱其為嚴格單調遞增數組。

解題思路:

首先經過觀察可知,每個位置的數字一定不小于它的下標,且若進行了修改,一定是對一段前綴進行修改,因此只需要從后往前找到第一個需要修改的位置,并把前綴里面所有出現過的數字的值的出現的最大下標范圍內的數字都進行修改即可,注意,根據修改規則和分析,只需修改那些值不等于下標的位置即可,可用set去重?

public class Main{public static void main(String args[]){Scanner sc=new Scanner(System.in);for(int i=sc.nextInt();i!=0;i--){int n=sc.nextInt(),a[]=new int[n+5],maxIdx=0;Map<Integer,Integer> map=new HashMap<>();for(int j=1;j<=n;j++){a[j]=sc.nextInt();map.put(a[j],Math.max(j,map.getOrDefault(a[j],0)));}a[n+1]=(int)2e9;for(int j=n;j>0;j--){if(a[j]>=a[j+1]||a[j]<j){for(int k=1;k<=j;k++){if(a[k]!=k){maxIdx=Math.max(maxIdx,map.get(a[k]));}}break;}}Set<Integer> set=new HashSet<>();for(int j=1;j<=maxIdx;j++){if(a[j]!=j){set.add(a[j]);}}System.out.println(set.size());}}
}

?F.?漢堡豬豬分糖果

題目描述

漢堡豬豬有 n 顆糖果,他想把糖果全部分給 m 個小朋友。
每個小朋友至少要分到一顆糖果,否則他們會生氣。他想知道,如何分配才能讓所有小朋友分到的糖果數量的 按位與最大?

解題思路:

1.貪心策略:
從高位到低位檢查,優先保證高位的 1,因為高位的 1 對結果的影響更大
如果能分配所有小朋友的某一位為 1,就直接分配;否則,嘗試部分分配
2.對于每一位 j,計算分配 1 的最小糖果數 (1 << j) * m
如果糖果不足,嘗試部分分配,確保剩余的糖果可以滿足其他約束

import java.util.*;
public class Main{public static void main(String args[]){Scanner sc=new Scanner(System.in);for(int i=sc.nextInt();i!=0;i--){long n=sc.nextInt(),m=sc.nextInt(),ans=0;for(int j=30;j>=0;j--){long cur=(1L<<j)*m;if(n>=cur){//這一位可以全是1n-=cur;ans|=1<<j;}else{cur-=m;//先測試一下可否后邊全為1if(n>cur){//說明這一位后邊全為1的話,還有剩余,導致后邊的數字不應定按位與得到全1,那就想辦法使得后邊的數字盡可能大//n-k*(1<<j)<=costn-=(1<<j)*((n-cur-1)/(1<<j)+1);}}}System.out.println(ans);}}
}

?感謝大家的點贊和關注,你們的支持是我創作的動力!

?

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

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

相關文章

從0到1搭建個人技術博客:用GitHub Pages+Hexo實現

一、為什么要搭建個人技術博客&#xff1f; 在技術圈&#xff0c;擁有個人博客的好處不言而喻&#xff1a; 簡歷加分項&#xff1a;面試官更青睞有技術沉淀的候選人知識系統化&#xff1a;輸出倒逼輸入&#xff0c;加深技術理解人脈拓展&#xff1a;吸引同行關注&#xff0c;…

Ubuntu22.04 設置顯示存在雙屏卻無法雙屏顯示

文章目錄一、背景描述二、解決方法一、背景描述 回到工位后&#xff0c;發現昨天離開時還可正常顯示的雙屏&#xff0c;今早ubuntu22.04 的設置界面顯示有雙屏&#xff0c;但外接的顯示屏無法正常顯示。 首先&#xff0c;查看當前圖像處理顯卡是否為N卡&#xff0c;沒錯&#…

高亞科技簽約奕源金屬,助力打造高效智能化采購管理體系

深圳市奕源金屬制品有限公司近日&#xff0c;國內企業管理軟件服務商高亞科技與深圳市奕源金屬制品有限公司&#xff08;以下簡稱“奕源金屬”&#xff09;正式簽約&#xff0c;雙方將基于高亞科技自主研發的8Manage SRM采購管理系統&#xff0c;共同推動奕源金屬采購管理的數字…

數據結構之map

map的基本介紹我們常常把map稱之為映射&#xff0c;就是將一個元素&#xff08;通常稱之為key鍵&#xff09;與一個相對應的值&#xff08;通常稱之為value&#xff09;關聯起來&#xff0c;比如說一個學生的名字&#xff08;key&#xff09;有與之對應的成績&#xff08;value…

vue3 canvas 選擇器 Canvas 增加頁面性能

文章目錄Vue3 選擇器 Canvas 增加頁面性能基于Vue3 Composition API和Canvas實現的交互式選擇器&#xff0c;支持PC端和移動端的拖動選擇、多選取消選擇功能vue3組件封裝html代碼Vue3 選擇器 Canvas 增加頁面性能 基于Vue3 Composition API和Canvas實現的交互式選擇器&#xf…

Python 實戰:打造多文件批量重命名工具

引言在實際運維、測試、數據分析、開發流程中&#xff0c;我們經常會處理成百上千條命令操作&#xff0c;例如&#xff1a;各種腳本任務&#xff08;啟動、備份、重啟、日志查看&#xff09;數據處理流程&#xff08;爬取 → 清洗 → 統計 → 可視化&#xff09;配置自動化&…

設計模式筆記_結構型_代理模式

1. 代理模式介紹代理模式是一種結構型設計模式&#xff0c;它允許你提供一個代理對象來控制對另一個對象的訪問。代理對象通常在客戶端和目標對象之間起到中介作用&#xff0c;能夠在不改變目標對象的前提下增加額外的功能操作&#xff0c;比如延遲初始化、訪問控制、日志記錄等…

C語言<數據結構-單鏈表>(收尾)

上篇博客我將基礎的尾插、尾刪、頭插、頭刪逐一講解了&#xff0c;這篇博客將對上篇博客進行收尾&#xff0c;講一下指定位置操作增刪以及查找這幾個函數&#xff0c;其實大同小異&#xff1a;一.查找函數&#xff1a;查找函數其實就是一個簡單的循環遍歷&#xff0c;所以不加以…

十年架構心路:從單機到云原生的分布式系統演進史

十年架構心路&#xff1a;從單機到云原生的分布式系統演進史 這里寫目錄標題十年架構心路&#xff1a;從單機到云原生的分布式系統演進史一、技術生涯的起點&#xff1a;單體架構的黃金時代1.1 典型技術棧1.2 記憶深刻的故障二、分布式架構轉型期2.1 服務化拆分實踐2.2 分布式事…

使用docker搭建nginx

安裝docker 和 docker compose驗證docker版本配置docker目錄配置代理&#xff0c;使docker能訪問外網能否ping通最后直接拉入鏡像即可docker pull nginx

Intel新CPU助攻:微軟Copilot+將登陸臺式電腦

微軟的Copilot PC計劃已經推出一年多&#xff0c;但目前僅支持平板電腦和筆記本電腦&#xff0c;以及少數迷你電腦。 隨著Intel下一代桌面處理器——代號為“Arrow Lake Refresh”的推出&#xff0c;Copilot PC功能有望擴展到桌面計算機。 要支持Copilot PC的所有功能&#xff…

【Kubernetes】跨節點 Pod 網絡不通排查案例

最近在部署一個集群環境的時候&#xff0c;發現集群中一個子節點與其他子節點不通&#xff0c;而 master 節點可與任何子節點互通&#xff0c;通過抓包排查后&#xff0c;發現是 Linux 路由決策導致的。因此&#xff0c;在此記錄下來&#xff0c;希望對大家有所幫助。1、環境及…

【算法訓練營Day11】二叉樹part1

文章目錄理論基礎二叉樹的遞歸遍歷前序遍歷中序遍歷后序遍歷總結二叉樹的層序遍歷基礎層序遍歷二叉樹的右視圖理論基礎 二叉樹在結構上的兩個常用類型&#xff1a; 滿二叉樹完全二叉樹 在功能應用上的比較常用的有&#xff1a; 二叉搜索樹&#xff1a; 節點有權值、遵循”左…

Flutter 之 table_calendar 控件

1.庫導入在pubspec.yaml文件中dev_dependencies:table_calendar: ^3.2.02. 代碼編寫TableCalendar(daysOfWeekHeight: 20,availableGestures: AvailableGestures.horizontalSwipe,firstDay: DateTime.now().subtract(const Duration(days: 365)),lastDay: DateTime.now(),cal…

【leetcode】1486. 數組異或操作

數組異或操作題目題解題目 1486. 數組異或操作 給你兩個整數&#xff0c;n 和 start 。 數組 nums 定義為&#xff1a;nums[i] start 2*i&#xff08;下標從 0 開始&#xff09;且 n nums.length 。 請返回 nums 中所有元素按位異或&#xff08;XOR&#xff09;后得到的…

php7.4使用 new DateTime;報錯 Class DateTime not found

php7.4使用 new DateTime;報錯Uncaught Error: Class ‘app\home\c\DateTime’ not found 查了半天資料&#xff0c;最后找到了解決辦法 DateTime 是 php 內置的類&#xff0c;不隸屬于任何命名空間&#xff0c;如果你需要在命名空間中使用須有 \ 聲明&#xff0c;解決辦法就是…

Gartner《構建可擴展數據產品建設框架》心得

一、背景與價值 1.1 “數據產品”為什么忽然重要? 傳統模式:業務提出需求 → IT 建數據集 → ETL 管道爆炸 → 維護成本指數級上升。 新范式:把“數據”包裝成“產品”,以產品思維迭代演進,強調復用、自助、可擴展。 Gartner 觀察到:大量組織把“報表”或“數據倉庫”重…

CentOS/RHEL LVM 磁盤擴展完整教程

CentOS/RHEL LVM 磁盤擴展完整教程&#x1f4dd; 前言 在Linux系統管理中&#xff0c;磁盤空間不足是經常遇到的問題。特別是在生產環境中&#xff0c;當根分區空間告急時&#xff0c;我們需要通過添加新磁盤來擴展存儲空間。本教程將詳細介紹如何在CentOS/RHEL系統中使用LVM&a…

LVGL應用和部署(用lua做測試)

【 聲明&#xff1a;版權所有&#xff0c;歡迎轉載&#xff0c;請勿用于商業用途。 聯系信箱&#xff1a;feixiaoxing 163.com】嵌入式產品做好了&#xff0c;下面就是測試和量產了。以按鍵屏幕的開發模式為例&#xff0c;如果僅僅是簡單的功能測試&#xff0c;那還比較好解決&…

phpstudy搭建pikachu

一.啟動mysql和nginx服務二.修改靶場文件參數點擊管理打開根目錄&#xff0c;將下載好的靶場源文件解壓到www目錄下三.找到此文件用記事本打開四.修改配置文件五.打開瀏覽器,輸入127.0.0.1/pikachu六.按照步驟初始化心得體會&#xff1a;如果mysql啟動又立刻停止&#xff0c;大…