2020年百度之星 程序设计大赛 初赛一
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                2020年百度之星 程序设计大赛 初赛一
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            大家好,我是小黃呀
@Time : 2020-07-19 14:00:00 - 17:00:00
@Host : HDOJ
 
直接對所有飲料進行遍歷,求出每一種飲料滿足m毫升水份,所攝入的卡路里cnt2,然后求出最小值。 由于打開一瓶飲料,必須喝完,所以在求飲料瓶數是,要向上取整,用一個ceil函數。  
用一個map<int,int> 來保存分數與績點的對應關系,此處并將績點*10,方便計算,最后再/10.,輸出一位小數 用四個循環對四門課分數進行遍歷,求出在給定總分下,績點的最大值。這里用到了for(auto x:mp),用來簡化代碼的。(大佬就是不一樣)  
逆向思維,直接打表,定義一個二維數組f[i][j],然后從1開始,直到給定的最大范圍1000,求出i,j兩個整數在題目要求過程中最大互質次數,保存在f[i][j]中。 其中判斷兩數互質,用到__gcd(m,n)函數。 輸入a,b,輸出f[a][b]。  
                        
                        
                        題目傳送門
太菜了啊,三題就是極限了。。。
Drink
1001-題目
題目大意
有n種不同的飲料,第i種飲料提供x[i]的水份,包含y[i]的卡路里,只能選擇一種飲料一直喝,現在需要至少m毫升的水份,求出攝入的卡路里總和最小的飲料。并且一旦打開一瓶飲料,就要喝完。
思路分析(暴力)
具體代碼
#include<bits/stdc++.h>using namespace std;int main() {int t;cin>>t;for(int i=0;i<t;i++){int n,m;cin>>n>>m;int ans=100001;for(int j=0;j<n;j++){int x,y;cin>>x>>y;int cnt1=ceil(m/(x*1.0));int cnt2=cnt1*y;if(cnt2<ans){ans=cnt2;}}cout<<ans<<endl;}return 0; }GPA
1002-題目
題目大意
有4門考試,每門考試滿分100,最低0分,題目中給出了成績與績點的對應關系,現在給出4門考試的總分,求出績點的和最大是多少
思路分析(參照大佬)
具體代碼
#include<bits/stdc++.h> using namespace std; #define ll long longmap<int,int>mp;void init(){mp[95]=43;mp[90]=40;mp[85]=37;mp[80]=33;mp[75]=30;mp[70]=27;mp[67]=23;mp[65]=20;mp[62]=17;mp[60]=10;mp[0]=0; }#define fi first #define se secondint T, n, ans;int main(){init();for (cin>>T;T--;){cin>>n;ans=0;for (auto a:mp)for (auto b:mp)for (auto c:mp)for (auto d:mp)if (a.fi+b.fi+c.fi+d.fi<=n)ans=max(ans,a.se+b.se+c.se+d.se);printf("%.1lf\n",ans/10.);} }Dec
1003-題目
題目大意
給定a,b兩個正整數,每次從中選一個大于1的數減1,直到兩個數都為1,求出在整個過程中兩個數互質的次數最多是多少。
思路分析
具體代碼
#include<bits/stdc++.h> using namespace std;int n, f[1010][1010];int main(){n=1000;for (int i=1;i<=n;++i)for (int j=1;j<=n;++j){f[i][j]=max(f[i][j-1],f[i-1][j])+(__gcd(i,j)==1);}int T, a, b;for (cin>>T;T--;){scanf("%d%d",&a,&b);printf("%d\n",f[a][b]);} }總結
以上是生活随笔為你收集整理的2020年百度之星 程序设计大赛 初赛一的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 前端学习(2187):tabber文件引
- 下一篇: 校友信息管理系统
