考题解析2021年4月蓝桥杯省赛C++中级组
Posted 青少年信息学编程竞赛与升学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了考题解析2021年4月蓝桥杯省赛C++中级组相关的知识,希望对你有一定的参考价值。
一想到你在关注我就忍不住有点紧张
# LAN QIAO #
1
字符串(30分)
【题目描述】
【内存时间限制】
时间限制:无
内存限制:无
【输入格式】
【输出格式】
【样例输入】
abc
【样例输出】
cba
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
cin>>s;
int len=s.size();
for(int i=len-1;i>=0;i--)
cout<<s[i];
cout<<endl;
return 0;
}
2
剪绳子(40分)
【题目描述】
【内存时间限制】
时间限制:无
内存限制:无
【输入格式】
【输出格式】
【样例输入】
2
【样例输出】
5
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int ans=1;
for(int i=1;i<=n;i++)
ans*=2;
ans+=1;
cout<<ans;
return 0;
}
3
合数求和(50分)
【题目描述】
【内存时间限制】
时间限制:无
内存限制:无
【输入格式】
【输出格式】
【样例输入】
7
【样例输出】
10
#include<iostream>
#include<cmath>
using namespace std;
bool isPrime(int n)
{
int i;
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)
break;
}
return i>sqrt(n);
}
int main()
{
int n;
cin>>n;
int sum=0;
for (int i=4;i<=n;i++)
{
if (isPrime(i)==false)
sum+=i;
}
cout<<sum<<endl;
return 0;
}
4
求和比较(总分60分)
【题目描述】
【内存时间限制】
时间限制:无
内存限制:无
【输入格式】
【输出格式】
【样例输入】
5 1
【样例输出】
3
#include<iostream>
#include<algorithm>
using namespace std;
int dp[35][550];
int main()
{
int n,m;
cin>>n>>m;
int sum=0;
dp[0][0]=1;
for(int i=1;i<=n;i++)
{
for(int j=0;j<=(i+1)*i/2;j++)
dp[i][j]=dp[i-1][j+i]+dp[i-1][abs(j-i)];
}
if(m==0)
cout<<dp[n][m]/2<<endl;
else
cout<<dp[n][m]<<endl;
return 0;
}
5
最大价值(总分80分)
【题目描述】
【内存时间限制】
时间限制:无
内存限制:无
【输入格式】
【输出格式】
【样例输入】
53 3
21 9
20 2
30 21
【样例输出】
30
#include<iostream>
#include<algorithm>
using namespace std;
int w[55],v[55];
int dp[55][605];
int main()
{
int t,m;
cin>>t>>m;
for(int i=1;i<=m;i++)
cin>>w[i]>>v[i];
for(int i=1;i<=m;i++)
{
for(int j=1;j<=t;j++)
{
if(j>=w[i])
dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]);
else
dp[i][j]=dp[i-1][j];
}
}
cout<<dp[m][t]<<endl;
return 0;
}
6
黑精灵与白精灵(总分100分)
【题目描述】
【内存时间限制】
时间限制:无
内存限制:无
【输入格式】
【输出格式】
【样例输入】
3 4
2 3
3 1
【样例输出】
4
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
int n1,m1,n2,m2;
cin>>n1>>m1>>n2>>m2;
int ans1=(n1+m1-2)+(n-n2+m-m2);
int ans2=(n2+m2-2)+(n-n1+m-m1);
cout<<min(ans1, ans2)<<endl;
return 0;
NEWS
以上是关于考题解析2021年4月蓝桥杯省赛C++中级组的主要内容,如果未能解决你的问题,请参考以下文章