攀拓(PAT)- 程序设计(乙级)2024年春季考试

news2024/11/27 23:57:50

题目来源:https://pintia.cn/market/item/1767454903977603072

B-1

题目要求

2024 这个数字,可以由 n n n个互不相同的正偶数和 m m m个互不相同的正奇数组合出来吗?本题就请你回答这个问题。

输入格式:

输入在一行中给出一个正整数 K ( K ≤ 10 ) K(K\le 10) K(K10)。随后 K K K行,每行给出一对 n n n m m m,均不超过 1000。

输出格式:

对每一对输入,如果可以由 n n n个互不相同的正偶数和 m m m个互不相同的正奇数相加得到 2024,则在一行中输出 <font style="color:rgb(231, 76, 60);">yes</font>,否则输出 <font style="color:rgb(231, 76, 60);">no</font>

输入样例:

5
57 2
32 30
25 13
19 26
38 40

输出样例:

no
yes
no
yes
no

解题思路

给定 n n n m m m,让我们判断能不能由 n n n个不同的正偶数和 m m m个不同的正奇数组成2024。

正难则反,我们考虑什么情况下不能组成2024。

先从奇偶性判断, n n n个正偶数一定是正偶数,所以要组成2024(偶数), m m m个奇数一定也得是偶数,所以 m m m一定要为偶数。

再从大小判断, n n n个不同的正偶数组成的数最小是 ( 2 + 2 ∗ n ) ∗ n / 2 = ( 1 + n ) ∗ n 2 (2+2*n)*n/2=(1+n)*n^2 (2+2n)n/2=(1+n)n2 m m m个奇数组成的最小的数是 ( 1 + 2 ∗ m − 1 ) ∗ m / 2 = m 2 (1+2*m-1)*m/2=m^2 (1+2m1)m/2=m2,所以 ( 1 + n ) ∗ n 2 + m 2 ≤ 2024 (1+n)*n^2+m^2\le 2024 (1+n)n2+m22024

满分代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int K = scanner.nextInt();
        int m = 0;
        int n = 0;
        int s1 = 0;
        int s2 = 0;
        while (K-- > 0) {
            m = scanner.nextInt();
            n = scanner.nextInt();
            if (n % 2 != 0) {
                if(K==0){
                    System.out.print("no");
                }else {
                    System.out.println("no");
                }
                continue;
            }
            //            s1=(2+m*2)*m/2;
            s1=(1+m)*m;
            //            s2=(1+n*2-1)*n/2;
            s2=n*n;
            if (s1 + s2 <= 2024) {
                if(K==0){
                    System.out.print("yes");
                }else {
                    System.out.println("yes");
                }
            }else{
                if(K==0){
                    System.out.print("no");
                }else {
                    System.out.println("no");
                }
            }
        }
    }
}

B-2

题目要求

判断一个正整数 N N N除以 99 的余数 r r r时,可以把这个数从右向左每 2 位数断开成一个数字,得到的数字求和,再除以 99,得到的余数一定还是 r r r。例如 12345 % 99 = (1+23+45) % 99 = 69。但如果你从左向右断开就会出错,例如 (12+34+5)%99 = 51 就得不到正确答案了。然而有这么一些数字,两个方向断开计算的结果正好是一样的,比如偶数位的所有数字…… 那么奇数位的数字有没有双向断开都正确的呢?答案是:有。我们给这种“双向断开都正确”的数字取名为“真爱 99”数。本题就请你判断一个给定的数字是否真爱 99。

输入格式:

输入第一行给出 1 个正整数 n ( 3 ≤ n ≤ 100 ) n(3\le n\le 100) n(3n100),随后 n n n行,每行给出一个需要判断的正整数 N ( ≤ 10 1000 ) N(\le {10}^{1000}) N(101000)。题目保证输入的数字没有多余的前导零。

输出格式:

对每个需要判断的数字,如果它是真爱 99,就在一行中输出 <font style="color:rgb(231, 76, 60);">yes</font>,否则输出 <font style="color:rgb(231, 76, 60);">no</font>

输入样例:

5
12345
54123
1234
90217352811402416
187438345730263655307266542930923

输出样例:

no
yes
yes
yes
no

