每日一题
2022/12/26
题目:AcWing.4261 孤独的照片
AC代码:
#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 5;
typedef long long LL;
int n;
char str[N];
int l[N], r[N];
int main()
{
cin >> n;
cin >> str;
for (int i = 0, h = 0, g = 0; i < n; i ++)
if (str[i] == 'G') l[i] = h, h = 0, g ++;
else l[i] = g, g = 0, h ++;
for (int i = n - 1, h = 0, g = 0; i >= 0; i --)
if (str[i] == 'G') r[i] = h, h = 0, g ++;
else r[i] = g, g = 0, h ++;
LL res = 0;
for (int i = 0; i < n; i ++)
res += (LL)l[i] * r[i] + max(l[i] - 1, 0) + max(r[i] - 1, 0);
cout << res << endl;
return 0;
}
2022/12/27
题目:AcWing.3400 统计次数
AC代码:
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 5;
int n, k;
int main()
{
cin >> n >> k;
int res = 0;
for (int i = 1; i <= n; i ++)
{
int t = i;
while (t)
{
if (t % 10 == k) res ++;
t /= 10;
}
}
cout << res << endl;
return 0;
}
2022/12/28
题目:AcWing.4366 上课睡觉
AC代码:
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int n, sum;
int a[N];
bool check(int cnt)
{
int delta = sum / cnt; // 每一堆的和
for (int i = 0, s = 0; i < n; i ++)
{
s += a[i];
if (s > delta) return false;
if (s == delta) s = 0;
}
return true;
}
int main()
{
int T;
cin >> T;
while (T --)
{
cin >> n;
sum = 0;
for (int i = 0; i < n; i ++) cin >> a[i], sum += a[i];
// 枚举最终分成的堆数
for (int i = n; i; i --)
if (sum % i == 0 && check(i))
{
cout << n - i << endl;
break;
}
}
return 0;
}
2022/12/29
题目:AcWing.3443 学分绩点
AC代码:
#include <bits/stdc++.h>
using namespace std;
const int N = 10 + 5;
int n;
int a[N], b[N];
double f(int n)
{
if (n >= 90 && n <= 100) return 4.0;
else if (n >= 85) return 3.7;
else if (n >= 82) return 3.3;
else if (n >= 78) return 3.0;
else if (n >= 75) return 2.7;
else if (n >= 72) return 2.3;
else if (n >= 68) return 2.0;
else if (n >= 64) return 1.5;
else if (n >= 60) return 1.0;
else return 0.0;
}
int main()
{
cin >> n;
double sum1 = 0;
for (int i = 0; i < n; i ++) cin >> a[i], sum1 += a[i];
for (int i = 0; i < n; i ++) cin >> b[i];
double sum2 = 0;
for (int i = 0; i < n; i ++) sum2 += a[i] * f(b[i]);
printf("%.2lf\n", sum2 / sum1);
return 0;
}
2022/12/30
题目:AcWing.4818 奶牛大学
AC代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 1e5 + 5;
int n;
int a[N];
int main()
{
cin >> n;
for (int i = 0; i < n; i ++) cin >> a[i];
sort(a, a + n);
LL ans = -1;
int cost = -1;
for (int i = 0; i < n; i ++)
{
int cost_now = a[i];
LL res = (LL)a[i] * (n - i);
if (res > ans) ans = res, cost = cost_now;
}
cout << ans << ' ' << cost << endl;
return 0;
}
2023/1/2
题目:
AC代码:
2023/1/3
题目:
AC代码:
2023/1/4
题目:
AC代码:
2023/1/5
题目:
AC代码:
版权声明:本文为m0_52806260原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。