笔试,牛客.kotori和n皇后​,牛客.AOE还是单体

news2024/12/23 18:40:28

目录

牛客.kotori和n皇后​编辑

牛客.AOE还是单体


牛客.kotori和n皇后

 想起来,我之前还写过n皇后的题,但是这个我开始只能想到暴力解法

判断是不是斜对角线,联想y=x+b和y=-x+b,假如在一条线上,那么他们的x和y会对应成比例,这个扫描+判断是一个O(n^2)的操作。

import java.util.*; 
import java.io.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
    public static Read in=new Read();
    public static void main(String[] args) throws IOException{
        int n=in.nextInt();
        long [][]a=new long[n][2];
        for(int i=0;i<n;i++){
            a[i][0]=in.nextInt();
            a[i][1]=in.nextInt();
        }
        int t=in.nextInt();
        //暴力解法
        //简易的n皇后问题.@
        while(t>0){
            int ret=0;
            int k=in.nextInt();
            for(int i=0;i<k-1;i++){
                if(a[i][0]==a[k-1][0]||a[i][1]==a[k-1][1]||a[i][0]+a[i][1]==a[k-1][0]+a[k-1][1]||a[i][1]-a[i][0]==a[k-1][1]-a[k-1][0]){
                    ret=1;
                    break;
                }
            }
            if(ret==1){
               out.println("Yes");
            }else{
                out.println("No");
            }
            t--;
        }
        out.close();

    }
}
class Read{
    //字符串裁剪
    StringTokenizer st=new StringTokenizer("");
    BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
   String next()throws IOException{
    while(!st.hasMoreTokens()){
        st=new StringTokenizer(bf.readLine());
    }
    return st.nextToken();
  }
  int nextInt() throws IOException{
    return Integer.parseInt(next());
  }
}

改进:哈希表,我们需要快速获取他的攻击范围,所以快速获取则使用哈希表,我们只需要获取他的攻击范围即可,怎么存,可以使用哈希Set,

问题,假如当前他第i个已经出现了会攻击的情况的话,那么后面的只需要存对应的消息,无需接着判断,因为一直会被攻击

import java.util.*;
import java.io.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static PrintWriter out =new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
    public static Read in=new Read();
    public static void main(String[] args) throws IOException {
        int n = in.nextInt();
        long [][]a = new long[n + 1][2];
//四个哈希表一个存行,一个列,一个x,一个-x (我说的是斜率)
        HashSet<Long>row = new HashSet<>();
        HashSet<Long>col = new HashSet<>();
        HashSet<Long>dig1 = new HashSet<>();
        HashSet<Long>dig2 = new HashSet<>();
        int ret = (int)1e5 + 10;
        for (int i = 1; i <= n; i++) {
            a[i][0] = in.nextLong();
            a[i][1] = in.nextLong();
            if (ret != (int)1e5 + 10)continue;
            if (row.contains(a[i][0]) || col.contains(a[i][1])  ||
                    dig1.contains(a[i][0] + a[i][1]) ||
                    dig2.contains(a[i][1] - a[i][0])) {
                ret = i;
            }
            row.add(a[i][0]);
            col.add(a[i][1]);
            dig1.add(a[i][0] + a[i][1]);
            dig2.add(a[i][1] - a[i][0]);
        }
        int t = in.nextInt();
        //暴力解法
        //简易的n皇后问题.@
        while (t > 0) {
            int k = in.nextInt();
//k>=ret就是ret是从i开始,因为从i开始就可以与k保持一致下标,不然容易判断错误,多思考一步,麻烦
            if (k >= ret) {
                out.println("Yes");
            } else {
                out.println("No");
            }
            t--;
        }
        out.close();
    }
}
class Read {
    //字符串裁剪
    StringTokenizer st = new StringTokenizer("");
    //1.把字节流转化为字符流
    从IO设备中拿数据,先是建立一个内存缓冲区,然后以后都从他的内存缓冲区拿数据,
    BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
    // 再从从内存缓冲区里面拿数据
    String next()throws IOException {
        //看他后面还有没有要裁切的数据
        while (!st.hasMoreTokens()) {
            //bf.nextLine:直接在内存缓存区里面,拿一行数据,交给这个字符串裁切对象
            st = new StringTokenizer(bf.readLine());
        }
        //再返回新读入这一行
        return  st.nextToken();
    }

    public String nextLine() throws IOException {
        return bf.readLine();
    }

    public    int nextInt() throws IOException {
        return Integer.parseInt(next());
    }

    public long nextLong() throws IOException {
        return Long.parseLong(next());
    }

    public double nextDouble() throws IOException {
        return Double.parseDouble(next());
    }
}

牛客.AOE还是单体

