1.游游的水果大礼包
游游的水果大礼包
枚举
1.1 解析
1.2 代码
#include <iostream>
using namespace std;
int main()
{
long long n,m,a,b;
cin>>n>>m>>a>>b;
long long ret=0;//总价值
int tmpx=min(n/2,m);
for(int x=0;x<=tmpx;x++)//枚举x
{
int y=min(n-2*x,(m-x)/2);//计算出y
ret=max(ret,a*x+b*y);
}
cout<<ret;
return 0;
}
2.买卖股票的最好时机(二)
买卖股票的最好时机(二)
贪心
2.1 解析
2.2 代码
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n=0;
cin>>n;
vector<int> prices(n);
for(int i=0;i<n;i++) cin>>prices[i];
int ret=0;
for(int i=1;i<n;i++)
{
if(prices[i]>prices[i-1])
{
ret+=prices[i]-prices[i-1];
}
}
cout<<ret;
return 0;
}
3.倒置字符串 (pass)
倒置字符串
模拟、字符串
3.1 解析
3.2 代码
#include <iostream>
#include<algorithm>
#include <string>
using namespace std;
int main()
{
string s;
getline(cin,s);
reverse(s.begin(),s.end());//先逆序整个字符串
int left=0,n=s.size();
while(left<n)
{
int right=left;
while(right<n&&s[right]!=' ')//找单词
right++;
reverse(s.begin()+left,s.begin()+right);//翻转单词
while(right<n&&s[right]==' ') right++;//跳过空格
left=right;
}
cout<<s;
return 0;
}