这次比赛中间因为有一节课空了一个多小时,不过也一直在整理思路,做到后面的时候基本上就是看正确率高的做了,菜是原罪,一共做出来了6个题,后面的题基本上是啥思路也没有了。
A、B、M基本上就是送分的了,自己因为有一个输入没看清还扣了分。
E题 神仙爱采药
这道题的思路很简单,因为占空格1的肯定比2的要赚。
整体思路就是,有位置直接都进来,如果1来了放不进来,检查一下2是否在里边,有就拿出来。
这个题我错了好多次,最后把int换成 long long 通过了,无语 (ˉ▽ˉ;)…
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int main()
{
long long n;
cin >> n;
long long a = 0, b = 0;
long long V = 0;
long long sum = 0;
string str;
cin >> str;
for (int i = 0; i < str.length(); ++i)
{
if (str[i] == '1')
{
if (n - V >= 1)
{
a++;
V++;
}
else
{
if (b > 0)
{
b--;
V -= 2;
a++;
V++;
}
}
}
else if (str[i] == '2')
{
if (n - V >= 2)
{
b++;
V += 2;
}
}
long long num = (a + b);
sum += num;
}
cout << sum << endl;
return 0;
}
I题 奇怪的传输机增加了
嗯,比较基础的题。
#include<iostream>
#include<iomanip>
#include<algorithm>
using namespace std;
int main()
{
long double N;
int x, y;
cin >> N >> x >> y;
long double n = N;
int t = 0;
bool flag = true;
for (int i = 1; i <= y; ++i)
{
n = (2.00000000 / 3.00000000) * n;
t++;
if (t == x && flag == true)
{
n += (N / 2.00000000);
t = 0;
flag = false;
}
if (n < (N / 32.00000000))
{
cout << "N0!" << endl;
cout << i << " ";
cout << fixed << setprecision(6) << n;
return 0;
}
}
cout << "YE5!" << endl;
cout << fixed << setprecision(6) << n;
return 0;
}
J题 奇怪的小鸭子也增加了
这个题多少就有点离谱了,自己模拟了很多遍都没啥问题,最后还是通不过。
最后直接用了个巧法过了,再次无语 (ˉ▽ˉ;)…
#include <iostream>
using namespace std;
int main()
{
int A, B, a, b;
cin >> A >> B >> a >> b;
int x, y;
x = (A / a + 1) / 2;
y = (B / b + 1) / 2;
cout << x * y << endl;
}
总的来看,自己也就能做点简单题了。后面的题基本上是没思路,正好也趁着这个机会,多学习学习,加油 (ง •_•)ง