1/20賽后總結

1/20賽后總結

T1『討論區管理員』的旅行 - BBC編程訓練營

算法:IDA*

分數:0

damn it!

Ac_code走丟了~~(主要是沒有寫出來)~~

T2華強買瓜 - BBC編程訓練營

算法:雙向DFS或者DFS剪枝

分數:0

Ac_code:

#include<bits/stdc++.h>
using namespace std;
int n,m,a[35],ans=INT_MAX;
unordered_map<int,int> mp;
//乘以2以避免除以2的問題
void dfs1(int step,int sum,int num){//從起始條件進行DFS(劈第1~n/2個瓜)
//step:劈到了第幾個瓜、sum:劈了多少斤的瓜、num:劈了幾個瓜if(step==n/2+1){if(mp.count(sum))mp[sum]=min(num,mp[sum]);//保證答案最優else mp[sum]=num;//記錄答案return;}if(sum>m*2) return;//如果那的瓜過多,那就退出dfs1(step+1,sum+a[step]*2,num);//不劈直接拿dfs1(step+1,sum+a[step],num+1);//批了拿一半dfs1(step+1,sum,num);//不劈不拿
}
void dfs2(int step,int sum,int num){//從最終條件進行DFS(劈第n/2+1~n個瓜)if(mp.count(m*2-sum)!=0/*兩邊的DFS的和可行就紀錄*/)ans=min(ans,num+mp[m*2-sum]);//答案可行就記錄if(step==n+1/*如果打算劈n+1個瓜時退出*/||num>ans/*如果答案不夠優就不再進行*/)return;dfs2(step+1,sum+a[step]*2,num);//不劈直接拿dfs2(step+1,sum+a[step],num+1);//批了拿一半dfs2(step+1,sum,num);//不劈不拿
}
int main(){cin>>n>>m;for(int i=1;i<=n;i++)cin>>a[i];sort(a+1,a+n+1);dfs1(1,0,0);//從起始條件進行DFS(劈第1~n/2個瓜)dfs2(n/2+1,0,0);//從最終條件進行DFS(劈第n/2+1~n個瓜)if(ans==INT_MAX)cout<<"Huaqiang is about to strike you !";else cout<<ans;return 0;
}

T3花花的桃花源記 - BBC編程訓練營

算法:BFS優化

分數:0

Ac_code:

