吉林省CCPC與全國邀請賽(東北地區賽)游記

總述:

? ? ? ? 本次賽段共獲得一銀(吉林省賽)、一銅(東北地區賽)、一鐵(全國邀請賽的成績)。總體成績跟校內賽的情況相比隊伍狀態與發揮水準都有提升),但也體現出很多不足(

吉林省賽:

Day -5

????????隊伍經歷了兩次校內賽的實力后,所有人都放的比較開(感覺校內賽的時候,思維有些過于保守了)。作為隊長校內賽最后一場我發揮的十分不佳,一道題的關鍵性思路也沒有切掉,而且對于本應該過掉的題犯了一些重大的低級錯誤導致隊伍失利。回去后我們隊內開了一次會,大家把自己對隊內的問題都提了出來(隊內交流不佳,開題入wa掉后沒有入能夠接上思路幫忙改錯等等),之后大家把最近的在水平范圍內沒能賽時過掉的題目都補掉了,大家也沒什么壓力,平常練手感的同時,就是心平氣和的等待比賽。

Day 0

? ? ? ? 熱身賽當場:賽內的交流相較于之前流暢了許多,過掉兩道簽到后,大家一起吧我看出C有規律,之后GJ在我寫上的暴力代碼上面找到循環節,我再優化了一下就過掉了。熱身賽也是23名收尾,感覺狀態十分火熱

? Day 1

? ? ? ? 省賽正式賽當天:我先上來秒掉了簽到題,之后LCM大哥交了兩發過掉了F(沒開long long)同時注意到隊伍沒有寫底板,于是乎我花了2分鐘寫了個泛用性較強的底板,方便大家后續開題,之后GJ直接口胡了一遍G我們聽完沒問題后,就給他一遍過了。這時候看到大量隊伍都開出來了D(萌萌小數論),這是我的長相但是看了半個小時都沒什么思路,打完一遍表沒看出什么規律,LCM突然提出了一個“大膽的設想”:答案不會與左區間相差4,我覺得不對,但是照著這個方向去努力,發現答案不會與左區間不會相差1000,于是就寫個一個萌萌小暴力,在GJ與LCM包括我yan_jun的質疑下通過了

我嘞個奇跡與你

之后準備開L,GJ首先證出來了都是奇數的情況是2^{n+m-2},而我證出來了一奇一偶的情況是2^{even-1},之后和并一下再寫出全是偶數是為 1,L就順利通過了。

最后的C我想出了不管怎么樣,所有的數都會以和或積的形式出現,GJ有之后把環裝公式補完C就給切了。

之后LCM與GJ在開A,而我去寫E的矩陣快速冪的暴力,最后一個小時他倆都沒有討論出什么,這時候我臨去撤碩前瞟一眼GJ與LCM的草紙,感覺可以輾轉相除來做,就和他倆簡單交流了下思路,突然發現芝士天才想法,之后由GJ操刀,可惜最后沒能碼過去。

最后滾榜后取得了29名的成績(銀牌),感覺大家更自信粒,但是對day 2也是充滿敬意。

Day 2

先放排名

你敢信這是一個隊打的(詩人握持)

依舊是我先開的簽到;

然后GJ開B,但是熬了40分鐘沒能過掉,此時我看完K已經有了完整貪心思路,但是LCM開出了F說也是小范圍模擬簽到,就讓他先寫了。

? ? ?轉折點開始了

之后我和GJ開出了I題,但是LCM這是已經wa了2發了,其實已經打兩天了,對于我這種身體不是很好的入來說,有點折磨了(右胸開始劇烈疼痛,耳鳴的厲害),這時候我的心態有點崩了,但看著隊友確實比較愧疚也沒好說什么就是把讓GJ和他再看看代碼,我單獨開K,一發就過掉了。心情好了不少,于是又單開I,這時候已經過去塊兩個小時了,我承認我忌炎了,掛了兩發,之后賽方說題面有問題和GJ又討論了一下就過掉了。

最后兩個半小時,我開出了A的線段樹二分的全部思路,和H的二分的部分想法(這時候已經入已經快沒了)。LCM和GJ還在開F,最后是交了8發也沒能過去,這時候隊內有點慌了,我認為F一定有很大問題他們沒發現,就去單開A(code blocks崩了導致我疼的更厲害了),但是沒能過掉,賽后發現是我在區間范圍上的處理有點糙了,導致區間算重了。之后讓LCM開H,但是這時我才發現LCM其實對于二分問題的處理是存在很大問題,導致我們眼前一黑,又掛了4發,day 2的比賽遺憾一銅一鐵。

總結:

day 2后第二天隊內又開了一場小會,隊友覺得隊內訓練不足,但我覺得是我們在賽時的對問題的處理過于糙了,而且day 2的賽時進程相較于day 1其實交流上少了許多,導致了有隊友單開題被反殺沒人能補傷害的局面,再加上一共3天奔波,大家確實累了,賽內的一些內容以及突發的狀況(身體不適,選擇開題錯誤以及開題人員選擇錯誤等等)都沒有處理好導致了隊伍失利,身為隊長這是我的失職。

寫在最后:

相較于高中那個天天將暴力寫到極致都不去寫正解的yan_jun來說,現在的yan_jun越來越勇敢了,敢于去大膽的開正解,并敢于在賽場上去凹正解,一次次突破在賽場上去寫那些之前之前想都不敢想的算法,這正是我這一年來的改變。

也許就如艾克說的:“我寧愿犯錯,也不愿什么都不做。”ACM的競賽模式更能激發選手去突破自我,雖然我們有時要為這種所謂的勇敢去復出代價,但這種能力與體驗是成績無法與之比擬的

最后補題:

A - GD 終極節奏實驗室:

將線段樹優化為st表,跑的更快了(少了一層log),優化了區間重復問題,改成左大右等即可,很巧妙

#include<bits/stdc++.h>
#define ll long long
#define inl inline
#define re register
using namespace std;
inl int read() {int sum=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-') f=-1;c=getchar();}while(isdigit(c)) {sum=(sum<<3)+(sum<<1)+(c^48);c=getchar();}return sum*f;
}
const int N=1e5+10;
int minn[N][20];
int mygcd[N][20];
inl int gcd(int a,int b) {if(a%b==0) return b;return gcd(b,a%b);
}
int Log[N];
struct node{int minn,mygcd;
}tree[N<<2];
int a[N],n;
inl int queryminn(int k,int l,int r) {if(l>r) return 2e9;int tmp=Log[r-l+1];return min(minn[l][tmp],minn[r-(1<<tmp)+1][tmp]);
}
inl int querygcd(int k,int l,int r) {if(l>r) return 1000000007;int tmp=Log[r-l+1];return gcd(mygcd[l][tmp],mygcd[r-(1<<tmp)+1][tmp]);
}
ll ans=0;
inl void solve(int i) {int l1,r1;int l=i,r=n;while(l<=r) {int mid=(l+r)>>1;int tmp1=queryminn(1,i,mid);int tmp2=querygcd(1,i,mid);if(tmp1==a[i]&&tmp1==tmp2) {r1=mid;l=mid+1;}else {r=mid-1;}}l=1,r=i;while(l<=r) {int mid=(l+r)>>1;int tmp1=queryminn(1,mid,i-1);int tmp2=querygcd(1,mid,i);if(tmp1>a[i]&&tmp2==a[i]) {l1=mid;r=mid-1;}else {l=mid+1;}}ans=ans+1ll*(i-l1+1)*(r1-i+1);return;
}
inl void init() {for(re int i=1;i<=n;i++) {minn[i][0]=a[i];mygcd[i][0]=a[i];}for(re int i=1;i<=Log[n];i++) {for(re int j=1;j+(1<<i)-1<=n;j++) {minn[j][i]=min(minn[j][i-1],minn[j+(1<<(i-1))][i-1]);mygcd[j][i]=gcd(mygcd[j][i-1],mygcd[j+(1<<(i-1))][i-1]);}}
}
int main() {n=read();for(re int i=1;i<=n;i++) a[i]=read();Log[0]=-1;for(re int i=1;i<=100000;i++) Log[i]=Log[i/2]+1;init();for(re int i=1;i<=n;i++) {solve(i);}cout<<ans<<endl;return 0;
}

F - 年少的誓約Ⅱ

問題不難,就是簽到題,但是出題人的巧在于如果我們拿角度去老老實實做就沒問題,而如果我們使用百分比去操作就會被卡精度導致掛掉(我做的時候也掛了一發),而隊友是太著急了導致對于目標時間的處理有問題(雖然改過來也是wa)

#include<bits/stdc++.h>
#define ll long long
#define inl inline
#define re register
using namespace std;
inl int read() {int sum=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-') f=-1;c=getchar();}while(isdigit(c)) {sum=(sum<<3)+(sum<<1)+(c^48);c=getchar();}return sum*f;
}
inl void solve() {int x0=read(),y0=read(),x1=read(),y1=read(),x2=read(),y2=read();pair<int,int> tmp1={x1,y1},tmp2={x2,y2},ans1;double ans=2e9;double init1=(x0*30+y0*0.5),init2=y0*6.0;while(tmp1<=tmp2) {int a=tmp1.first,b=tmp1.second;double res1=((a*30.0)+b*0.5);double res2=(b*6.0);double yan=min(abs(init1-res1),abs(360-abs(init1-res1)));double jun=min(abs(init2-res2),abs(360-abs(init2-res2)));if(yan+jun<ans) {ans=yan+jun;ans1={a,b};}tmp1.second++;if(tmp1.second==60) {tmp1.first++;tmp1.second=0;}}cout<<ans1.first<<" "<<ans1.second<<endl;return;
}
int main() {int T=read();while(T--) {solve();}
}

H - 王國------遷移

這道題我看來沒什么好說的,就是加強二分的處理就過了(要開long long)

#include<bits/stdc++.h>
#define int long long
#define inl inline
#define re register
using namespace std;
inl int read() {int sum=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-') f=-1;c=getchar();}while(isdigit(c)) {sum=(sum<<3)+(sum<<1)+(c^48);c=getchar();}return sum*f;
}
const int N=2e5+10;
int n,a[N],b[N],c[N],sum;
inl bool check(int tot) {int tmp=0;for(re int i=1;i<=n;i++) {tmp+=tot/c[i];}if(sum>tmp) return 0;for(re int i=1;i<=n;i++) {if(b[i]>tmp-tot/c[a[i]]) return 0;}return 1;
}
inl void solve() {sum=0;n=read();for(re int i=1;i<=n;i++) a[i]=read();for(re int i=1;i<=n;i++) b[i]=read(),sum+=b[i];for(re int i=1;i<=n;i++) c[i]=read();int l=0,r=1e18;while(l<r) {int mid=(l+r)>>1;if(check(mid)) {r=mid;}else {l=mid+1;}}cout<<r<<endl;
}
signed main() {int T=read();while(T--) {solve();}return 0;
}

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

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

相關文章

「Python教案」循環語句的使用

課程目標 1&#xff0e;知識目標 能使用for循環和while循環設計程序。能使用循環控制語句&#xff0c;break、continue、else設計程序。能使用循環實際問題。 2&#xff0e;能力目標 能根據需求合適的選擇循環結構。能對嵌套循環代碼進行調試和優化。能利用循環語句設計&am…

OpenCV---findCountours

一、基本概念與用途 findContours是OpenCV中用于在二值圖像中查找輪廓的核心函數。輪廓作為連續的點集&#xff0c;能夠精確勾勒出物體的邊界&#xff0c;廣泛應用于目標檢測、形狀分析、圖像分割等領域。 函數核心價值 目標檢測&#xff1a;通過輪廓定位圖像中的物體&#…

20250523-BUG:無法加載“GameLib/Framework.h“頭文件(已解決)

BUG&#xff1a;無法加載"GameLib/Framework.h"頭文件&#xff08;已解決&#xff09; 最近在打開新的C項目時報了這個錯&#xff0c;我是按照以下步驟來排除的BUG&#xff0c;希望對您有所幫助~ 檢查【C/C】-【附加包含目錄】中的路徑有無問題&#xff0c;一般需要加…

商品條形碼查詢接口如何用C#進行調用?

一、什么是商品條碼查詢接口&#xff1f; 1974年6月26日&#xff0c;美國俄亥俄州的一家超市首次使用商品條碼完成結算&#xff0c;標志著商品條碼正式進入商業應用領域。這項技術通過自動識別和數據采集&#xff0c;極大提升了零售行業的作業效率&#xff0c;減少了人工錄入錯…

SD07_NVM的安裝及相關操作

以下是在 Windows 系統 上使用 NVM&#xff08;Node Version Manager&#xff09; 管理多個 Node.js 版本的詳細步驟&#xff0c;從零開始操作&#xff1a; 一、準備工作 卸載舊版 Node.js 打開 控制面板 → 程序和功能&#xff0c;找到已安裝的 Node.js 和 npm&#xff0c;徹底…

OSI 深度安全防御體系架構深度剖析

文章目錄 前言什么是 OSI 深度安全防御體系架構各層的安全防御措施物理層數據鏈路層網絡層傳輸層會話層表示層應用層 OSI 深度安全防御體系架構的優勢全方位防護深度防御靈活性和可擴展性 總結 前言 大家好&#xff0c;我是沛哥兒。今天咱們來深入探討一下 OSI 深度安全防御體…

大模型應用:開發移動端頁面個人中心頁面提示詞

角色 你是一個移動端web頁面開發專家&#xff0c;擅長開發移動端頁面&#xff0c;使用原生web技術&#xff08;html&#xff0c;css,js&#xff09;&#xff0c;開發的頁面針對手機移動端友好 技術棧 使用基礎的Html&#xff0c;CSS&#xff0c;JavaScript方案實現&#xff…

從零到一:影刀RPA學習者的破局之路

1. 學習目標與預期差距分析 1.1 官方課程學習目標梳理 影刀RPA的官方課程旨在幫助學習者掌握RPA&#xff08;機器人流程自動化&#xff09;的基本概念、操作技能和常見應用場景。課程內容通常包括&#xff1a; RPA基礎理論&#xff1a;介紹RPA的定義、優勢、發展歷程以及與其…

計算機組成與體系結構:硬盤驅動器(Hard Disk Drives)

目錄 &#x1f4bd; 硬盤驅動器&#xff08;HDD&#xff09;&#xff1a;傳統的固定輔助存儲設備 什么是硬盤驅動器&#xff1f; 硬盤的工作原理 HDD 的物理結構 Disk Pack&#xff08;盤組&#xff09; Tracks&#xff08;磁道&#xff09; Cylinders&#xff08;柱面&…

GitCode鏡像倉庫批量下載開發實錄

GitCode作為國內領先的開源代碼托管平臺&#xff0c;其鏡像倉庫批量下載功能對開發者生態建設與開源協作效率提升具有關鍵價值。本文基于企業級代碼資產管理需求&#xff0c;系統記錄從需求分析到生產部署的全周期開發實踐。內容覆蓋鏡像倉庫同步機制設計、分布式任務調度優化、…

基線配置管理:為什么它對網絡穩定性至關重要

什么是基線配置&#xff08;Baseline Configuration&#xff09; 基線配置&#xff08;Baseline Configuration&#xff09;是經過批準的標準化主設置&#xff0c;代表所有設備應遵循的安全、合規且運行穩定的配置基準&#xff0c;可作為評估變更、偏差或未授權修改的參考基準…

AJAX get請求如何提交數據呢?

在 AJAX 中使用 GET 請求提交數據&#xff0c;主要通過 在 URL 后拼接查詢參數 的方式實現&#xff0c;具體步驟如下&#xff1a; 1.構造帶參數的 URL 將數據以 鍵值 的形式拼接在 URL 后&#xff0c;多個參數間用 & 連接。例如&#xff1a; var url "https://exa…

基于FashionMnist數據集的自監督學習(對比式自監督學習SimCLR算法)

目錄 一&#xff0c;對比式自監督學習 1.1 簡介 1.2 常見算法 1.2.1 SimCLR (2020) 1.2.2 MoCo (2020) 1.2.3 BYOL (2021) 1.2.4 SimSiam (2021) 1.2.5 CLIP (2021) 1.2.6 DINO (2021) 1.2.7 SwAV (2020) 二&#xff0c;代碼邏輯分析 2.1 整體目標與流程 2.2 數據…

Linux:基礎指令與內涵理解(下)與權限

1.mv 作用&#xff1a;將文件移動、文件重命名 語法&#xff1a; mv (選項) 源文件/目錄 目標文件/目錄 &#xff08;1&#xff09;將文件/目錄移動到當前目錄的新文件/目錄&#xff08;也就是重命名操作&#xff09; 這里我們mv了test.txt文件到當前目錄下當前并不存在的ln.tx…

卷積神經網絡(CNN)入門學習筆記

什么是 CNN&#xff1f; CNN&#xff0c;全稱 卷積神經網絡&#xff08;Convolutional Neural Network&#xff09;&#xff0c;是一種專門用來處理圖片、語音、文本等結構化數據的神經網絡。 它模仿人眼識別圖像的方式&#xff1a; 從局部到整體&#xff0c;一步步提取特征&a…

c#基礎07(調試與異常捕捉)

文章目錄 調試與異常捕捉調試異常處理C#中的異常類異常處理拋出對象 調試與異常捕捉 很多時間&#xff0c;寫代碼不能一擼到底&#xff0c;中間都是經歷過無數次的調試&#xff0c;才能正常正確的運行起來。.Net調試有很多方法和技巧。 調試 在C#中程序調試主要指在Visual S…

一種比較精簡的協議

鏈接地址為&#xff1a;ctLink: 一個比較精簡的支持C/C的嵌入式通信的中間協議。 本文采用的協議格式如下 *幀頭 uint8_t 起始字節&#xff1a;0XAF\ *協議版本 uint8_t 使用的協議版本號&#xff1a;當前為0X01\ *負載長度 uint8_t 數據段內容長…

【windwos】文本編輯器Notepad++ 替代品Notepad--

一、N和N--對比介紹 曾經備受推崇的「Notepad」曾是Windows上的經典代碼編輯器。然而&#xff0c;作者的一些政治言論已經讓它被廣大中國用戶拋棄。 一個名為「Notepad--」的新編輯器&#xff0c;也是開源免費&#xff0c;功能和實用性也在盡可能接近。與此同時&#xff0c;「N…

貪心算法套路模板+詳細適用場景+經典題目清單

1. 排序 貪心選擇 適用場景&#xff1a; 任務調度問題&#xff1a;需要安排多個任務&#xff0c;盡量完成更多任務或最小沖突。 區間調度問題&#xff1a;選出最多互不重疊的區間。 區間覆蓋問題&#xff1a;用最少區間覆蓋某個范圍。 合并區間問題&#xff1a;合并重疊區…

Qt QPaintEvent繪圖事件painter使用指南

繪制需在paintEvent函數中實現 用圖片形象理解 如果加了刷子再用筆就相當于用筆畫過的區域用刷子走 防雷達&#xff1a; 源文件 #include "widget.h" #include "ui_widget.h" #include <QDebug> #include <QPainter> Widget::Widget(QWidget…