暴力解法,但是缺点就是复杂度过高,因为你可以看x和n范围,我们就知道了,这可能会循环很多次。

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int  n = in.nextInt();
        long x = in.nextLong();
        long[]a = new long[n];
        long sum = 0;
        for (int i = 0; i < n; i++) {
            a[i] = in.nextLong();
        }
        int all = n;
        Arrays.sort(a);
        int p=0;
        while (n > x) {
            for (int i = 0; i < all; i++) {
                a[i]--;
                if (a[i] == 0) {
                    n--;
                }else{
                    p=i;
                }
            }
            sum += x;
        }
        if(all>x){
        for (int i=all-(int)x; i < all; i++) {
            if(a[i]>0){
            sum += a[i];
            }
         }
        }else{
            for(int i=0;i<n;i++){
                sum+=a[i];
            }
        }
        
        System.out.print(sum);
    }
}

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int  n = in.nextInt();
        long x = in.nextLong();
        long[]a = new long[n];
        long sum = 0;
        for (int i = 0; i < n; i++) {
            a[i] = in.nextLong();
        }
        Arrays.sort(a);
        int p=0;
       if(n>x){
        for (int i=n-(int)x; i <n; i++) {
            if(a[i]>0){
            sum += a[i]-a[n-(int)x-1];
            }
         }
         sum+=x*a[n-(int)x-1];
        }else{
            for(int i=0;i<n;i++){
                sum+=a[i];
            }
        }

        System.out.print(sum);
    }
}

​​​​​​​ 

 

import java.util.*;
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param coins int整型一维数组 
     * @return int整型
     */
    public int getCoins (ArrayList<Integer> coins) {
       int n=coins.size();
       int []a=new int[n+2];
       for(int i=0;i<n+2;i++){
        if(i==0||i==n+1){
            a[i]=1;
        }else{
            a[i]=coins.get(i-1);
        }
       }
       int[][]dp=new int[n+2][n+2];
       for(int i=n;i>=1;i--){
        for(int j=i;j<=n;j++){
            for(int k=i;k<=j;k++){
    dp[i][j]=Math.max(dp[i][k-1]+dp[k+1][j]+a[k]*a[i-1]*a[j+1],dp[i][j]);
            }
        }
       }

       return dp[1][n];
    }
}

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

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

相关文章

iscntrl函数讲解 <ctype.h>头文件函数

目录 1.头文件 2.iscntrl函数 1.头文件 以上这些函数都属于头文件<ctype.h>中的函数,其中包括iscntrl函数 #include<ctype.h> 2.iscntrl函数 简述&#xff1a;iscntrl 函数用来判断字符是否为控制字符&#xff0c;控制字符为ASCII值在0x00到0x7f之间 控制字符主…

在 Facebook 上投放广告需要多少钱?

Facebook 拥有 23.2 亿的月活跃用户&#xff0c;用户体量非常庞大&#xff0c;你的目标群体出现在社交媒体平台上的可能性非常高&#xff0c;所以企业会选择在Facebook 上投放广告。很多朋友想入局&#xff0c;但总是在思考Facebook 推广到底要花多少钱才能有效&#xff1f;如果…

Unknown command: “create-react-app“

在创建react项目时出现报错" Unknown command: "create-react-app" " 解决方法&#xff1a; 配置全局变量&#xff0c;" win r " 打开cmd窗口&#xff0c;输入下列命令&#xff0c;回车等待结束即可&#xff1a; npx create-react-app my-pro…

中国电子学会Python3级等级考试202403客观题解析4

二、判断题 26、十六进制 3C 转换成八进制为 74。&#xff08; &#xff09; A 正确 B 错误 答案&#xff1a;A 使用“填空法”&#xff0c;先将3C转换为十进制&#xff0c;之后再使用“填空法”或“除8法”将十进制数转换为八进制。 知识扩展&#xff1a;其它进制&#…

边缘智能网关 P1600:智慧城市的创新引擎

智慧城市&#xff08;Smart City&#xff09;是以发展更科学、管理更高效、生活更美好为目标&#xff0c;以信息技术和通信技术为支撑&#xff0c;通过透明、充分的信息获取&#xff0c;广泛、安全的信息传递和有效、科学的信息处理&#xff0c;提高城市运行效率&#xff0c;改…

Shell脚本快速入门(Linux篇)

1.Shell介绍 Shell 是一个 C 语言编写的脚本语言&#xff0c;它是用户与 Linux 的桥梁&#xff0c;用户输入命令交给 Shell 处理&#xff0c;Shell 将相应的操作传递给内核&#xff08;Kernel&#xff09;&#xff0c;内核把处理的结果输出给用户。 Shell 是指一种应用程序&am…

用亚马逊AI代码开发助手Amazon Q Developer开发小游戏(中篇)

快用人工智能帮程序员写代码、开发游戏&#xff01;今天小李哥就来介绍亚马逊推出的国际前沿人工智能AI代码开发助手Amazon Q Developer。目前该代码助手在Hugging Face代码生成权威测试集SWE-bench中排名第一&#xff0c;可以根据我们的需求生成整个代码项目&#xff0c;并可以…

(待更)数据结构与算法:字符串和KMP算法原理(附有leetcode344、541、151、459题解)

字符串交换相关 leetcode344.反转字符串 注意&#xff1a;这里的s是str数组 class Solution(object):def reverseString(self, s):""":type s: List[str]:rtype: None Do not return anything, modify s in-place instead."""n len(s)i 0j …

【C++】容器list常用接口详解