满分代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = Integer.parseInt(scanner.nextLine());
        String str = "";
        int leftToRight = 0;
        int rightToLeft = 0;
        while (n-- > 0) {
            str = scanner.nextLine();
            if (str.length() % 2 == 0) {
                System.out.println("yes");
                continue;
            }
            leftToRight = 0;
            rightToLeft = 0;
            for (int i = 0; i < str.length() - 1; i=i+2) {
                leftToRight = (leftToRight + Integer.parseInt(str.substring(i,i+2)))%99;
            }
            leftToRight=(leftToRight+Integer.parseInt(str.substring(str.length()-1)))%99;
            for (int i = str.length() - 1; i >=1 ; i=i-2) {
                rightToLeft = (rightToLeft + Integer.parseInt(str.substring(i-1,i+1)))%99;
            }
            rightToLeft =(rightToLeft + Integer.parseInt(str.substring(0,1)))%99;
            if (leftToRight==rightToLeft){
                System.out.println("yes");
            }else {
                System.out.println("no");
            }
        }
    }
}

B-3

给定 n n n个单词,如果我们将每个单词存在一个数组里,所有数组的长度都取同一个固定值,则最少要耗费多少存储空间?这里假设 ASCII 码中,一个英文字母占一个字节的空间。例如对 2 个单词 <font style="color:rgb(231, 76, 60);">pat</font><font style="color:rgb(231, 76, 60);">test</font>,我们需要长度为 4 的数组存 <font style="color:rgb(231, 76, 60);">pat</font>,长度为 5 的数组存 <font style="color:rgb(231, 76, 60);">test</font> —— 这里假设用 C 语言的存储方式,字符串末尾的结束符也占一个字节 —— 则两者都可用的数组长度就是 5。

输入格式:

输入第一行首先给出一个正整数 n ( ≤ 1 0 5 ) n(\le 10^5) n(105),是单词的数量。随后 n n n行,每行给出一个单词,为仅由小写英文字母组成的非空字符串,以回车结尾。

输出格式:

在一行中,首先输出存储单词的定长字符串的长度(注意字符串结束符也占一个字节),然后输出存储这些单词一共需要多少空间,以字节为单位。两个数字间以 1 个空格分隔,行首尾不得有多余空格。
题目保证输出的数字不会超过 1 0 8 10^8 108

输入样例:

5
programming
contest
internationalization
pneumonoultramicroscopicsilicovolcanoconiosis
hippopotomonstrosesquippedaliophobia

输出样例:

46 230

解题思路

其实就是找到最长的字符串,那么我们需要的数组长度就为最长的字符串长度+1(回车符)。

满分代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = Integer.parseInt(scanner.nextLine());
        int m = n;
        int max = 0;
        while (n-- > 0) {
            max = Math.max(max, scanner.nextLine().length());
        }
        max++;
        System.out.print(max);
        System.out.print(" ");
        System.out.println(m*max);
    }
}

B-4

给定一张纸,你需要识别上面的盲文数字。

盲文一般由一个三行两列的凸出或不凸出的点表示,我们以<font style="color:rgb(231, 76, 60);">*</font>表示凸出,<font style="color:rgb(231, 76, 60);">.</font>表示不凸出。盲文的数字表达一般有两种形式,其中布莱叶式如下所示:

为方便解题,以下是文字版:

1234567890
*. … …. . …** … …** .* …. . …** *. …** ** …*. ** ….* *. ….* ** …

纸以 N × M N\times M N×M的格子给出,请统计纸上每种盲文数字分别有多少个。

题目要求

输入格式:

输入第一行是两个正整数。

接下来的 N N N行,每行 M M M个字符,表示纸上的符号。字符只会是 <font style="color:rgb(231, 76, 60);">*</font><font style="color:rgb(231, 76, 60);">.</font>

数据可能存在因重叠而导致的重复计算情况,如下:

****
....
....

对于这种情况,你应该计算为 3 个 “3”。

输出格式:

输出一行 10 个数,分别是盲文的 1、2、3、4、5、6、7、8、9、0 在纸上有多少个。数字间以 1 个空格分隔,行首尾不得有多余空格。

输入样例:

7 10
..........
.*..**....
..........
..........
.***......
..*.......
..........

输出样例:

3 0 1 1 0 1 0 0 0 0

解题思路

我对每个数字(0-9)进行了唯一的数值定义,使得每个数字与数值有了一对一的关系,对应代码如下:

        HashMap<Integer, Integer> map = new HashMap<>();
        map.put(1, 1);
        map.put(101, 2);
        map.put(11, 3);
        map.put(1011, 4);
        map.put(1001, 5);
        map.put(111, 6);
        map.put(1111, 7);
        map.put(1101, 8);
        map.put(110, 9);
        map.put(1110, 0);

