#include <iostream>
#include <string>
#include <cmath>
using namespace std;
bool isprime(long long n)
{
if (n < 2) return false;
for (int i = 2; i <= sqrt(n); i++)
{
if (n % i == 0) return false;
}
return true;
}
int main()
{
string s;
cin >> s;
for (int i = s.size() - 2; i >= 0; i--) s += s[i];
if (isprime(stoll(s))) cout << "prime" << endl;
else cout << "noprime" << endl;
return 0;
}
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 2e5 + 1;
using pii = pair<int, int>;
pii arr[N];
int n, a, b, res;
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a >> b;
arr[i].first = a;
arr[i].second = b;
}
sort(arr, arr + n);
int l = arr[0].first, r = arr[0].second;
for (int i = 1; i < n; i++)
{
int a = arr[i].first, b = arr[i].second;
if (a >= r) res++;
else b = min(b, r);
l = a;
r = b;
}
cout << res + 1 << endl;
return 0;
}
f[i][j]
:从前i位同学中找j名同学,最后一个同学必选的最大能力值乘积;g[i][j]
:从前i位同学中找j名同学,最后一个同学必选的最小能力值乘积;#include <iostream>
using namespace std;
const long INF = 0x3f3f3f3f3f;
const int M = 55, N = 15;
long f[M][N], g[M][N];
long arr[M];
int n, a, k, d;
long res = -INF;
int main()
{
cin >> n;
for (int i = 1; i <= n; i++) cin >> arr[i];
cin >> k >> d;
for (int i = 1; i <= n; i++)
{
f[i][1] = g[i][1] = arr[i];
for (int j = 2; j <= min(i, k); j++)
{
f[i][j] = -INF;
g[i][j] = INF;
for (int prev = max(i - d, j - 1); prev <= i - 1; prev++)
{
f[i][j] = max(max(f[prev][j - 1] * arr[i], g[prev][j - 1] * arr[i]), f[i][j]);
g[i][j] = min(min(f[prev][j - 1] * arr[i], g[prev][j - 1] * arr[i]), g[i][j]);
}
}
}
for (int i = k; i <= n; i++) res = max(res, f[i][k]);
cout << res << endl;
return 0;
}
本篇文章的分享就到这里了,如果您觉得在本文有所收获,还请留下您的三连支持哦~
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有