首页 > 其他分享 >CF391D1题解

CF391D1题解

时间:2023-11-18 21:26:04浏览次数:45  
标签:sy sx yl xl int 题解 CF391D1 shu

题目链接

题意简述

给出若干条平面上线段,找出最大的正+形边长多少。

思路

不难,但是判断两直线相交要考虑全面。数据不大不多,暴力直接过了。

代码

#include<bits/stdc++.h>
using namespace std;
typedef struct line
{
    int sx,sy;
    int ex,ey;
};
 
 
int N,M;
line xl[1200],yl[1200];
int ans[1002000],r[5];
 
 
inline int abss(int x){
	return x>=0?x:-x;
}
int iscross(line ping,line shu){
    if((ping.sy>shu.ey&&ping.sy<shu.sy||ping.sy<shu.ey&&ping.sy>shu.sy)&&(shu.sx<ping.sx&&shu.sx>ping.ex||shu.sx>ping.sx&&shu.sx<ping.ex))
	    return 1;
    return 0;
}
int main(){
	memset(ans,0,sizeof(ans));
    int len;
	int q=-1,k;
    
    cin>>N>>M;
    for(int i=0;i<N;i++){
        cin>>yl[i].sx>>yl[i].sy>>len;
        yl[i].ex=yl[i].sx;
        yl[i].ey=yl[i].sy+len;
    }
    for(int i=0;i<M;i++){
        cin>>xl[i].sx>>xl[i].sy>>len;
        xl[i].ex=xl[i].sx+len;
        xl[i].ey=xl[i].sy;
    }
    for(int i=0;i<M;i++){
        for(int j=0;j<N;j++){
            if(iscross(xl[i],yl[j])){
                int x=yl[j].sx;
                int y=xl[i].sy;
                r[1]=abss(x-xl[i].sx);
                r[2]=abss(x-xl[i].ex);
                r[3]=abss(y-yl[j].sy);
                r[4]=abss(y-yl[j].ey);
                ans[++q]=r[1];
                for(k=2;k<=4;k++) ans[q]=min(ans[q],r[k]);
            }
        }
    }
    int mx=0;
    for(int i=0;i<=q;i++) mx=max(ans[i],mx);
    cout<<mx;
    return 0;
}

标签:sy,sx,yl,xl,int,题解,CF391D1,shu
From: https://www.cnblogs.com/IOIAKmerlin/p/17832504.html

相关文章

  • [ABC326D] ABC Puzzle 题解
    题目链接解法分析这个问题是一个经典的排列谜题,通过回溯算法来穷举所有可能的字符排列,然后验证是否满足行和列约束。这个解决方案可以用于解决类似的谜题,其中需要满足一定的排列条件。通过仔细考虑约束条件,可以加快解决问题的速度,减少不必要的计算。更详细的我写在代码里了。......
  • P2678 跳石头 题解
    P2678跳石头链接这道题其实很水我们二分最长距离,最后用$check$函数判断合不合法一下是核心代码$check$函数这样写:boolcheck(intx){ intlast=0,tot=0; for(inti=1;i<=n;i++){ if(a[i]-last<x)tot++; elselast=a[i]; } if(len-last<x)tot++; returntot<......
  • CF1552D题解
    CF1552D题解思路首先,$a_i$的正负不重要,如果$a_i=b_j-b_k$,那么就有$-a_i=b_k-b_j$,读入时将$a_i$全部转化为正数。若满足$a_i+a_j+\ldots+a_k$,那么就可以构造出$b$序列,否则不行。从左到右遍历一遍$a$序列,动态规划推出所有可以组成的和,并判断是否满足上式,时间复杂度$O......
  • CF985C 题解
    CF985C题解思路由题意得知,现在有$n\timesk$块木板需要组装成$n$个木桶,每个木桶由$k$块板组成,容量服从短板原理,要求容量差不得超过$I$,求最大容量和。不管采用什么方法,无疑我们首先需要将板长(数组$a$)从小到大排列。利用贪心算法。先找出与$a_0$的长度差不超过$l$的......
  • UVA10652 Board Wrapping 题解
    LinkUVA10652BoardWrappingQuestion给出\(N\)个矩形,求面积最小的凸多边形能包住所有矩形求矩形面积占凸多边形面积的百分比Solution把矩形的四个顶点拿出来,就可以转化成凸包裸题了Code#include<bits/stdc++.h>usingnamespacestd;constdoubleeps=1e-9;constd......
  • NEFU OJ Problem1487 时空乱流题解
    时空乱流Problem:ETimeLimit:1500msMemoryLimit:65535KDescription星际飞行员Alice在一次航行中遭遇了时空乱流,时空乱流将导致Alice乘坐的飞船在n个位面之间穿梭。星际宇航局管理员Bob收到了Alice的求救信号,决定在某些位面上设立监测站,当Alice进入某个已经设立监......
  • 关于maven构建tomcat服务器一直启动不了的问题解决
    以往我都是创建maven项目后自己去配置web,再通过自己配置以下信息之后,配置tomcat。最终结果是始终报错 之后摸索发现,可以在maven项目配置前将以上“maven主路径,用户设置文件,本地仓库”信息确定好。 在弹出的页面设置好后,再创建maven项目便省时很多,tomcat配置后可以使用 ......
  • 【HDU 1276】士兵队列训练问题 题解(链表+模拟)
    某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数。。。,以后从头开始轮流进行一至二报数、一至......
  • T399753 counting problem(计数问题)题解
    LinkT399753countingproblem(计数问题)Question给出一个正整数\(n\),求\(AB+CD=n\)的方案数,\(A,B,C,D\)都是要求是正整数Solution考虑直接枚举\(ABCD\)显然是不切实际的那么就折半枚举设\(F_i\)表示两个数的乘积为\(i\)的方案数答案就是\(\sum\limits_{i=1......
  • T399750 Cell kingdom(Hard) 题解
    LinkT399750Cellkingdom(Hard)Qustion第一天产生\(1\)个细胞,之后的每一天,一个细胞都会分裂成\(8\)个和自己一样的细胞,每个细胞在第三天都会自爆并且带走当天产生的\(6\)个细胞,求第\(x\)天有多少细胞Solution我们设\(F[i]\)表示第\(i\)天产生的新细胞个数那么可......