3.21 OJ

一、

题目:

我素故我在

作者: xxx

时间限制: 1s

章节: 深度优先搜索

问题描述

有这样一种素数叫纯素数(YY出来的名字),当它是一个多位数的时候,你把它的末位去掉之后余下的数依然是一个素数。比如说2393,2393 本身是一个素数,它的末位去掉之后,余下的是239。239 是一个素数,它的末位去掉之后,余下的是23 。23是一个素数,它的末位去掉之后,余下的是2 。2依然还是一个素数。纯素数的长度叫做"维"。2393 是一个4维素数。3797也是一个4维素数。

输入说明

第一行先给出一共有多少组数据N(N<=1000),接下来有N组数据.

每组包括一个整数T(1<=T<=8)。

输出说明

按照从小到大的顺序输出所有的T维纯素数。

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
bool is(int a)
{
    if(a < 2) return false;
    for(int i = 2; i * i <= a; i++)
    {
        if(a % i == 0) return false;
    }
    return true;
}
void dfs(int num,int len,int end)
{
    if(len==end)
    {
        cout<<num<<endl;
        return ;
    }
    for(int i=1;i<=9;i++)
        {
            int next=num*10+i;
            if(is(next))
            {
                dfs(next,len+1,end);
            }
        }
}
int main()
{
    int n;
    cin>>n;
    for(int loop=1;loop<=n;loop++)
        {
            int m;
            cin>>m;
            dfs(2,1,m);
            dfs(3,1,m);
            dfs(5,1,m);
            dfs(7,1,m);
        }
    //总结:利用了dfs的思想,主要是利用增个位的思想,一位一位找,当位数到达要求就输出并返回 是dfs一个个穷举的方法
    return 0;
}

总结:利用了dfs的思想,主要是利用增个位的思想,一位一位找,当位数到达要求就输出并返回 是dfs一个个穷举的方法

二、

汉诺塔问题的第m步

作者: Turbo

时间限制: 3s

章节: 递归

问题描述

给定三根杆A、B、C和大小不同的几个盘子。这些盘子按尺寸递减顺序套在A杆上,最小的在最上面。现在的任务是把这些盘子从A杆移到C杆且保持原来堆放顺序。在实现任务时,每次只能移动一个盘子,且任何时刻不允许大的盘子放在小的盘子上面,B杆可以作为辅助存放杆。求:总共有n个圆盘时,搬动过程中的第m步是从哪个杆到哪个杆。

输入说明

你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据。每组输入数据由一行组成,每行输入一个整数表示盘子数n,1≤n≤10,以及步数m,两个数据之间以一个空格分隔。行首和行尾没有多余的空格,两组数据之间也没有多余的空行。

输出说明

对每组测试数据,你的程序需要向标准输出设备(通常为启动该程序的终端)依次输出一行对应的答案,该行中输出第m步移动的情况,如第m步是从A移到B,则输出"A--B"(不包括引号)。如果移动过程不存在第m步,则输出"none" (不包括引号)。

两组数据之间无空行,第一组前及最后一组后也无空行。

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

int cnt;        // 当前是第几步
int target;     // 要找第m步

// n:盘子数,from->to,借助aux
void hanoi(int n, char from, char aux, char to)
{
    if(n == 0) return;

    // 1. n-1 从 from -> aux
    hanoi(n-1, from, to, aux);

    // 2. 当前这一步
    cnt++;
    if(cnt == target)
    {
        cout << from << "--" << to << endl;
        return;
    }

    // 3. n-1 从 aux -> to
    hanoi(n-1, aux, from, to);
}

int main()
{
    int n, m;

    while(cin >> n >> m)
    {
        cnt = 0;
        target = m;

        int total = (1 << n) - 1;  // 总步数

if(m <= 0 || m > total)
{
    cout << "none" << endl;
    continue;
}

        hanoi(n, 'A', 'B', 'C');
    }
//总结:整体思想就是 递归加整体化 把很多个盘子分成两碟第n个和其余n-1个,模拟两堆的移动过程,同时这个递归思想是from aux to 假如要A-B 就是设辅助为C 同时最大值应该是2的n次方-1
    return 0;
}

