POJ 1230 Pass-Muraille (贪心)

自动驾驶仿真 (四)—— 基于PreScan与Simulink的AEB系统多场景验证 本文详细介绍了基于PreScan与Simulink的AEB系统多场景验证方法,涵盖标准场景搭建、复杂工况扩展及控制策略优化。通过仿真技术,显著降低测试成本并提升场景覆盖率,有效解决实车测试中的痛点问题。特别适用于自动驾驶领域的AEB系统开发与验证。 阅读详情

题目链接:

POJ 1230

题目大意:

舞台上有n堵墙,每堵墙都是平行于x轴,魔术师每次表演可以在观众指定的某一列中穿过k堵墙,为了保证魔术成功,魔术师需要拆掉舞台上的一些墙,问最少拆掉多少堵可以使魔术成功。

题解:

用一个二维数组wall[i][j]存墙的信息, wall[i][j]表示在第i行第j列的墙的右坐标。wall[i][1001]表示这一列有多少堵墙,从左到右遍历数组,一旦超过k,那么就选择向右伸展最长的墙拆掉,因为拆掉所有墙的代价一样,所以拆的墙越长越好,而且不需要管前面合格的列的情况,因为对后面没有影响。

坑点:

左右坐标的位置可能互换,也就是说右坐标的x值比左坐标的值要小。

AC代码:

//
//  main.cpp
//  POJ 1230
//
//  Created by izayoi on 2017/3/8.
//  Copyright © 2017年 izayoi. All rights reserved.
//

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int maxn = 1005;

int numb[maxn][maxn];

int main(int argc, const char * argv[]) {
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n,k;
        scanf("%d%d", &n, &k);
        memset(numb,0,sizeof(numb));
        int x1,y1,x2,y2;
        int maxr = 0;
        for(int i = 0; i < n; i++)
        {
            scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
            if(x1 > x2)swap(x1, x2);
            for(int j = x1; j <= x2; j++)
            {
                numb[j][1001]++;
                numb[j][y1] = max(numb[j][y1],x2);
            }
            maxr = max(x2,maxr);
        }
        int cnt = 0;
        for(int i = 0; i <= maxr; i++)
        {
            while(numb[i][1001] > k)
            {
                int maxl = 0, maxy = 0;
                for(int j = 0; j < 105; j++)
                {
                    if(numb[i][j] > maxl)
                    {
                        maxl = numb[i][j];
                        maxy = j;
                    }
                }
                for(int j = i; j <= maxl; j++)
                {
                    numb[j][1001]--;
                    numb[j][maxy] = 0;
                }
                cnt++;
            }
        }
        printf("%d\n", cnt);

    }
    return 0;
}
/*
 9
 3 1
 2 0 4 0
 0 1 1 1
 1 2 2 2
 7 3
 0 0 3 0
 6 1 8 1
 2 3 6 3
 4 4 6 4
 0 5 1 5
 5 6 7 6
 1 7 3 7
 7 2
 1 0 7 0
 2 1 10 1
 9 2 12 2
 4 3 12 3
 3 4 8 4
 5 5 6 5
 10 6 11 6
 4 1
 0 3 9 3
 0 0 3 0
 4 0 7 0
 3 2 6 2


 3 0
 3 0 0 0
 6 1 8 1
 2 3 6 3

 7 3
 3 0 0 0
 6 1 8 1
 2 3 6 3
 4 4 6 4
 0 5 1 5
 5 6 7 6
 1 7 3 7

 8 2
 0 0 0 0
 0 1 0 1
 5 0 5 0
 5 1 5 1
 1 1 4 1
 0 2 2 2
 3 2 5 2
 1 3 4 3

 3 1
 2 0 4 0
 0 1 1 1
 1 2 2 2

 8 2
 0 0 0 0
 0 1 0 1
 5 0 5 0
 5 1 5 1
 1 1 4 1
 0 2 2 2
 3 2 5 2
 4 3 1 3
 ans
 1 1 3 2 3 1 2 1 2
*/
LSM6DS3TR-C IMU传感器入门:从MEMS原理到姿态解算实战 惯性测量单元(IMU)是现代智能设备实现运动感知的核心部件,其基础原理基于微机电系统(MEMS)技术。MEMS加速度计通过检测质量块在惯性力作用下的位移来测量线性加速度,而陀螺仪则利用科里奥利力效应感知角速度。这种技术使得微型化、低成本的6自由度运动测量成为可能,为机器人、无人机、可穿戴设备等提供了关键的空间姿态和运动状态信息。在实际工程中,开发者需要掌握I2C/SPI通信协议、传感器数据读取与校准,并通过互补滤波等算法融合加速度计和陀螺仪数据,实现稳定的姿态解算。LSM6DS3TR-C作为一款高性价比的6 阅读详情