满分代码

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        HashMap<Integer, Integer> map = new HashMap<>();
//        map.put(1, 1);
//        map.put(2, 101);
//        map.put(3, 11);
//        map.put(4, 1011);
//        map.put(5, 1001);
//        map.put(6, 111);
//        map.put(7, 1111);
//        map.put(8, 1101);
//        map.put(9, 110);
//        map.put(0, 1110);
        map.put(1, 1);
        map.put(101, 2);
        map.put(11, 3);
        map.put(1011, 4);
        map.put(1001, 5);
        map.put(111, 6);
        map.put(1111, 7);
        map.put(1101, 8);
        map.put(110, 9);
        map.put(1110, 0);
        Scanner scanner = new Scanner(System.in);
        String[] s = scanner.nextLine().split(" ");
        int[] answer = new int[10];
        int N = Integer.parseInt(s[0]);
        int M = Integer.parseInt(s[1]);
        ArrayList<String> list = new ArrayList<>();
        for (int i = 0; i < N; i++) {
            list.add(scanner.nextLine());
        }
        int temp = 0;
        for (int i = 0; i < N - 2; i++) {
            for (int j = 0; j < M - 1; j++) {
                temp = 0;
                if (list.get(i).charAt(j) == '*') {
                    temp = temp + 1;
                }
                if (list.get(i).charAt(j + 1) == '*') {
                    temp = temp + 10;
                }
                if (list.get(i + 1).charAt(j) == '*') {
                    temp = temp + 100;
                }
                if (list.get(i + 1).charAt(j + 1) == '*') {
                    temp = temp + 1000;
                }
                if (list.get(i + 2).charAt(j) == '*') {
                    temp = temp + 10000;
                }
                if (list.get(i + 2).charAt(j + 1) == '*') {
                    temp = temp + 100000;
                }
                if (map.containsKey(temp)) {
                    answer[map.get(temp)]++;
                }
            }
        }
        for (int i = 1; i < answer.length; i++) {
            System.out.print(answer[i]+" ");
        }
        System.out.println(answer[0]);
    }
}

B-5

题目要求

在攀拓考试的能力评估报告中,需要用 AI(人工智能)算法,根据考生的表现自动生成一段评语。本题并不是要求你写出生成评语用的代码,只是要求你准备好调用这个算法的输入数据。
首先,已经有算法为每位考生计算出了 5 个维度的能力评估值,分别是:基础知识、进阶知识、熟练度、准确性、专业性。我们不妨将这些维度从 1 到 5 顺次编号。每个能力评估值都是 [0, 100] 区间内的整数。你先要获得每一个维度上所有 N N N位考生的中位线值 —— 如果 N N N是奇数,那么中位线是从大到小第 ( N + 1 ) / 2 (N+1)/2 (N+1)/2个值;如果 N N N是偶数,那么中位线是从大到小第 N / 2 N/2 N/2个值。随后对每位考生,比较其能力评估值 ( v 1 , v 2 , ⋯   , v 5 ) (v_1,v_2,\cdots,v_5) (v1,v2,,v5)与对应的中位线值 ( m 1 , m 2 , ⋯   , m 5 ) (m_1,m_2,\cdots,m_5) (m1,m2,,m5)。如果 v i ≥ m i v_i\ge m_i vimi,则将第 i i i个维度记入正向反馈类,否则记入负向反馈类。

输入格式:

输入首先在第一行给出两个正整数 N N N M M M ( 1 ≤ M ≤ N ≤ 1 0 5 ) (1\le M\le N\le 10^5) (1MN105),分别是考生总人数和需要查询的考生人数。随后 N N N行,每行给出一位考生的信息,格式为:

准考证号 v1 v2 v3 v4 v5

其中<font style="color:rgb(231, 76, 60);">准考证号</font>是长度不超过 12 的、由英文字母和数字组成的字符串,后面跟的 5 个数值是该考生的 5 个维度的能力评估值。
最后是 M M M行,每行给出一个需要查询的<font style="color:rgb(231, 76, 60);">准考证号</font>

输出格式:

