A Apple
给出了两种买苹果的方式,第一个是一个苹果x元钱,第二个是三个苹果y元钱,要买n个苹果,怎么花费最少。
当然,我们要比较哪一个方案便宜,再根据需求买苹果。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x, y, n;
cin >> x >> y >> n;
int sum = 0;
if(y<=x*3)
{
sum += n/3*y;
sum += n%3*x;
}
else
{
sum += n*x;
}
cout << sum;
return 0;
}
B Explore
探险家游戏,有n个山洞,出生在第1个山洞中,开局给你一个限制时间,有的山洞经过会有奖励时间,每经过一个山洞都会花费相应的时间,问能否在有限时间内通过每个山洞。
简单的模拟。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[100010];
ll x[100010], y[100010];
int main()
{
ll n, m, t;
cin >> n >> m >> t;
for(int i=2;i<=n;i++)
cin >> a[i];
for(int i=1;i<=m;i++)
cin >> x[i] >> y[i];
bool f = 1;
int k = 1;
for(int i=2;i<=n;i++)
{
t -= a[i];
if(t<=0)
{
f = 0;
break;
}
if(x[k] == i)
t += y[k++];
}
if(f) cout << "Yes\n";
else cout << "No\n";
return 0;
}
C Belt Conveyor
给你一个字母矩阵,UDLR意思分别是往上下左右走,问走到哪里走不动了,走不动意思是出格了。如果没有这样的特殊情况就输出-1。
理清一下思路,循环加特判。
代码:
#include<bits/stdc++.h>
using namespace std;
string s[510];
int n, m, x = 1, y, a, b, cnt;
int main()
{
cin >> n >> m;
for(int i=1;i<=n;i++)
cin >> s[i];
while(cnt<=1e6)
{
if(s[x][y] == 'U')
a = x - 1, b = y;
if(s[x][y] == 'D')
a = x + 1, b = y;
if(s[x][y] == 'L')
b = y - 1, a = x;
if(s[x][y] == 'R')
b = y + 1, a = x;
if(a==0||a==n+1||b==-1||b==m)
{
cout << x << " " << y+1;
return 0;
}
x = a;
y = b;
cnt++;
}
cout << -1;
return 0;
}