相关推荐

Android开发者必看:5分钟搞定DeepSeek API接入(附完整代码示例)

本文为Android开发者提供快速接入DeepSeek API的完整指南,包含环境配置、网络层设计、请求体构建等关键步骤,并附有详细代码示例。通过工程化实践,帮助开发者高效集成AI对话、代码生成等高级功能,提升移动应用竞争力。

bush的博客 535

Pass-Muraille(贪心,做了好久……)

题目链接:https://vjudge.net/contest/279984#problem/G 题目大意:就是说魔术师要穿墙表演,一次表演最多能穿k个墙。一共有n行墙在map上放置,下面n行是墙的第一块和最后一块砖的左上角的坐标。然后让我们判断最少去掉几堵墙能使魔术师从上往下任意挑选一列都能穿墙成功。 思路:从当前超过k堵墙的列开始,到墙的末尾,最长的墙对整个墙的布局的影响最大。所以就拆这个所谓...

L_X_ 424

前端监控体系:从Sentry到LogRocket错误追踪

Sentry是一款开源的实时错误追踪系统,支持多种语言和框架,包括JavaScript、React、Vue等。它提供了丰富的错误信息、堆栈跟踪和环境数据,帮助开发者快速定位和解决问题。LogRocket是一款前端监控和用户行为分析工具,它提供了视频回放、性能监控、错误追踪等功能。与Sentry不同,LogRocket更注重用户行为的全面分析。前端监控体系是确保应用稳定性和用户体验的重要保障。通过集成Sentry和LogRocket等监控工具,开发者可以实时追踪应用中的错误和用户行为,快速定位和解决问题。

shejizuopin的博客 1313

ZOJ - 1375 Pass-Muraille 【贪心】

Pass-Muraille ZOJ - 1375 In modern day magic shows, passing through walls is very popular in which a magician performer passes through several walls in a predesigned stage show. The wall-passer (Pass...

紫芝的博客 2205

优化问题-半正定规划(Semi-Definite Program, SDP)

半正定规划(Semi-Definite Program, SDP)在MIMO无线通信相关的信号处理中具有广泛的应用,在某些场景可以分析证明SDP的得到的解释原问题的全局最优化或者次优解。

qq_33668008的博客 1万+

硬件基础(4):(6)高精度ADC设计中模拟地与数字地的划分与连接

在实际 PCB 设计中,**接地与布线**对于获得干净的参考电压和高精度 ADC 测量至关重要。下面详细阐述**如何在硬件层面减少数字噪声耦合到模拟电路、保障参考电压的稳定性**。

FCZlll的博客 2643

Pass-Muraille(贪心+模拟)

传送门题解:这是个贪心题,一列一列找,找到不符合的那一列找出这一列中对应右边最长的哪一行即可。#include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; using namespace std; const int maxn=150; int mapp[maxn][maxn]; int main() { ...

肘子的博客 512

ESP32对接百度智能云语音识别:从硬件配置到API调用的完整指南

本文详细介绍了ESP32对接百度智能云语音识别的完整流程,从硬件配置到API调用,涵盖麦克风选择、音频处理、错误处理及性能优化等关键环节。通过实战案例展示如何实现低成本、高效率的语音交互方案,特别适合智能硬件开发者参考。

weixin_29198045的博客 372

Pass-Muraille——魔术师穿墙 贪心

Pass-Muraille Description In modern day magic shows, passing through walls is very popular in which a magician performer passes through several walls in a predesigned stage show. The wall-passer (Pass-Muraille) has a limited wall-passing energy to pass thr

five_east_west的博客 642

第三章-python基础语法

有C语言基础应该这样学 Python。

qq_46187594的博客 1175

扫码登录原理

扫码登录功能通过PC端与移动端的交互实现安全认证,分为三个阶段:待扫描阶段生成唯一二维码ID并轮询状态;已扫描阶段移动端提交token与二维码ID关联,生成临时token并要求用户确认;确认阶段验证临时token后为PC端生成正式登录凭证。整个过程通过二维码唯一性、状态轮询和二次确认机制确保安全性,防止未授权登录,最终完成跨设备认证流程。

阿杰同学的博客 344

POJ 1230 Pass-Muraille

POJ 1230 Pass-Muraille Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9454   Accepted: 2934 Description In modern day magic shows, passing thro

Houheshuai的专栏 798

YOLOv8改进:全网原创首发 | 新颖的多尺度卷积注意力(MSCA),即插即用,助力小目标检测 | NeurIPS2022

多尺度卷积注意力(MSCA),有效地提取上下文信息;1)作为注意力MSCA使用;

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 3843