对每个需要查询的<font style="color:rgb(231, 76, 60);">准考证号</font>,在一行中输出其正向和负向反馈类的信息,格式为:首先按 v i − m i v_i-m_i vimi的数值非递增顺序输出正向反馈类中维度的编号,然后按 m i − v i m_i-v_i mivi的数值非递减顺序输出负向反馈类中维度的编号,但这个编号前要加负号 <font style="color:rgb(231, 76, 60);">-</font>。如果同类中差值有并列,则按维度编号递增序输出。
所有 5 个维度编号输出在一行,其间以 1 个空格分隔。行首尾不得有多余空格。
如果查询的准考证号不存在,则在对应一行中输出 <font style="color:rgb(231, 76, 60);">Not Found</font>

输入样例:

5 3
A20190289 98 74 35 88 60
B20018372 86 86 86 72 60
A19873001 62 48 55 20 35
T27346900 76 54 68 81 70
B00247834 92 68 78 50 66
T27346900
F19993001
B20018372

输出样例:

5 4 3 -1 -2
Not Found
2 3 1 4 5

解题代码

没什么简化思路,纯粹暴力解,可惜部分超时了。

import java.util.ArrayList;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        String[] split = line.split(" ");
        int N = Integer.parseInt(split[0]);
        int M = Integer.parseInt(split[1]);
        int level1 = 0;
        int level2 = 0;
        int level3 = 0;
        int level4 = 0;
        int level5 = 0;
        LinkedList<Integer> level1_list = new LinkedList<>();
        LinkedList<Integer> level2_list = new LinkedList<>();
        LinkedList<Integer> level3_list = new LinkedList<>();
        LinkedList<Integer> level4_list = new LinkedList<>();
        LinkedList<Integer> level5_list = new LinkedList<>();
        LinkedList<Student> students = new LinkedList<>();
        int k=0;
        while (k++<N) {
            String[] str = scanner.nextLine().split(" ");
            level1 = Integer.parseInt(str[1]);
            level2 = Integer.parseInt(str[2]);
            level3 = Integer.parseInt(str[3]);
            level4 = Integer.parseInt(str[4]);
            level5 = Integer.parseInt(str[5]);
            level1_list.add(level1);
            level2_list.add(level2);
            level3_list.add(level3);
            level4_list.add(level4);
            level5_list.add(level5);
            students.add(new Student(str[0], level1, level2, level3, level4, level5));
        }
        level1_list.sort((o1, o2) -> o2 - o1);
        level2_list.sort((o1, o2) -> o2 - o1);
        level3_list.sort((o1, o2) -> o2 - o1);
        level4_list.sort((o1, o2) -> o2 - o1);
        level5_list.sort((o1, o2) -> o2 - o1);
        int level1_med = 0;
        int level2_med = 0;
        int level3_med = 0;
        int level4_med = 0;
        int level5_med = 0;
        if (N % 2 == 0) {
            level1_med = level1_list.get(N / 2-1);
            level2_med = level2_list.get(N / 2-1);
            level3_med = level3_list.get(N / 2-1);
            level4_med = level4_list.get(N / 2-1);
            level5_med = level5_list.get(N / 2-1);
        } else {
            level1_med = level1_list.get((N + 1) / 2-1);
            level2_med = level2_list.get((N + 1) / 2-1);
            level3_med = level3_list.get((N + 1) / 2-1);
            level4_med = level4_list.get((N + 1) / 2-1);
            level5_med = level5_list.get((N + 1) / 2-1);
        }
        int flag = -1;
        int x = 0;
        while (x++ < M) {
            line = scanner.nextLine();
            flag = -1;
            for (int i = 0; i < students.size(); i++) {
//                System.out.println(line);
//                System.out.println(students.get(i).id);
                if (students.get(i).id.equals(line)) {
                    flag = i;
                    break;
                }
            }
            if (flag == -1) {
                System.out.println("Not Found");
                continue;
            }
            ArrayList<Cha> cha = new ArrayList<>();
//        for (int i = 0; i < students.size(); i++) {
//            students.get(i).level1_cha=level1-level1_med;
//            students.get(i).level2_cha=level2-level2_med;
//            students.get(i).level3_cha=level3-level3_med;
//            students.get(i).level4_cha=level4-level4_med;
//            students.get(i).level5_cha=level5-level5_med;
            cha.add(new Cha(students.get(flag).level1 - level1_med, 1));
            cha.add(new Cha(students.get(flag).level2 - level2_med, 2));
            cha.add(new Cha(students.get(flag).level3 - level3_med, 3));
            cha.add(new Cha(students.get(flag).level4 - level4_med, 4));
            cha.add(new Cha(students.get(flag).level5 - level5_med, 5));
            cha.sort(new Comparator<Cha>() {
                @Override
                public int compare(Cha o1, Cha o2) {
                    return o2.cha-o1.cha;
                }
            });
            for (int i = 0; i < cha.size(); i++) {
                if (cha.get(i).cha<0){
                    System.out.print("-");
                }
                if (i==cha.size()-1){
                    System.out.print(cha.get(i).id);
                }else {
                    System.out.print(cha.get(i).id+" ");
                }
            }
            System.out.println();

        }

    }
}
//}

