• Java面向对象编程


    对于IP地址130.63.160.2,MASK为255.255.255.0,子网号为()

    A. 160.2

    B. 160

    C. 63.160

    D. 130.63.160

    答案:B

    将网络物理地址转换为IP地址的协议是()

    A. IP

    B. ICMP

    C. ARP

    D. RARP

    答案:D

    有关cookie和session的描述,下面错误的是()

    A. cookie数据存放在客户的浏览器上,session数据放在服务器上

    B. session是针对每一个用户的,变量的值保存在服务器上,用一个sessionID来区分是哪个用户session变量

    C. 保存这个session id的方式可以采用cookie

    D. 只要关闭浏览器,session就消失了

    答案:D

    关于TIME_WAIT状态的描述,下面说法错误的是()

    A. TIME_WAIT出现在被动关闭一方,CLOSE_WAIT出现在主动关闭一方

    B. 从TIME_WAIT状态到CLOSED状态,有一个超时设置,这个超时设置是 2*MSL

    C. TIME_WAIT确保有足够的时间让对端收到了ACK,如果被动关闭的那方没有收到Ack,就会触发被动端重发Fin,一来一去正好2个MSL

    D. 有足够的时间让这个连接不会跟后面的连接混在一起

    答案:A

    TCP连接释放过程,叙述不正确的是()

    A. 通过设置FIN为来表示释放连接

    B. 当一方释放连接后另一方即不能继续发送数据

    C. 只有双方均释放连接后,该连接才被释放

    D. 释放连接采用四次挥手机制

    答案:B

    下面有关TCP协议的描述,说法错误的是()

    A. TCP使用窗口机制进行流量控制

    B. 由于TCP连接是全双工的,因此每个方向都必须单独进行关闭,需要四次握手

    C. TCP连接建立需要三次握手

    D. 被动关闭socket后,会进入到TIME_WAIT状态

    答案:D

    查看TCP连接的命令是什么()

    A. tcpdump

    B. top

    C. netstat

    D. ifconfig

    答案:C

    某IP地址192.168.48.10,掩码为255.255.255.128,其所在的子网为(),广播地址为(),有效的主机IP地址范围是()

    A. 192.168.48.0/192.168.48.127/192.168.48.1 到 192.168.48.126

    B. 192.168.48.0/192.168.48.255/192.168.48.1 到 192.168.48.255

    C. 192.168.48.1/192.168.48.255/192.168.48.1 到 192.168.48.126

    D. 192.168.48.1/192.168.48.127/192.168.48.1 到 192.168.48.255

    答案:A

    172.16.100.5/255.255.255.252 的网络地址和主机号是多少()

    A. 172.16.100.4 1

    B. 172.16.100.4 5

    C. 172.16.100.5 1

    D. 172.16.100.5 5

    答案:A

    下面有关NAT的描述,说法错误的是()

    A. NAT是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术

    B. NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat和端口多路复用OverLoad

    C. NAT可以有效的缓解了IP地址不足的问题

    D. 虚拟机里配置NAT模式,需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段

    答案:D

    合唱团
    题目描述:有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生 的能力值的乘积最大,你能返回最大的乘积吗? 
    输入描述:每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 <= n <= 50),表示学生的个数,接下来的一行,包含 n 个整数,按顺序表示每个学生 的能力值 a (-50 <= ai <= 50)。接下来的一行包含两个整数,k 和 d (1 <= k <= 10, 1 <= d <= 50)。 
    输出描述:输出一行表示最大的乘积。
    
     
    
    public class Main77 {
    
        //合唱团
    
        public static long getMax(int[] arr, int n, int k, int d) {
    
            long[][] maxValue = new long[n + 1][k + 1];
    
            long[][] minValue = new long[n + 1][k + 1];
    
            long ret = 0;
    
            //F(i,j):以第i个学生结尾,共选了j个同学的最大值
    
            //初始状态F(i,1):arr[i]
    
            for (int i = 1; i <= n; ++i) {
    
                maxValue[i][1] = minValue[i][1] = arr[i - 1];
    
            }
    
            for (int i = 1; i <= n; ++i) {
    
                for (int j = 1; j <= k; ++j) {
    
                    //约束条件:相邻同学间隔不超过d
    
                    for (int m = i - 1; m >= Math.max(i - d, 1) ; --m) {
    
                        maxValue[i][j] = Math.max(maxValue[i][j],
    
                                Math.max(maxValue[m][j - 1] * arr[i - 1],
    
                                        minValue[m][j - 1] * arr[i - 1]));
    
    
    
                        minValue[i][j] = Math.min(minValue[i][j],
    
                                Math.min(maxValue[m][j - 1] * arr[i - 1],
    
                                        minValue[m][j - 1] * arr[i - 1]));
    
                    }
    
                }
    
                //更新最大值max(F(i,k))
    
                ret = Math.max(ret, maxValue[i][k]);
    
            }
    
            return ret;
    
        }
    
    
    
        public static void main(String[] args) {
    
            int n;
    
            int k;
    
            int d;
    
            Scanner scanner = new Scanner(System.in);
    
            n = scanner.nextInt();
    
            int[] arr = new int[n];
    
            for (int i = 0; i < n; ++i) {
    
                arr[i] = scanner.nextInt();
    
            }
    
            k = scanner.nextInt();
    
            d = scanner.nextInt();
    
            System.out.println(getMax(arr, n, k, d));
    
        }
    
    }
     
     
    马戏团
    题目描述:搜狐员工小王最近利用假期在外地旅游,在某个小镇碰到一个马戏团表演,精彩的表演结束后发现团长正和大伙在帐篷前激烈讨论,小王打听了下了解到, 马戏 团正打算出一个新节目“最高罗汉塔”,即马戏团员叠罗汉表演。考虑到安全因素,要求叠罗汉过程中,站在某个人肩上的人应该既比自己矮又比自己瘦,或相 等。 团长想要本次节目中的罗汉塔叠的最高,由于人数众多,正在头疼如何安排人员的问题。小王觉得这个问题很简单,于是统计了参与最高罗汉塔表演的所有 团员的身高体重,并且很快找到叠最高罗汉塔的人员序列。 现在你手上也拿到了这样一份身高体重表,请找出可以叠出的最高罗汉塔的高度,这份表中马戏团员 依次编号为1到N。 
    输入描述:首先一个正整数N,表示人员个数。 之后N行,每行三个数,分别对应马戏团员编号,体重和身高。 
    输出描述:正整数m,表示罗汉塔的高度。
     
     
     
     
     
     
    
    
    class node implements Comparable<node>{
    
        int w;
    
        int h;
    
        public node(int w,int h){
    
            this.w=w;
    
            this.h=h;
    
        }
    
    
    
        @Override
    
        public int compareTo(node obj) {
    
            int ret=w-obj.w;
    
            //体重相同,身高降序
    
            if (ret==0){
    
                return obj.h-h;
    
            }
    
            return ret;
    
        }
    
    }
    
    
    
    public class Main78 {
    
    
    
        public static void main(String[] args) {
    
            Scanner scanner=new Scanner(System.in);
    
            while (scanner.hasNextInt()){
    
                int n= scanner.nextInt();
    
                node[] arr=new node[n];
    
                for (int i = 0; i < n; ++i) {
    
                    scanner.nextInt();
    
                    arr[i]=new node(scanner.nextInt(), scanner.nextInt());
    
                }
    
                System.out.println(getMaxLength(arr,n));
    
            }
    
        }
    
    
    
        public static int getMaxLength(node[] arr,int n){
    
            //排序
    
            Arrays.sort(arr);
    
            //计算最大子序列长度
    
            int ret=0;
    
            //F(i):以第i个元素结尾的最大子序列长度
    
            //初始值:F(i)=1
    
            int[] maxLength=new int[n];
            for (int i = 0; i < n; ++i) {
    
                maxLength[i]=1;
    
            }
    
            for (int i = 1; i < n; ++i) {
    
                for (int j = 0; j < i; ++j) {
    
                    if (arr[j].h <=arr[i].h){
    
                        maxLength[i]=Math.max(maxLength[i],maxLength[j]+1);
    
                    }
    
                }
    
                //跟新最值max(F(i))
    
                ret=Math.max(ret,maxLength[i]);
    
            }
    
            return ret;
    
        }
    
    }
  • 相关阅读:
    Mysql分组查询每组最新的一条数据
    【Python】条件语句、循环语句、pass语句的使用
    【教3妹学算法-每日1题】生成每种字符都是奇数个的字符串
    使用TypeScript和jsdom库实现自动化数据抓取
    HFSS笔记——优化设计optimetrics
    网络安全(黑客)自学
    【云原生之k8s】K8s 管理工具 kubectl 详解(一)
    毫米波技术基础
    Linux网络编程:使用UDP和TCP协议实现网络通信
    牛客java基础刷题笔记(三)
  • 原文地址:https://blog.csdn.net/weixin_64308540/article/details/132963399