2. 平台优惠
本题是一个排序题。
cpp
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int n,ans;
int a[N], b[N];
int main()
{
cin >> n;
for(int i = 0; i < n; i ++ ) cin >> a[i];
sort(a,a+n);
for(int i = 0; i < n; i ++ ) b[i] = a[n - 1 - i];
for(int i = 0; i < n; i ++ )
if(i % 3 != 2)
ans += b[i];
cout << ans;
// 请在此输入您的代码
return 0;
}
3. 圆上移动
考察取模。
cpp
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int n,m,x,ans;
int a[N];
int main()
{
cin >> n >> m >> x;
for(int i = 1; i <= n; i ++ ) {
cin >> a[i];
x = x + a[i];
if(x % m == 0)ans++;
}
cout << ans;
// 请在此输入您的代码
return 0;
}
4. 受限交换
考察的逆序对数,太难了。
5. 危险任务
贪心算法。
cpp
#include <bits/stdc++.h>
using namespace std;
int a,b,c,ans;
int main()
{
cin >> a >> b >> c;
while(a!=b)
{
ans++;
if((a+2)%c==0||a+1==b) a++;
else a+=2;
}
cout<<ans;
// 请在此输入您的代码
return 0;
}
6. 质数雷达
这题考察的是质数筛,会就不难,不会就难。学过忘了。