poj 1230 Pass-Muraille( 贪心 )

题意 :  有一块棋盘式的场地和一个魔术师,场地中有n道墙,魔术师一次最多能穿越k道墙。求移除最少数量的墙,使得魔术师可以在场地的任意一列表演都可以成功。 虽然自己感觉出这题应该用贪心来做,并且找到了一个自己看来很正确的贪心思路,也简单的证明了我的贪心策略的正确性,但还是WA了

nvfumayx的专栏 1698

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

POJ 1230 Pass-Muraille 贪心

Pass-Muraille Time Limit: 1000MS Memory Limit: 65536KB 64bit IO Format: %lld & %llu SubmitStatusDescription In modern day magic shows, passing through walls is very popular in which a mag

Katapeltes 599

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

POJ 1230 Pass-Muraille 贪心

题目链接:http://poj.org/problem?id=1230 题目大意:魔术师在舞台上表演穿墙术,舞台可视为由若干个单位为一的正方形组成的矩形。输入为n和k,n表示舞台上墙的总数目,k为魔术师的能量,即最多可以穿过k堵墙,接着输入每堵墙的坐标(s.x,s.y)、(e.x, e.y),每堵墙长度不定,宽度为1,即s.y=e.y。求最少需要去除多少堵墙才能使魔术师演出顺利。

Christine的专栏 682

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

POJ 1230 Pass-Muraille (贪心) 解题报告

题意:        有一个舞台,可以看做网格状的区域,平行于X轴的方向上有n面墙,所有的墙的厚度都是一个单位,但是长度不同,没有一个网格会在多面墙中。魔术师要表演穿墙魔术,他的魔力值有限,只能穿越k面墙。现在观众任意挑选一列(平行于Y轴),魔术师在这一列上,平行于Y轴从最上面穿到最下面。现在给出魔力值k和n面墙的信息,求最少拆几面墙可以让魔术师可以沿任意观众选择的列穿过所有的墙。 思路:

Light_Time 724

POJ #1230 Pass-Muraille 贪心

