牛客题解 | 交叉线
1.牛客题解 | 5-血型遗传检测2.牛客题解 | 61-递归和动态规划-汉诺塔II3.牛客题解 | Anniversary4.牛客题解 | BST判定5.牛客题解 | CCNumber6.牛客题解 | CIDR去重7.牛客题解 | DNA序列8.牛客题解 | D塔29.牛客题解 | Fibonacci数列10.牛客题解 | K 的倍数11.牛客题解 | Kolakoski 序列12.牛客题解 | LRU Cache13.牛客题解 | LUCKY STRING14.牛客题解 | N-GCD15.牛客题解 | Numeric Keypad16.牛客题解 | Shopee的办公室(二)17.牛客题解 | Spring Outing18.牛客题解 | UTF-8 编码验证19.牛客题解 | Unix路径简化20.牛客题解 | bit count21.牛客题解 | bit位数22.牛客题解 | filename extension23.牛客题解 | geohash编码24.牛客题解 | ipv4地址白名单25.牛客题解 | ipv4地址白名单_126.牛客题解 | k倍多重正整数集合27.牛客题解 | n个数里出现次数大于等于n除以2的数28.牛客题解 | n个数里最小的k个29.牛客题解 | water30.牛客题解 | xor31.牛客题解 | ん...红茶?32.牛客题解 | 一封奇怪的信33.牛客题解 | 一组带数字编号的球,其中有两个编号只出现了一次,把它们找出来34.牛客题解 | 万万没想到之抓捕孔连顺35.牛客题解 | 万万没想到之聪明的编辑36.牛客题解 | 上台阶37.牛客题解 | 上高楼38.牛客题解 | 下厨房39.牛客题解 | 不想出差的HR40.牛客题解 | 不要二41.牛客题解 | 丢失的三个数42.牛客题解 | 两两配对差值最小43.牛客题解 | 两个子串44.牛客题解 | 两个整数二进制位不同个数45.牛客题解 | 两种排序方法46.牛客题解 | 中位数47.牛客题解 | 中缀表达式转后缀表达式48.牛客题解 | 丰收49.牛客题解 | 串的模式匹配50.牛客题解 | 之字形打印矩阵51.牛客题解 | 乔乔的包52.牛客题解 | 乘坐公交53.牛客题解 | 乘方取模54.牛客题解 | 买房55.牛客题解 | 买橘子56.牛客题解 | 买苹果57.牛客题解 | 买面包58.牛客题解 | 争吵59.牛客题解 | 二分图判定60.牛客题解 | 二分图判定_161.牛客题解 | 二分查找62.牛客题解 | 二叉搜索树判定63.牛客题解 | 二叉树的序列化64.牛客题解 | 二维数组打印65.牛客题解 | 二进制中有多少个1
66.牛客题解 | 交叉线
67.牛客题解 | 交换查询68.牛客题解 | 交错01串69.牛客题解 | 交错序列70.牛客题解 | 代价71.牛客题解 | 任务调度72.牛客题解 | 优雅的点73.牛客题解 | 会话列表74.牛客题解 | 会话列表_175.牛客题解 | 伪正则表达式76.牛客题解 | 俄罗斯方块77.牛客题解 | 保卫方案78.牛客题解 | 保留最大的数79.牛客题解 | 信用卡推荐客户列表80.牛客题解 | 倒水81.牛客题解 | 倒着输出整数82.牛客题解 | 倒置字符串83.牛客题解 | 公交车84.牛客题解 | 公平划分85.牛客题解 | 公约数86.牛客题解 | 六一儿童节87.牛客题解 | 共享单车88.牛客题解 | 关灯游戏89.牛客题解 | 冒泡排序90.牛客题解 | 写一段程序判断IP字符串是否属于内网IP题目
题解:
考察点: 思维,数形结合,暴力
易错点:
本题中要求的是相交的半圆,如果存在两个半圆,直径分别为和,并且满足,则不属于相交的情况,所以如果按照结束位置排序的方法来贪心并不可行
一定注意题目中明确说明在端点处相交不算相交
解法:
这题通过数形结合的方法更容易理解,设两个半圆的端点分别为和,则相交时有如下图所示的情况:
在有了上述结论后,题目就变得简单,直接对于半圆,直接枚举其前面位置的半圆,看和其是否存在交点,复杂度为
#include "bits/stdc++.h"
using namespace std;
const int maxn=1e3+10;
int T,n;
int a[maxn];
struct node{
int l,r;
}p[maxn];
int main()
{
scanf("%d",&T);
while(T--){
scanf("%d",&n);
memset(a,0,sizeof(a));
memset(p,0,sizeof(p));
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=2;i<=n;i++){
p[i-1].l=min(a[i-1],a[i]);
p[i-1].r=max(a[i-1],a[i]);
}
--n;
int flag=0;
for(int i=1;i<=n;i++){
for(int j=1;j<i;j++){ if((p[j].l<p[i].r&&p[j].l>p[i].l&&p[j].r>p[i].r)||(p[j].r<p[i].r&&p[j].r>p[i].l&&p[j].l</p[i].r&&p[j].r></i;j++){>
合集:
牛客笔试大厂真题题解1
分类:
牛客笔试大厂真题题解1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】