#include<bits/stdc++.h>
using namespace std;
struct node {int x,y;int t;int l;//是否擁有舉世無雙HJM很劍 
} st,ed;
bool operator <(node x,node y) {return x.t>y.t;
}
priority_queue<node>q;
int n,m;
char a[1005][1005];
int dx[5]= {0,0,0,1,-1};
int dy[5]= {0,1,-1,0,0};
int vis[1005][1005][2];
int chuan[2];
void check(node v){if(vis[v.x][v.y][v.l]>v.t){//保證出現在隊列過的是最優解 vis[v.x][v.y][v.l]=v.t; q.push(v);//放入隊列 }
}
void jian(node v){if(chuan[v.l])	return ;chuan[v.l]=1;//在有舉世無雙HJM很劍和沒舉世無雙HJM很劍時,只要傳送一次就是最優的 v.t+=1;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++) {if(a[i][j]!='X') continue;//不是間隙就不傳送check({i,j,v.t,v.l});//如果是間隙,那檢查傳送時是否最優 }}
}
int bfs() {q.push({st.x,st.y,0,0});while(!q.empty()) {node t=q.top();q.pop();if(t.x==ed.x&&t.y==ed.y)	return t.t;//到達祭臺 for(int i=1; i<=4; i++) {int nx=dx[i]+t.x;int ny=dy[i]+t.y;//向四個方向擴展 if(nx<1||ny<1||nx>n||ny>m)	continue;//判斷是否出界node v=t;v.x=nx,v.y=ny;char ta=a[nx][ny];if(ta=='0'){//空地 v.t+=1;check(v);}else if(ta=='1'){//墻 if(v.l==1){//有劍a[nx][ny]=0;v.t+=1;check(v);}	}else if(ta=='2'){//Ultra怪(不用考慮是否會再生)if(v.l==1)	v.t+=1;else v.t+=3;check(v);}else if(ta=='3'){//Super怪 if(v.l==1)	v.t+=1;else v.t+=11;check(v);}else if(ta=='4'){//舉世無雙HJM很劍 v.t+=1;check(v);if(!v.l) v.l=1,v.t+=4;check(v);}else if(ta=='5'){//棧道 if(v.l==0){v.t+=1;check(v);}}else if(ta=='X'){//間隙 v.t+=1;check(v);jian(v);}}}return -1;}
void solve() {while(!q.empty())	q.pop();//清空隊列memset(vis,0,sizeof vis);memset(a,0,sizeof a);memset(chuan,0,sizeof chuan);memset(vis,0x3f,sizeof vis);//求最小值,故memset為0x3f3f3f3f//多測不清空,親人兩行淚 cin>>n>>m;for(int i=1; i<=n; i++) {char ch=getchar();for(int j=1; j<=m; j++) {a[i][j]=getchar();if(a[i][j]=='S')	st.x=i,st.y=j,a[i][j]='0';//起點可多次經過 else if(a[i][j]=='E')	ed.x=i,ed.y=j,a[i][j]='0'; }}int tmp=bfs();if(tmp!=-1)	cout<<tmp<<endl; else cout<<"Maybe Next Time"<<endl;
}
int main(){int T;cin>>T;while(T--)		solve();return 0;
}

T4Squars - BBC編程訓練營

算法:DFS剪枝

分數:33(騙的)

Ac_code走丟啦(主要是寫不出來

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

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

相關文章

大數據與AI驅動的商業查詢平臺:企業市場拓展的變革引擎?

在競爭白熱化的商業環境里&#xff0c;企業對準確市場信息的高效獲取能力&#xff0c;直接關系到業務拓展的成敗。商業查詢平臺借助大數據和人工智能技術&#xff0c;為企業提供精準客戶篩選、市場拓展分析以及風險評估服務&#xff0c;正逐漸成為企業市場開拓的得力助手。本文…

redis 各個模式的安裝

一、Redis單機安裝 1、安裝gcc依賴 Redis是C語言編寫的&#xff0c;編譯需要GCC。 Redis6.x.x版本支持了多線程&#xff0c;需要gcc的版本大于4.9&#xff0c;但是CentOS7的默認版本是4.8.5。 升級gcc版本&#xff1a; yum -y install centos-release-scl yum -y install d…

TiDB 的優勢與劣勢

TiDB 的優勢與劣勢 TiDB 作為一款新興的分布式數據庫&#xff0c;在業界逐漸嶄露頭角。它兼具傳統關系型數據庫的特性&#xff0c;又充分利用分布式架構的優勢。那么&#xff0c;TiDB 究竟有怎樣的優缺點呢&#xff1f;今天我們來聊聊 TiDB 的優勢與劣勢&#xff0c;幫你全面了…

藍橋杯算法日常|c\c++常用競賽函數總結備用

一、字符處理相關函數 大小寫判斷函數 islower和isupper&#xff1a;是C標準庫中的字符分類函數&#xff0c;用于檢查一個字符是否為小寫字母或大寫字母&#xff0c;需包含頭文件cctype.h&#xff08;也可用萬能頭文件包含&#xff09;。返回布爾類型值。例如&#xff1a; #…

微服務知識——4大主流微服務架構方案

文章目錄 1、微服務聚合模式2、微服務共享模式3、微服務代理模式4、微服務異步消息模式 微服務是大型架構的必經之路&#xff0c;也是大廠重點考察對象&#xff0c;下面我就重點詳解4大主流微服務架構方案。 1、微服務聚合模式 微服務聚合設計模式&#xff0c;解決了如何從多個…

【HTML+CSS】使用HTML與后端技術連接數據庫

目錄 一、概述 1.1 HTML前端 1.2 后端技術 1.3 數據庫 二、HTML表單示例 三、PHP后端示例 3.1 連接數據庫 3.2 接收數據并插入數據庫 四、安全性 4.1 防止SQL注入 4.2 數據驗證與清洗 五、優化 5.1 索引優化 5.2 查詢優化 六、現代Web開發中的最佳實踐 6.1 使用…

T-SQL語言的數據庫編程

T-SQL語言的數據庫編程 1. 引言 在信息化迅速發展的今天&#xff0c;數據庫已經成為數據管理和使用的重要工具。其中&#xff0c;T-SQL&#xff08;Transact-SQL&#xff09;作為微軟SQL Server的擴展SQL語言&#xff0c;不僅用于數據查詢和管理&#xff0c;還能夠進行復雜的…

通信協議—WebSocket

一、WebSocket編程概念 1.1 什么是WebSocket WebSocket 是一種全雙工通信協議&#xff0c;允許在客戶端&#xff08;通常是瀏覽器&#xff09;和服務器之間建立持久連接&#xff0c;以實現實時的雙向通信。它是 HTML5 標準的一部分&#xff0c;相比傳統的 HTTP 請求&#xff…

cadence筆記--畫PMU6050原理圖和封裝

簡介 本文主要介紹使用Cadence自己畫一個PMU6050的原理圖PCB的實際用例&#xff0c;Cadence使用的是24.1版本。 原理圖 首先獲取PMU6050引腳參數&#xff0c;使用立創商城查詢PMU6050型號&#xff0c;點擊數據手冊如下圖所示&#xff1a; 如下圖所示&#xff0c;左邊是原理圖&…

CSS3 3D 轉換介紹

CSS3 中的 3D 轉換提供了一種在二維屏幕上呈現三維效果的方式&#xff0c;主要包括translate3d、rotate3d、scale3d等轉換函數&#xff0c;下面來詳細介紹&#xff1a; 1. 3D 轉換的基本概念 坐標系 在 CSS3 的 3D 空間中&#xff0c;使用的是右手坐標系。X 軸是水平方向&…

Text2SQL 智能報表方案介紹

0 背景 Text2SQL智能報表方案旨在通過自然語言處理&#xff08;NLP&#xff09;技術&#xff0c;使用戶能夠以自然語言的形式提出問題&#xff0c;并自動生成相應的SQL查詢&#xff0c;從而獲取所需的數據報表&#xff0c;用戶可根據得到結果展示分析從而為結論提供支撐&#…

FFmpeg音視頻采集

文章目錄 音視頻采集音頻采集獲取設備信息錄制麥克風錄制聲卡 視頻采集攝像機畫面采集 音視頻采集 DirectShow&#xff08;簡稱DShow&#xff09;是一個Windows平臺上的流媒體框架&#xff0c;提供了高質量的多媒體流采集和回放功能&#xff0c;它支持多種多樣的媒體文件格式&…

【漫話機器學習系列】056.F1值(F1 score)

F1值&#xff08;F1 Score&#xff09; 定義 F1值是機器學習中一種用于評估模型性能的指標&#xff0c;特別適合用于 不平衡數據集 的分類任務。它是 精確率&#xff08;Precision&#xff09; 和 召回率&#xff08;Recall&#xff09; 的調和平均值。通過綜合考慮精確率和召…

Mac安裝Homebrew

目錄 安裝修改homeBrew源常用命令安裝卸載軟件升級軟件相關清理相關 安裝 官網 https://brew.sh/不推薦官網安裝方式&#xff08;很慢很慢或者安裝失敗聯網失敗&#xff09; 檢測是否安裝homebrewbrew -v執行安裝命令 蘋果電腦 常規安裝腳本 &#xff08;推薦 完全體 幾分鐘就…

在K8S中,如果后端NFS存儲的IP發送變化如何解決?

在Kubernetes中&#xff0c;如果后端NFS存儲的IP地址發生了變化&#xff0c;您需要更新與之相關的Peristent Volume(PV)或Persistent Volume Claim(PVC)以及StorageClass中關于NFS服務器IP的配置信息&#xff0c;確保K8S集群內的Pod能夠正確連接到新的NFS存儲位置。解決方案如下…

一文大白話講清楚webpack基本使用——9——預加載之prefetch和preload以及webpackChunkName的使用

文章目錄 一文大白話講清楚webpack基本使用——9——預加載之prefetch和preload1. 建議按文章順序從頭看&#xff0c;一看到底&#xff0c;豁然開朗2. preload和prefetch的區別2. prefetch的使用3. preload的使用4. webpackChunkName 一文大白話講清楚webpack基本使用——9——…

【Elasticsearch 】 聚合分析:桶聚合

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家&#xff0c;歷代文學網&#xff08;PC端可以訪問&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移動端可微信小程序搜索“歷代文學”&#xff09;總架構師&#xff0c;15年工作經驗&#xff0c;精通Java編…

tensorflow源碼編譯在C++環境使用

https://tensorflow.google.cn/install/source?hlzh-cn查看tensorflow和其他需要下載軟件對應的版本&#xff0c;最好一模一樣 1、下載TensorFlow源碼 https://github.com/tensorflow/tensorflow 2、安裝編譯protobuf&#xff08;3.9.2&#xff09; protobuf版本要和TensorFlo…

P8738 [藍橋杯 2020 國 C] 天干地支

兩種方法 #include<bits/stdc.h> using namespace std;int main(){int year;cin>>year;string tg[10] {"geng", "xin", "ren", "gui","jia", "yi", "bing", "ding", "wu&…

Python 常用運維模塊之OS模塊篇

Python 常用運維模塊之OS模塊篇 OS 模塊獲取當前工作目錄更改當前工作目錄返回當前目錄路徑返回上一級目錄路徑遞歸生成目錄路徑刪除目錄創建目錄刪除目錄列出特定目錄下文件和子目錄刪除某個特定文件重命名某個文件獲取某個文件/目錄的信息輸出目錄路徑分隔符輸出文件行終止符…