Description In modern day magic shows, passing through walls is very popular in which a magician performer passes through several walls in a predesigned stage show. The wall-passer (Pass-...

aibin6833的博客 204

【贪心+思维】Pass-Muraille POJ - 1230

Pass-Muraille POJ - 1230 解题思路 二维转为一维的来处理。贪心做法,每次找到合法且右端点最远的墙,去掉这个墙。 注意事项 1.遍历每一列的时候,每次都是找合法(能盖住当前的这个列)且右端点最远的墙。体现在这个条件上: if (!vis[j] && pp[j].s <= i && pp[j].e >= i && maxlen< pp[j].e) { //当前是第i列,线段要能覆盖这个点 ... } 参考代码 #in

Encore47的博客 325

poj 1230 Pass-Muraille 贪心

题意: 给一些平行于x轴的墙,求最少去掉多少墙使得x轴上每点穿过不超过k面墙。 分析: 一开始还以为是重复覆盖问题(取最少的行使每列至少一个1),其实这题是可以用贪心解的(类似取最多的行使每列至多k个1)。 代码: //poj 1230 //sep9 #include using namespace std; const int maxN=128; int n,max_k,maxx,m

sepNINE的专栏 1318

贪心:poj 1230 Pass-Muraille

传送门 这题有几个坑点,首先是给的两个点没说哪个是起点,哪个是终点,所以要判断大小关系,其次题目给的的x和y和传统观念不一样,两个反过来,最后就是在一个位置删除一个木板的时候,这个位置要重新判断一次。 这题我们分别求每一列上的木板,如果这个列木板个数大于k,我们就取这列木板右端到这列有最长距离的木板,然后删去这个木板。因为我们从左边开始考虑的,当考虑的i列的时候,我们要取对后面还有影响,并且最...

A_Pathfinder的博客 298

poj 1230 Pass-Muraille

poj  1230  Pass-Muraille                      题目链接:http://poj.org/problem?id=1230 贪心水 题目大意:魔术师要表演穿墙魔术,舞台上有墙,魔术师有k单位的能量,也就是说他能穿过k面墙,但舞台上的墙可能会有多于k面的情况,问最少要拆几面墙,使得魔术师能表演成功? 题目分析:舞台是一个二维数组,墙都是横的,魔术师表演时

slicer的技术交流栈 1093

Poj 1230 Pass-Muraille【题解报告|贪心】

题目链接 这道题感觉就是greedy的题。但是还是看了解题报告。知道做法后实现很简单,只需要注意测试数据中有左端点的x坐标大于右端点的x坐标的情况,调换下即可。 贪心的策略是按照x从左往右扫描,如果某一列(某一个x值)对应(被覆盖)的墙的个数cnt大于k,那么需要从这些墙中删掉cnt - k 个。删除的顺序是将墙按照右端点的x值从大到小的顺序排序,按顺序删除。 这样做的大致思路是因为对每个“覆盖墙”我们不用考虑其左端点(因为左边的所有列已经是满足条件的),右端点大的覆盖的右边的x多,所以先删除。这不是个证明

csyifanZhang的博客 424

POJ 1230 Pass-Muraille G++ 贪心 巧妙 背

魔术穿墙而过。n道墙,每道墙宽一个单位,平行于X轴,给出起始坐标。魔术师从Y轴方向穿墙,最多穿过k单位墙。求最少移除多少道墙,魔术师总能完成任务。

woniupengpeng的专栏 477

Pass-Muraille POJ - 1230(贪心)

传送门 题解:从左到右扫描,如果某一行所要越过的墙数已经大于能量,那么就得拆除多余的墙,怎么拆呢,依次拆除最长的墙就行了 附上代码: #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; using namespace std; const int maxn=150; int mapp[max...

肘子的博客 304

poj1230 Pass-Muraille 贪心算法,形成良好的代码风格很重要

贪心算法,从第0列开始扫描,删除从该列开始到后面最长的墙。祥见代码。   学习程序设计语言时老师总是耳提面命的告诉我们要养成良好的代码风格,要先有清晰的思路在动手写代码。先前总是有个大致思路就急于写代码实现。导致写着后面改前面,调试时也是很费力。如果动手前能有更清晰的思路和规划,写起来的确会更流畅,也方便调试。这些道理都懂,但还是亲身实践过才有更深刻的体会,才会自觉的用在coding中。//

basement_boy 668
上一篇: 算法分析学习1
下一篇: 计算机网络学习1:HTTP协议中URL和URI的区别
Infinity_Izayoi
博客等级 码龄11年 5粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值