总结:整体思想就是 递归加整体化 把很多个盘子分成两碟第n个和其余n-1个,模拟两堆的移动过程,同时这个递归思想是from aux to 假如要A-B 就是设辅助为C 同时最大值应该是2的n次方-1

三、

数字游戏

作者: xxx

时间限制: 1s

章节: 递归

问题描述

现在,有许多给小孩子玩的数字游戏,这些游戏玩起来简单,但要创造一个就不是那么容易的了。 在这,我们将介绍一种有趣的游戏。

你将会得到N个正整数,你可以将一个整数接在另一个整数之后以制造一个更大的整数。 例如,这有4个数字123, 124, 56, 90,他们可以制造下列整数─ 1231245690, 1241235690, 5612312490, 9012312456, 9056124123....等,总共可以组合出24(4!)种数字。 但是,9056124123是最大的那一个。

你可能会想这是个简单的事情,但对刚有数字概念小孩来说,这会是个简单的任务吗?

输入说明

输入含有多组测试数据。

每组测试资料两行,第一行为一个正整数N(N<= 50),第二行将有N 个正整数。

当N=0代表输入结束。

输出说明

对每一组测试数据,输出一行,输出利用这N个整数可结合成的最大整数。

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

bool cmp(string a, string b)
{
    return a + b > b + a;
}

int main()
{
    int n;
    while(cin >> n)
    {
        if(n == 0) break;

        vector<string> v(n);

        for(int i = 0; i < n; i++)
        {
            cin >> v[i];
        }

        sort(v.begin(), v.end(), cmp);

        string res = "";
        for(auto s : v)
        {
            res += s;
        }

        cout << res << endl;
    }
    //总结:因为上个递归方法超时 发现这道题目有内在规律 我只要对字符串进行排序大值在前就可以
}

总结:因为上个递归方法超时 发现这道题目有内在规律 我只要对字符串进行排序大值在前就可以

四、

翻译:

Generative artificial intelligencerefers to a class of AI technologies that can generate new content such as text, images, and audio. Unlike traditional discriminative models, generative models learn the distribution of data and produce new samples based on learned patterns. In recent years, with the advancement of deep learning techniques, generative models have achieved significant progress in many fields. For instance, generative adversarial networks and large language models are capable of producing high-quality images and natural language text. These technologies have broad application prospects in areas such as content creation, intelligent assistants, and virtual reality. However, generative AI also introduces challenges such as the spread of misinformation and copyright protection issues. Therefore, how to strengthen regulation while promoting technological development has become an important research topic.

生成式 人工智能指的是一类可以生成像文本,图像,音频等新内容的人工智能技术。并不像传统的判别式的模型 ,生成式的模型学习数据之间的分布 并基于学习到的模式生产出新的**样品。**在最近几年,随着深度学习技术的发展,生成式模型已经在很多领域取得了意义非凡的成果。例如,生成对抗网络和大语言模型能生产出高质量的图像和自然语言文本。这些技术已经在很多地方例如文本生成,智能助手和虚拟现实具有广阔的应用前景。然而生成式AI也带来了很多挑战,比如不实信息的传播和版权保护问题。因此,如何在促进技术发展的同时去加强管理已经变成了一个很重要的研究主题。

相关推荐
Book思议-2 小时前
【数据结构考研真题】链表大题
c语言·数据结构·考研·算法·链表·408·计算机考研
m0_528174452 小时前
ZLibrary反爬机制概述
开发语言·c++·算法
你这个代码我看不懂2 小时前
引用计数法存在的问题
java·jvm·算法
yunyun321232 小时前
嵌入式C++驱动开发
开发语言·c++·算法
Storynone2 小时前
【Day29】LeetCode:62. 不同路径,63. 不同路径 II,343. 整数拆分,96. 不同的二叉搜索树
python·算法·leetcode
小O的算法实验室2 小时前
2025年SEVC SCI2区,基于强化学习辅助粒子群算法的污水处理厂进水流量估算及出水调度问题研究,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
2301_785403522 小时前
代码随想录算法营总结
算法
yeflx2 小时前
三维空间坐标转换早期笔记
人工智能·算法·机器学习
格林威3 小时前
C++ 工业视觉实战:Bayer 图转 RGB 的 3 种核心算法(邻域平均、双线性、OpenCV 源码级优化)
开发语言·c++·人工智能·opencv·算法·计算机视觉·工业相机