第十二届蓝桥杯大赛软件赛省赛第二场【C++B组】
生活随笔
收集整理的這篇文章主要介紹了
第十二届蓝桥杯大赛软件赛省赛第二场【C++B组】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
自己參加的是第一次場的,打的很爛。做了一下第二場的題,我是真想罵街。
第二場普遍簡單許多。
目錄
- A: 求余 【簽到】
- B: 雙階乘 【簽到】
- C: 格點 【簽到題】
- D: 整數分解 【DP】
- E: 城邦 【最小生成樹板子題】
- F: 特殊年份 【簽到題】
- G: 小平方 【簽到題】
- H: 完全平方數 【質因子分解】
- I: 負載均衡 【優先隊列 / 模擬】
- J: 國際象棋 【狀壓DP / 水平有限不會寫】
A: 求余 【簽到】
答案: 1
B: 雙階乘 【簽到】
答案: 59375
C: 格點 【簽到題】
答案: 15698
D: 整數分解 【DP】
答案: 691677274345
f[i][j] 表示將數字j分成i份有多少種方法
E: 城邦 【最小生成樹板子題】
答案: 4046
自己求一下每一條邊的權,用最小生成樹模板就OK了。
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> using namespace std; const int N=2022; const int INF=0x3f3f3f3f; int g[N][N],dist[N]; bool st[N]; int n,m; int prim() {memset(dist,0x3f,sizeof dist);int res=0;for(int i=0;i<n;i++){int t=-1;for(int j=1;j<=n;j++)if(!st[j]&&(t==-1 || dist[t] > dist[j] )) t=j;st[t]=true;if(i) res+=dist[t];if(i&&dist[t]==INF) return INF;for(int j=1;j<=n;j++) dist[j]=min(dist[j],g[t][j]);}return res; } int main(void) {cin>>n;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(i==j) g[i][j]=0;else g[i][j]=INF;}}for(int i=1;i<=2021;i++){for(int j=1;j<=2021;j++){if(i!=j){int a=i,b=j;int sum=0;while(a||b){if(a%10!=b%10) sum+=a%10+b%10;a/=10,b/=10;}g[i][j]=sum;g[j][i]=sum;}}}int t=prim();cout<<t<<endl;return 0; }F: 特殊年份 【簽到題】
#include<cstdio> #include<iostream> #include<algorithm> using namespace std; int ans; bool check(int x) {int a=x/1000;int b=(x/100)%10;int c=(x/10)%10;int d=x%10;if(a==c&&(d-b==1)) return true;else return false; } int main(void) {int x;for(int i=0;i<5;i++){cin>>x;if(check(x)) ans++;} cout<<ans<<endl;return 0; }G: 小平方 【簽到題】
#include<cstdio> #include<iostream> #include<algorithm> using namespace std; int main(void) {int n; cin>>n;double a=n/2.0;int ans=0;for(int i=1;i<=n-1;i++){int temp=i*i;if((temp%n)<a) ans++;}cout<<ans<<endl;return 0; }H: 完全平方數 【質因子分解】
解析: 你要知道,要想可以開平方,其質因子必須成對出現。不是偶數的補一下就好了。
例如: 12=2x2x3 , 3的個數是一個,不是偶數所以得補一個3 結果 12x3=36 就可以開平方了。
注意: 本題數據范圍大要用 long long 可能會有一個很大的質數的情況。
I: 負載均衡 【優先隊列 / 模擬】
用優先隊列來維護當前時間哪一個機器的任務完成了,釋放資源。
J: 國際象棋 【狀壓DP / 水平有限不會寫】
總結
以上是生活随笔為你收集整理的第十二届蓝桥杯大赛软件赛省赛第二场【C++B组】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第六章 贪心 【完结】
- 下一篇: Acwing 第 2场热身赛 【完结】