Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【今日三题】素数回文(模拟) / 活动安排(区间贪心) / 合唱团(动态规划)

【今日三题】素数回文(模拟) / 活动安排(区间贪心) / 合唱团(动态规划)

作者头像
_小羊_
发布于 2025-05-12 00:34:14
发布于 2025-05-12 00:34:14
7300
代码可运行
举报
文章被收录于专栏:C++C++
运行总次数:0
代码可运行

素数回文(模拟)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#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;
}

活动安排(区间贪心)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#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名同学,最后一个同学必选的最小能力值乘积;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#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;
}

本篇文章的分享就到这里了,如果您觉得在本文有所收获,还请留下您的三连支持哦~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-05-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【今日三题】爱吃素(数学) / 相差不超过k的最多数(滑动窗口) / 最长公共子序列(一)(两个数组的dp)
_小羊_
2025/05/04
910
【今日三题】爱吃素(数学) / 相差不超过k的最多数(滑动窗口) / 最长公共子序列(一)(两个数组的dp)
【今日三题】经此一役小红所向无敌(模拟) / 连续子数组最大和(动态规划) / 非对称之美(贪心)
_小羊_
2025/04/16
360
【今日三题】经此一役小红所向无敌(模拟) / 连续子数组最大和(动态规划) / 非对称之美(贪心)
【今日三题】压缩字符串(模拟) / chika和蜜柑(topK) / 01背包
_小羊_
2025/04/13
770
【今日三题】压缩字符串(模拟) / chika和蜜柑(topK) / 01背包
18级个人训练赛--2
B --Consecutive Integers AtCoder 5037 思路:水题,签到~
杨鹏伟
2020/09/11
3170
人工智能基础-动态规划
田忌赛马中,使用下等马对战上等马,使用上等马和中等马对战中等马和下等马,这就是运筹学的一个应用
DearXuan
2022/01/19
4340
动态规划--Kin
动态规划: 1.最大子序列和 2.LIS最长递增子序列 3.LCS最长公共子序列 4.矩阵连乘 5.数字金字塔 1.最大子序列和 #include<iostream> using namespace std; int maxsub(int a[],int n) { int sum=0,b=0; for(int i=0;i<=n;i++) { if(b>0) b+=a[i]; else b=a[i]; if(b>sum) sum=b; } return s
Kindear
2018/05/09
5480
河工院首届工业设计大赛程序组(挑战赛)题解
本题主要考察四舍五入,C语言中是四舍六入,但是需要四舍五入,则在结果后面加上0.001即可。
浪漫主义狗
2024/05/07
1380
【算法/训练】:动态规划DP
动态规划(Dynamic Programming,DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学等领域中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题
IsLand1314
2024/10/15
4440
【算法/训练】:动态规划DP
河南工程学院2022级新生周赛(三)题解
A. 6男 ---- 原题链接 题目大意: 给定一个字符串 S,求最长的连续的 6 的字串的长度。 S 可能含有空格。 ---- 思想: 签到题。 读入时注意空格。 ---- 代码: #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <cmath> #include <sstream> #include <vector> #include <queue> #include <stac
浪漫主义狗
2022/10/09
3020
动态规划专题刷题记录②:最长上升子序列
朴素的LIS做法,这里展示O(n^2)的做法,思考方法见上方最长上升子序列模型的思考方法。
Here_SDUT
2022/06/29
1.1K0
动态规划专题刷题记录②:最长上升子序列
【今日三题】ISBN号码(模拟) / kotori和迷宫(BFS最短路) / 矩阵最长递增路径(dfs)
_小羊_
2025/05/09
280
【今日三题】ISBN号码(模拟) / kotori和迷宫(BFS最短路) / 矩阵最长递增路径(dfs)
合唱队形【动态规划】【最长递增子序列】
N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK, 则他们的身高满足T1 < T2 < … < Ti , Ti > Ti+1 > … > TK (1 <= i <= K)。 你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。
来杯Sherry
2023/05/25
3260
【今日三题】小红的口罩(小堆) / 春游(模拟) / 数位染色(01背包)
_小羊_
2025/05/06
620
【今日三题】小红的口罩(小堆) / 春游(模拟) / 数位染色(01背包)
动态规划专题——线性DP
给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。
浪漫主义狗
2022/09/21
5990
2019年安徽大学ACM/ICPC实验室新生赛
A.素数分布函数\pi (n)π(n)表示小于或等于n的素数的数目。例如\pi (10)=4π(10)=4(2,3,5,7是素数)。这个函数涉及到许多高等数论的内容,甚至和黎曼猜想挂钩,目前还有很多数学家正在不断探索其中的奥秘。千里之行始于足下,现在你开始关心一个问题:在正整数域中素数的分布是怎么样的。为了探索这个问题,你需要计算出一些\pi (n)π(n)的值。
杨鹏伟
2020/09/11
6740
动态规划-区间DP
文章目录 区间DP 四边形不等式优化 例题 石子合并 回文串 区间DP image.png //朴素DP参考 for (int i = 1; i <= n; i++)dp[i][i]=0; for (int len = 1; len <= n; len++){ //枚举区间长度 for (int i = 1; i <= n - len; i++){ //枚举区间的起点 int j = i + len; //根据起点和长度得出终点 for(int k = i; k
唔仄lo咚锵
2020/09/15
4460
HPU personal-training 2
A - Kefa and Park 题意:就是一棵树,然后本人的家在根上,餐厅在叶子节点上。然后在前往叶子结点的餐厅的时候,途中的结点上有猫,而这个人特别怕毛,如果猫超过M只,那么他就不会走这条路!最终要你输出他能去餐厅的数量,也就是多少条路!
杨鹏伟
2020/09/11
3210
湖南大学程序设计竞赛新生赛(重现赛)
题目链接—点我开启传送门哦! A.题意:就是求任意两个斐波那契数列的最大公约数!
杨鹏伟
2020/09/11
5430
湖南大学程序设计竞赛新生赛(重现赛)
Codeforces Round #725 (Div. 3)
n个石子排成一排,每个石子有一个能力值,且每个石子的能力值各不相同,每次可以销毁最左边的石子或者最右边的石子,问最少几次消除能力值最大和最小的石子。
Here_SDUT
2022/08/08
2910
Codeforces Round #725 (Div. 3)
【今日三题】爱丽丝的人偶(贪心) / 集合(排序) / 最长回文子序列(动态规划)
_小羊_
2025/04/16
400
【今日三题】爱丽丝的人偶(贪心) / 集合(排序) / 最长回文子序列(动态规划)
推荐阅读
相关推荐
【今日三题】爱吃素(数学) / 相差不超过k的最多数(滑动窗口) / 最长公共子序列(一)(两个数组的dp)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验