25.4.3学习总结【Java】

news2025/4/10 18:32:32

又是一道错题:

1. 班级活动https://www.lanqiao.cn/problems/17153/learning/?page=1&first_category_id=1&sort=difficulty&asc=1&second_category_id=3

问题描述

小明的老师准备组织一次班级活动。班上一共有 n 名 (n 为偶数) 同学,老师想把所有的同学进行分组,每两名同学一组。为了公平,老师给每名同学随机分配了一个 n 以内的正整数作为 id,第 i 名同学的 id 为 ai。

老师希望通过更改若干名同学的 id 使得对于任意一名同学 i,有且仅有另一名同学 j 的 id 与其相同 (ai=aj)。请问老师最少需要更改多少名同学的 id?

输入格式

输入共 2 行。

第一行为一个正整数 n。

第二行为 n 个由空格隔开的整数 a1,a2,...,an​。

输出格式

输出共 1 行,一个整数。

评测用例规模与约定

对于 20%的数据,保证 n≤10^3。

对于 100%的数据,保证 n≤10^5。

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
    int a;
    scanf("%d",&a);
    int *b=(int*)calloc(100005,sizeof(int));
    for(int i=0;i<a;i++){
        int temp;
        scanf("%d",&temp);
        b[temp]++;
    }
    int count=0;
    for(int i=0;i<100005;i++){
        if(b[i]>2)count+=(b[i]-2);
        if (b[i]==1)count++;
    }
    printf("%d\n",count/2);
    free(b);
    return 0;
}

对上次的题再次的错解28/54:

#define max(a,b) (((a)>(b))?(a):(b))
long long mostPoints(int questions[][2], int questionsSize, int* questionsColSize) {
    long long record[questionsSize+1];
    for(int i=0;i<questionsSize+1;i++) {
      record[i] = 0;
    }
    for(int i=0;i<questionsSize;i++) {
      const int temp=i+1+questions[i][1],prior=record[i];
      record[i]=record[i]+questions[i][0];
      if (temp<questionsSize) {
        record[temp]=max(record[temp],record[i]);
      }else {
        record[questionsSize]=max(prior+questions[i][0],record[questionsSize]);
      }
    }
    return max(record[questionsSize-1],record[questionsSize]);
}

 网络编程(作业):

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;

public class d1 {
    public static void main(String[] args) throws IOException {
        Socket socket = new Socket("127.0.0.1", 10000);
        System.out.println("用户3");
        new Thread(()->{
            try(InputStreamReader isr = new InputStreamReader(socket.getInputStream())){
                char []data = new char[1024];
                int len;
                while((len=isr.read(data))!=-1){
                    System.out.print("【群消息】"+new String(data,0,len));
                }
            }catch(IOException e){
                System.out.println("连接已断开!");
            }
        }).start();
        try(OutputStream os = socket.getOutputStream()){
            Scanner sc = new Scanner(System.in);
            while(true){
                String s = sc.nextLine();
                if(s.equals("exit"))break;
                os.write((s+"\n").getBytes());
            }
        }
        socket.close();
    }
}

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicInteger;
public class d2 {
    static CopyOnWriteArrayList<Socket> list=new CopyOnWriteArrayList<>();
    static AtomicInteger count=new AtomicInteger(0);
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(10000);
        System.out.println("服务器成功启动!");
        while (true) {
            Socket socket = serverSocket.accept();
            list.add(socket);
            new Thread(new d3(socket,count.incrementAndGet())).start();
        }
    }
}