class Student {
    String id;
    int level1;
    int level2;
    int level3;
    int level4;
    int level5;
    int level1_cha;
    int level2_cha;
    int level3_cha;
    int level4_cha;
    int level5_cha;

    public Student() {
    }

    public Student(String id, int level1, int level2, int level3, int level4, int level5) {
        this.id = id;
        this.level1 = level1;
        this.level2 = level2;
        this.level3 = level3;
        this.level4 = level4;
        this.level5 = level5;
    }
}

class Cha {
    int cha;
    int id;

    public Cha(int cha, int id) {
        this.cha = cha;
        this.id = id;
    }
}

参考资料

https://mp.weixin.qq.com/s/Jqog451vSObXJf7Y1W7SlA

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2235748.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32 BootLoader 刷新项目 (九) 跳转指定地址-命令0x55

STM32 BootLoader 刷新项目 (九) 跳转指定地址-命令0x55 前面我们讲述了几种BootLoader中的命令&#xff0c;包括获取软件版本号、获取帮助、获取芯片ID、读取Flash保护Level。 下面我们来介绍一下BootLoader中最重要的功能之一—跳转&#xff01;就像BootLoader词汇中的Boot…

VTK知识学习(2)-环境搭建

1、c方案 1.1下载源码编译 官网获取源码。 利用Cmake进行项目构建。 里面要根据实际使用的情况配置相关的模块哟&#xff0c;这个得你自行研究下了。 CMAKEINSTALLPREFIX--这个选项的值表示VTK的安装路径&#xff0c;默认的路径是C:/Program Files/VTK。该选项的值可不作更…

Chrome(谷歌浏览器中文版)下载安装(Windows 11)

目录 Chrome_10_30工具下载安装 Chrome_10_30 工具 系统&#xff1a;Windows 11 下载 官网&#xff1a;https://chrome.google-zh.com/&#xff0c;点击立即下载 下载完成&#xff08;已经下过一遍所以点了取消&#xff09; 安装 解压&#xff0c;打开安装包 点击下一步…

如何在算家云搭建Aatrox-Bert-VITS2(音频生成)

一、模型介绍 ‌ Aatrox - Bert -VITS2 模型是一种基于深度学习的语音合成系统&#xff0c;结合了 BERT 的预训练能力和 VITS2 的微调技术&#xff0c;旨在实现高质量的个性化语音合成。 二、模型搭建流程 1. 创建容器实例 进入算家云的“应用社区”&#xff0c;点击搜索找到…

232转485模块测试

概述 常用的PLC一般会有两个左右的232口&#xff0c;以及两个左右的485口&#xff0c;CAN口等&#xff0c;但是PLC一般控制的设备可能会有很多&#xff0c;会超出通讯口的数量&#xff0c;此时我们一般会采用一个口接多个设备&#xff0c;这种情况下要注意干扰等因素&#xff0…

静态数组类型无法用“=“给整个静态数组赋值

基础知识&#xff1a; 什么是静态数组类型&#xff1f; 在 C 中&#xff0c;静态数组是一种在编译时大小固定的数组。这意味着一旦声明&#xff0c;静态数组的大小就不能改变。 ------ 你可以声明一个静态数组并选择性地初始化它&#xff1a; int arr[10]; // 声明一个包…

使用 Python 调用云 API 实现批量共享自定义镜像

本文介绍如何通过 Python SDK 调用 API 接口&#xff0c;通过子用户批量共享云服务器自定义镜像。若您具备类似需求&#xff0c;或想了解如何使用 SDK&#xff0c;可参考本文进行操作。 前提条件 已创建子用户&#xff0c;并已具备云服务器及云 API 所有权限。 创建子用户请…

【旷视科技-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

