网站建设过程总结,成都小程序开发价格,电商网站用什么框架做,中小学网站建设2020 年百度之星程序设计大赛 - 初赛一 [toc]
6743 Drink
题解#xff1a;
每一种饮料求一个卡路里#xff0c;取最小值 第一看以为是背包#xff0c;其实出题人在第二层
代码#xff1a;
#includeiostream
#includecstdio
#includestring
#i…2020 年百度之星·程序设计大赛 - 初赛一 [toc]
6743 Drink
题解
每一种饮料求一个卡路里取最小值 第一看以为是背包其实出题人在第二层
代码
#includeiostream
#includecstdio
#includestring
#includecstring
using namespace std;
int dp[10005];
inline int read() {char ch getchar(); int x 0, f 1;while(ch 0 || ch 9) {if(ch -) f -1;ch getchar();} while(0 ch ch 9) {x x * 10 ch - 0;ch getchar();} return x * f;
}
int main()
{int t,e,f,m,n,pi,wi;tread();while(t--){scanf(%d%d,n,m);//mread();int sum10000;for(int i1;in;i) {wiread();piread();int a;if(m%wi0)am/wi;else am/wi1;summin(a*pi,sum);}printf(%d\n,sum);//coutdp[m]endl;}return 0;
} 6744 GPA
题解
给的一个分数范围我们要让分数总和最高就要找怎么给四个成绩赋分最有价值。一个分数区间对应的绩点是一样的那我们就取分数区间的最低分即可[95,100]都对应4.3那我们就取95就行 具体做法我是这样的用一个数组来村每个区间的最小数用另一数组来存每个区间最小数对应的绩点然后四个for循环暴力完事
代码
#includeiostream
#includecstdio
using namespace std;
double a[104];
int b[]{0,0,60,62,65,67,70,75,80,85,90,95};
void init()
{a[0]0;a[60]1.0;a[62]1.7;a[65]2.0;a[67]2.3;a[70]2.7;a[75]3.0;a[80]3.3;a[85]3.7;a[90]4.0;a[95]4.3;}
int main()
{int t;init();scanf(%d,t);while(t--){double sum0;int x;scanf(%d,x);for(int i1;i11;i){for(int j1;j11;j){for(int k1;k11;k){for(int w1;w11;w){if(b[i]b[j]b[k]b[w]x){double ansa[b[i]]a[b[j]]a[b[k]]a[b[w]];if(anssum)sumans;}}}}}printf(%.1f\n,sum);}
}6745 Dec
题解
对于a和ba和b的答案一定是在a-1b或者ab-1的基础上来的如果a和b本身是互质则在前面的基础上1否则不加。 所以dp递推就行 看看数据所以dp要预处理然后直接输出答案
代码
#includeiostream
#includecstdio
#include bitset
using namespace std;
bitset10000010 g;
int n,m,x,dp[1004][1005],top0;
int gcd(int a,int b)
{if(b0)return a;else return gcd(b,a%b);
}int main()
{int t;scanf(%d,t);for(int i1;i1002;i)for(int j1;j1002;j){if(dp[i][j])continue;dp[i][j]max(dp[i-1][j],dp[i][j-1]);if(gcd(i,j)1)dp[i][j];}while(t--){int a,b;scanf(%d%d,a,b);printf(%d\n,dp[a][b]); }
}6746 Civilization
6747 Rotate
6748 Matrix
6749 Mosquito
6750 Function