目录 一.基本介绍 二.list的使用 1.构造函数 2.迭代器 3.遍历方式 4.容量相关操作 5.增删改查 三.list迭代器失效问题 四.算法库函数和list关系 一.基本介绍 list是一个带头双向循环链表由于是链表&#xff0c;物理空间不连续&#xff0c;不支持随机访问数据&#xff0…

《机器学习》周志华-CH6(支持向量机)

6.1间隔与支持向量 给定训练样本 D { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } , y i ∈ { − 1 , 1 } D\{(x_1,y_1),(x_2,y_2),...,(x_m,y_m)\},y_i\in\{-1,1\} D{(x1​,y1​),(x2​,y2​),...,(xm​,ym​)},yi​∈{−1,1}分类学习最基本的想法是基于训练集…

SQL优化神器 SQLAdvisor

简介 SQLAdvisor是一款开源的SQL优化工具&#xff0c;由美团点评公司的技术工程部DBA团队开发与维护。作为一个分析SQL语句并提出索引优化建议的工具&#xff0c;它基于MySQL原生词法解析&#xff0c;结合SQL中的where条件、字段选择度、聚合条件、多表Join关系等&#xff0c;…

爆改YOLOv8|利用yolov10的C2fCIB改进yolov8-高效涨点

1&#xff0c;本文介绍 本文介绍了一种改进机制&#xff0c;通过引入 YOLOv10 的 C2fCIB 模块来提升 YOLOv8 的性能。C2fCIB 模块中的 CIB&#xff08;Compact Inverted Bottleneck&#xff09;结构采用了高效的深度卷积进行空间特征混合&#xff0c;并使用点卷积进行通道特征…

PLM系统在企业数字化转型中的关键作用 三品PLM在制造业转型实例分析

在当今数字化时代&#xff0c;企业面临着日益激烈的市场竞争和快速变化的客户需求。为了保持竞争力并实现可持续发展&#xff0c;企业纷纷进行数字化转型。而PLM产品生命周期管理系统作为数字化转型的关键组成部分&#xff0c;其在企业中的应用显得尤为重要。本文将探讨PLM系统…

AAA原理与配置

定义 AAA是Authentication&#xff08;认证&#xff09;、Authorization&#xff08;授权&#xff09;和Accounting&#xff08;计费&#xff09;的简称&#xff0c;是网络安全的一种管理机制&#xff0c;提供了认证、授权、计费三种安全功能。 这三种安全功能的具体作用如下…

Java如何计算一个数的阶乘末尾有多少个零?

文章有点长&#xff0c;请耐心看完~~~ 这个问题涉及到阶乘&#xff08;factorial&#xff09;的一个有趣特性&#xff0c;即阶乘结果末尾零的数量。要理解这一点&#xff0c;我们首先要知道什么情况下一个数的末尾会产生零。 什么情况下一个数的末尾会产生零 在十进制数制中…

代码随想录训练营day35|46. 携带研究材料,416. 分割等和子集

46. 携带研究材料 思路&#xff1a;用一个数组来记录&#xff1f;dp[i]带i件物品的最大价值 好吧&#xff0c;这里用的是一个二维数组dp[i][j]&#xff0c;表示从[0&#xff0c;i]的物间任选武平&#xff0c;能用容量为j的背包装下的最大价值 重量 价值 物品0 1 15 物品1 3 2…

AI绘画|Stable Diffusion高质量提示词收集(附提示词手册以及提示词插件)

使用平台:comfyui 模型:AlbedoBase-XL 图片尺寸:768x1280 提示词万字手册&#xff0c;可以扫描下方&#xff0c;免费获取 图1 提示词 an attractive rough cyborg woman with a serious look in her eyes, messy conceptual felt-tip pen (drawing:1.3) by (Yoji Shinkawa:…

“三年级英语”暴增5亿搜索量?需求来了!附2个极品AI吸粉玩法!

家人们&#xff01;在英语细分领域&#xff0c;一直都是付费知识中的风口黄金大赛道。 而这两天“英语”这个关键词&#xff0c;在微信指数上的日搜索量突然猛增到5个亿。 这两天全网热词“三年级英语”&#xff0c;日环比搜索指数更是486.2%增长率&#xff0c;一天时间内就增…

vsftpd的安装和配置

目录 vsftpd的下载与配置 下载vsftpd vsftpd的配置 测试服务的功能 vsftpd的下载与配置 下载vsftpd rpm -qc vsftpd&#xff0c;检查vsftpd安装包是否存在&#xff0c;存在则不需要安装。 yum install -y vsftpd&#xff0c;不存在则yum安装vsftpd。 安装成功 vsftpd的…

早上醒来嗓子干、喉咙痛、咳嗽……快用这个润养好物,给嗓子做个spa,让身体润起来~

进入秋季&#xff0c;很多人出现了眼睛干涩、大便干燥、嘴唇干裂、咽喉疼痛等症状&#xff0c;虽说这些还能够忍受&#xff0c;但它却影响了正常的饮食和休息。 秋季气候干燥&#xff0c;外界燥邪侵犯肺部&#xff0c;易伤津液&#xff0c;肺失滋润&#xff0c;清肃失司&#x…