【正经题解】有趣的软件
2026-06-24 20:27:32
发布于:广东
0阅读
0回复
0点赞
很水,小DP
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
template<typename T>
inline void rd(T &x)
{
x = 0;
char c = getchar();
bool f = 0;
while (!isdigit(c))
{
if (c == '-')
{
f = 1;
}
c = getchar();
}
while (isdigit(c))
{
x = (x << 3) + (x << 1) + (c ^ '0');
c = getchar();
}
if (f)
{
x = ~(x - 1);
}
}
template<typename T, typename...Args>
inline void rd(T &x, Args&...args)
{
rd(x);
rd(args...);
}
inline void wt(int x)
{
if (x < 0)
{
putchar('-');
x = -x;
}
if (x > 9)
{
wt(x / 10);
}
putchar(x % 10 + '0');
}
#define pc(x) putchar(x)
#define wtl(x) wt(x), pc('\n')
#define kg pc(' ')
#define hh pc('\n')
int f[110][10];
signed main()
{
char s[110];
scanf("%s", s + 1);
int l = strlen(s + 1);
f[0][1] = 1;
for (int i = 1; i <= l; i++)
{
if (s[i] >= 'A' && s[i] <= 'Z')
{
f[i][1] = min(f[i - 1][1] + 1, f[i - 1][0] + 2);
f[i][0] = min(f[i - 1][0] + 2, f[i - 1][1] + 2);
}
else
{
f[i][1] = f[i - 1][1] + 2;
f[i][0] = f[i - 1][0] + 1;
}
}
wtl(min(f[l][0], f[l][1] + 1));
return 0;
}
能AC。
加油!!
这里空空如也







有帮助,赞一个