GISBox VS ArcGIS:分别适用于大型和小型项目的两款GIS软件

在现代地理信息系统&#xff08;GIS&#xff09;领域&#xff0c;有许多大家耳熟能详的GIS软件。它们各自具有独特的优势&#xff0c;适用于不同的行业需求和使用场景。在众多企业和开发者面前&#xff0c;如何选择合适的 GIS 软件成为了一个值得深入思考的问题。今天&#xff…

【Spring】Spring Web MVC基础入门~(含大量例子)

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;什么是Spring Web MVC 1&#xff1a;Servlet 2&#xff1a;总结 二&#xff1a;MVC …

数组类算法【leetcode】

704. 二分查找 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 二分查找 用于有序数组中&#xff0c;没有重复的数组。…

24/11/7 算法笔记 PCA主成分分析

假如我们的数据集是n维的&#xff0c;共有m个数据(x,x,...,x)。我们希望将这m个数据的维度从n维降到k维&#xff0c;希望这m个k维的数据集尽可能的代表原始数据集。我们知道数据从n维降到k维肯定会有损失&#xff0c;但是我们希望损失尽可能的小。那么如何让这k维的数据尽可能表…

wxWidgets布局管理及XRC界面使用解惑

wxWidgets布局&#xff0c;通常就是wxBoxSizer&#xff0c;当然还有别的Sizer&#xff0c;就像Qt中的Layout一样&#xff0c;各种布局管理类。只是如今的wxWidgets尚未发展起来&#xff0c;一般其他的你用的比较少&#xff0c;因为这个最简单&#xff0c;最容易布局&#xff0c…

【开源免费】基于SpringBoot+Vue.JS医院管理系统(JAVA毕业设计)

博主说明&#xff1a;本文项目编号 T 062 &#xff0c;文末自助获取源码 \color{red}{T062&#xff0c;文末自助获取源码} T062&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

【循环引用及格式化输出】

垃圾回收机制 当一个值在内存中直接引用跟间接引用的量为0时&#xff0c;&#xff08;即这个值没有任何入口可以找到它&#xff09;那么这个值就会被清空回收♻️&#xff0c;释放内存空间&#xff1b; 列表在内存中的存储方式 1&#xff09;引用计数的两种方式 x "ea…

31.7K+ Star!AgentGPT:一个在浏览器中运行的Agent

AgentGPT 简介 AgentGPT[1] 是一个可以让你在浏览器中组装、配置和部署自主AI代理的项目。你可以为你的自定义AI命名,并让它去实现任何你想象中目标。它将尝试通过思考要执行的任务、执行它们并从结果中学习来达成目标。 项目特点 主要特点 自主AI代理:用户可以自定义AI并赋…

【大模型】通过Crew AI 公司的崛起之路学习 AI Agents 的用法

AI 技术的迅猛发展正以前所未有的速度重塑商业格局&#xff0c;而 AI Agents&#xff0c;作为新一代的智能自动化工具&#xff0c;正逐步成为创新型公司的核心力量。在本文中&#xff0c;我们将探讨如何利用 AI Agents 构建一家 AI 驱动的公司&#xff0c;并详细了解 Crew AI 创…

【Uniapp】Uniapp Android原生插件开发指北

前言 在uniapp开发中当HBuilderX中提供的能力无法满足App功能需求&#xff0c;需要通过使用Andorid/iOS原生开发实现时&#xff0c;或者是第三方公司提供的是Android的库&#xff0c;这时候可使用App离线SDK开发原生插件来扩展原生能力。 插件类型有两种&#xff0c;Module模…

网页版五子棋——用户模块(服务器开发)

前一篇文章&#xff1a;网页版五子棋—— WebSocket 协议-CSDN博客 目录 前言 一、编写数据库代码 1.数据库设计 2.配置 MyBatis 3.创建实体类 4.创建 UserMapper 二、前后端交互接口 1.登录接口 2.注册接口 3.获取用户信息 三、服务器开发 1.代码编写 2.测试后端…

Jenkins声明式Pipeline流水线语法示例

系列文章目录 docker搭建Jenkins2.346.3版本及常用工具集成配置(ldap、maven、ansible、npm等) docker安装低版本的jenkins-2.346.3,在线安装对应版本插件失败的解决方法 文章目录 系列文章目录jenkins流水线基础1、pipeline1.1、什么是pipeline&#xff1f;1.2、为什么使用pi…