百度-裁减网格纸 百度-罪犯转移

百度-裁减网格纸

题目描述
度度熊有一张网格纸,但是纸上有一些点过的点,每个点都在网格点上,若把网格看成一个坐标轴平行于网格线的坐标系的话,每个点可以用一对整数x,y来表示。度度熊必须沿着网格线画一个正方形,使所有点在正方形的内部或者边界。然后把这个正方形剪下来。问剪掉正方形的最小面积是多少。
输入描述:
第一行一个数n(2≤n≤1000)表示点数,接下来每行一对整数xi,yi(-1e9<=xi,yi<=1e9)表示网格上的点
输出描述:
一行输出最小面积
输入例子:
2
0 0
0 3
输出例子:
9

解题思路:比较简单的一道题,根据测试用例,只需要判断两点之间水平/垂直方向的最大距离,即求最大最小x和y。然后比较出最大距离求平方,然后需要注意,当只有一个点的时候实际上面积是1,而不是0。

import java.util.*;

public class Main{

    public static void main(String []args){
        Scanner scan=new Scanner(System.in);
        while(scan.hasNext()){
            String line=scan.nextLine();
            int n=Integer.parseInt(line.trim());
            int xmin=0;
            int xmax=0;
            int ymin=0;
            int ymax=0;
            for(int i=0;i<n;i++){
                line=scan.nextLine();
                String []lines=line.trim().split(" ");
                int tmp=Integer.parseInt(lines[0]);
                xmin=tmp<xmin?tmp:xmin;
                xmax=tmp>xmax?tmp:xmax;
                tmp=Integer.parseInt(lines[1]);
                ymin=tmp<ymin?tmp:ymin;
                ymax=tmp>ymax?tmp:ymax;
            }
            int max=(xmax-xmin)>(ymax-ymin)?xmax-xmin:ymax-ymin;
            if(max==0&&n!=0){
                System.out.println(1);
            }else{
                System.out.println(max*max);
            }
        }
    }

}

做了2天题目之后,对这个输入输出还算比较熟悉了~!。


百度-罪犯转移

C市现在要转移一批罪犯到D市,C市有n名罪犯,按照入狱时间有顺序,另外每个罪犯有一个罪行值,值越大罪越重。现在为了方便管理,市长决定转移入狱时间连续的c名犯人,同时要求转移犯人的罪行值之和不超过t,问有多少种选择的方式?

输入描述:
第一行数据三个整数:n,t,c(1≤n≤2e5,0≤t≤1e9,1≤c≤n),第二行按入狱时间给出每个犯人的罪行值ai(0≤ai≤1e9)
输出描述:
一行输出答案。
输入例子:
3 100 2
1 2 3
输出例子:
2

解题思路:类似计算流的方式吧?就是不回头的计算,避免重复工作。在计算c个罪行值和之后,每次减去第一个,增加后一个,满足条件就counter++。更好的应该是判断完当前情况减去最老的一个,然后读新数据时候再增加进行判断,这时候保持只有C个罪犯在内存中。

import java.util.*;

public class Main{

    public static void main(String []args) throws Exception{
        Scanner scan=new Scanner(System.in);
        while(scan.hasNext()){
            String line=scan.nextLine();
            String[] lines=line.trim().split(" ");
            int n=Integer.parseInt(lines[0]);
            int t=Integer.parseInt(lines[1]);
            int c=Integer.parseInt(lines[2]);

            int []crm=new int[n];
            line=scan.nextLine();
            lines=line.trim().split(" ");
            for(int i=0;i<n;i++){
                crm[i]=Integer.parseInt(lines[i]);
            }

            int sum=0;
            int counter=0;
            for(int i=0;i<c;i++){
                sum+=crm[i];
            }
            if(sum<=t){
                counter++;
            } 
            for(int i=c;i<n;i++){
                sum-=crm[i-c];
                sum+=crm[i];
                if(sum<=t){
                    counter++;
                }
            }
            System.out.println(counter);
        }
    }
}

感觉不错~今天30分钟就做完2个题目~加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值