import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
public class d3 implements Runnable {
    Socket socket;
    int num;
    public d3(Socket socket,int num) {
        this.socket = socket;
        this.num = num;
    }
    @Override
    public void run() {
        InputStreamReader in;
        try {
            in = new InputStreamReader(socket.getInputStream());
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        int temp;
        StringBuilder message = new StringBuilder();
        System.out.println("用户"+num+"连接成功!当前在线人数为:"+d2.list.size());
        while (true) {
            try {
                if ((temp = in.read()) == -1) break;
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
            if((char)temp!='\n')message.append((char)temp);
            else {
                broadcast(message.toString());
                message.setLength(0);
            }
        }
        d2.list.remove(socket);
        String temp1="用户"+num+"断开连接!剩余在线:"+d2.list.size();
        System.out.println(temp1);
        broadcast(temp1);
        try {
            socket.close();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    public void broadcast(String message){
        for(Socket list :d2.list){
            try{
                if (list != socket && !list.isClosed()) {
                    list.getOutputStream().write(("用户"+num+":"+message + "\n").getBytes());
                }
            }catch (Exception e){
                d2.list.remove(list);
            }
        }
    }
}

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

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

相关文章

运维之 Centos7 防火墙(CentOS 7 Firewall for Operations and Maintenance)

运维之 Centos7 防火墙 1.介绍 Linux CentOS 7 防火墙/端口设置&#xff1a; 基础概念&#xff1a; 防火墙是一种网络安全设备&#xff0c;用于监控和控制网络流量&#xff0c;以保护计算机系统免受未经授权的访问和恶意攻击。Linux CentOS 7操作系统自带了一个名为iptables的…

开发一个小程序需要多久时间?小程序软件开发周期

开发一个小程序所需时间受多种因素影响&#xff0c;以下为你详细列举&#xff1a; 一、需求复杂度。若只是简单展示类小程序&#xff0c;如企业宣传、产品介绍&#xff0c;功能单一&#xff0c;大概 1 - 2 周可完成。若涉及复杂交互&#xff0c;像电商小程序&#xff0c;涵盖商…

【数据结构篇】算法征途:穿越时间复杂度与空间复杂度的迷雾森林

文章目录 【数据结构篇】算法征途&#xff1a;穿越时间复杂度与空间复杂度的迷雾森林 一、 什么是算法1. 算法的定义1.1 算法的五个特征1.2 好算法的特质 2. 时间复杂度3. 空间复杂度 【数据结构篇】算法征途&#xff1a;穿越时间复杂度与空间复杂度的迷雾森林 &#x1f4ac;欢…

新增帧能耗指标|UWA Gears V1.0.9

UWA Gears 是UWA最新发布的无SDK性能分析工具。针对移动平台&#xff0c;提供了实时监测和截帧分析功能&#xff0c;帮助您精准定位性能热点&#xff0c;提升应用的整体表现。 本次版本更新主要新增帧能耗指标&#xff0c;帮助大家对每一帧的能耗进行精准监控&#xff0c;快速…

蓝桥杯嵌入式16届———LCD模块

LCD有官方给我们提供的库&#xff0c;我们使用其非常简单&#xff0c;唯一要注意的就是LCD和LED的引脚冲突。 引脚状况 STM32CubeMX 端口配置 使能 比赛给的选手 资源数据包中有以下三个文件&#xff0c;&#xff08;除去led相关的&#xff09;&#xff0c;将他们复制到自己…

CMake在Windows环境下Visual Studio Code的使用

1&#xff0c;安装下载 地址&#xff1a;Visual Studio Code - Code Editing. Redefined 双击安装 选择安装路径 可勾选微软的AI工具 2&#xff0c;环境介绍 2.1 &#xff0c;界面介绍 2.2中文包的安装 下载中文简体 汉化后的界面 2.3 配置C/C环境 VSCode安装好之后&#xf…

注意力机制在大语言模型中的原理与实现总结

注意力机制在大语言模型中的原理与实现总结 1. 章节介绍 在大语言模型的学习中&#xff0c;理解注意力机制至关重要。本章节旨在深入剖析注意力机制的原理及其在大语言模型中的应用&#xff0c;为构建和优化大语言模型提供理论与实践基础。通过回顾神经网络基础及传统架构的局…

大模型学习三:DeepSeek R1蒸馏模型组ollama调用流程

一、说明 目前DeepSeek R1及其蒸馏模型均支持使用ollama进行调用&#xff0c;可以在模型主页查看调用情况 deepseek-r1https://ollama.com/library/deepseek-r1 显存需求 &#xff0c;我们显存是16G&#xff0c;可以玩好几个 二、以14B模型演示 1、安装ollama curl -fsSL htt…

RAGFlow部署与使用介绍-深度文档理解和检索增强生成

ragflow部署与使用教程-智能文档处理与知识管理的创新引擎 1. ragflow简介 ​ RAGFlow作为新一代智能文档处理平台&#xff0c;深度融合检索增强生成&#xff08;RAG&#xff09;技术与自动化工作流引擎&#xff0c;为企业级知识管理提供全栈解决方案。通过结合多模态解析、语…

【AI赋能:58招聘数据的深度剖析之旅】

影刀出鞘&#xff0c;抓取数据 在当今数字化时代&#xff0c;数据分析已成为企业决策和发展的关键驱动力。而获取高质量的数据则是数据分析的首要任务。在这个信息爆炸的时代&#xff0c;网络上蕴含着海量的数据&#xff0c;其中招聘网站的数据对于人力资源分析、市场趋势研究…

几何法证明卡特兰数_栈混洗

模型&#xff1a; 考虑从坐标原点 (0, 0) 到点 (n, n) 的路径&#xff0c;要求路径只能向右&#xff08;x 方向&#xff09;或向上&#xff08;y 方向&#xff09;移动&#xff0c;并且路径不能越过直线 y x&#xff08;即始终满足 y< x &#xff09;。这样的路径数量就是…

Kafka的安装与使用(windows下python使用等)

一、下载 可以去官网下载&#xff1a;https://kafka.apache.org/downloads 版本可选择&#xff0c;建议下载比较新的&#xff0c;新版本里面自带zookeeper 二、安装 创建一个目录&#xff0c;此处是D:\kafka&#xff0c;将文件放进去解压 如果文件后缀是gz&#xff0c;解压…

数据结构初阶: 顺序表的增删查改

顺序表 概念 顺序表是⽤⼀段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;⼀般情况下采⽤数组存储。如图1&#xff1a; 顺序表和数组有什么区别&#xff1f; 顺序表的底层是用数组实现的&#xff0c;是对数组的封装&#xff0c;实现了增删查改等接口。 分…

详解AI采集框架Crawl4AI,打造智能网络爬虫

大家好&#xff0c;Crawl4AI作为开源Python库&#xff0c;专门用来简化网页爬取和数据提取的工作。它不仅功能强大、灵活&#xff0c;而且全异步的设计让处理速度更快&#xff0c;稳定性更好。无论是构建AI项目还是提升语言模型的性能&#xff0c;Crawl4AI都能帮您简化工作流程…

【爬虫开发】爬虫开发从0到1全知识教程第14篇:scrapy爬虫框架,介绍【附代码文档】

本教程的知识点为&#xff1a;爬虫概要 爬虫基础 爬虫概述 知识点&#xff1a; 1. 爬虫的概念 requests模块 requests模块 知识点&#xff1a; 1. requests模块介绍 1.1 requests模块的作用&#xff1a; 数据提取概要 数据提取概述 知识点 1. 响应内容的分类 知识点&#xff1a…

SQLark:一款国产免费数据库开发和管理工具

SQLark&#xff08;百灵连接&#xff09;是一款面向信创应用开发者的数据库开发和管理工具&#xff0c;用于快速查询、创建和管理不同类型的数据库系统&#xff0c;目前可以支持达梦数据库、Oracle 以及 MySQL。 对象管理 SQLark 支持丰富的数据库对象管理功能&#xff0c;包括…

防爆对讲机VS非防爆对讲机,如何选择?

在通信设备的广阔市场中&#xff0c;对讲机以其高效、便捷的特点&#xff0c;成为众多行业不可或缺的沟通工具。而面对防爆对讲机与非防爆对讲机&#xff0c;许多用户常常陷入选择困境。究竟该如何抉择&#xff0c;且听我为您细细道来。 防爆对讲机&#xff0c;专为危险作业场…

微信小程序开发:开发实践

微信小程序开发实践研究 摘要 随着移动互联网的迅猛发展&#xff0c;微信小程序作为一种轻量化、无需安装的应用形式&#xff0c;逐渐成为开发者和用户的首选。本文以“个人名片”小程序为例&#xff0c;详细阐述了微信小程序的开发流程&#xff0c;包括需求分析、项目规划、…

操作 Office Excel 文档类库Excelize

Excelize 是 Go 语言编写的一个用来操作 Office Excel 文档类库&#xff0c;基于 ECMA-376 OOXML 技术标准。可以使用它来读取、写入 XLSX 文件&#xff0c;相比较其他的开源类库&#xff0c;Excelize 支持操作带有数据透视表、切片器、图表与图片的 Excel 并支持向 Excel 中插…

青铜与信隼的史诗——TCP与UDP的千年博弈

点击下面图片带您领略全新的嵌入式学习路线 &#x1f525;爆款热榜 88万阅读 1.6万收藏 第一章 契约之匣与自由之羽 熔岩尚未冷却的铸造台上&#xff0c;初代信使长欧诺弥亚将液态秘银倒入双生模具。左侧模具刻着交握的青铜手掌&#xff0c;右侧则是展开的隼翼纹章。当星辰…