第八章例题 UVa11134 Fabled Rooks

电路课设-音响分频器电路设计 (一)题目简介 1.一阶分频器电路设计 假定高音和低音扬声器均等效为 16 欧姆电阻,设计如图 2 的简单分频器电 路,要求高低频分界(两个滤波器的截止频率)为 5kHz。 1) 写出高音扬声器和低音扬声器电压对于 vs 的传递函数,确定电路中电 容 C 和电感 L 的元件值;2)利用 AC 频率扫描分析求出两个扬声器电压的频率响应曲线,验证计算 结果。用包含高低频成分的电压 vs 激励进行测量验证。 3)计算并利用 EWB 仿真证明从 vs 看进去的阻抗为一常数 16 欧姆。 阅读详情

/*SE:wn------王宁*/

首先是对行列不相关的理解,只要行列都各自满足不相关即可——好像和没说一样,但是如果不能理解这个也不能理解剩下的做法,一定要先想清楚的确可以用一维的方法解题。

接下来是对那个solve函数的for循环解读——贪心思想,然后是做这道题目遇到的bug以及修复方法

解读——贪心思想
/*

1. 未被使用过
2. 能在前端满足包含条件 
3. 后端要尽可能靠近当前点,因为后端不那么靠前的区间既然前端满足当前点,那么他在后面的点也是能满足前端的条件,
而且相对于选择的这个区间它更有机会满足后面的点的选择条件——贪心
4. 如果出现当前选择区间的后端小于当前点,那么意味着这个区间没有被选择,这也是不合题意的——对应的车没有被放置
出现这种情况的原因只可能是前一个点它没有被选择(后端的值等于前一个点),因为被选择的都是后端大于等于当前点的区间,
能把这个区间排除掉——根据后端要尽可能靠近当前点的原则,把这个区间排除掉的只可能是后端也在前一个点的区间——而它被先选择了
——被选择成功才有机会进行下一个点的选择,所以能挤掉这个没被选择的区间的区间的后端也在前一个点上
在前一个点没有被选择,它之后也都不可能再被选择了
如果改成if(c[i] < 0 && b[i] < minb && col >= a[i] && col<=b[i]) 以及 if(rook < 0 ) 会更加直观一些,只不过判断次数会变多
5. 而点按照1-n的顺序从前往后选择区间,保证了……这个贪心策略的可行性?反正从1-n也是很重要的*/

 

遇到的bug以及修复方法

关于初始化数值

1.大家是不是非常习惯用memset?

但是在函数中,你传的只是数组地址,如果写成memset(c,-1,sizeof(c));,那么只有前两个会赋成-1,而正确的写法是memset(c,-1,sizeof(int)*(n+1));。

fill的话因为强制要求是传首尾地址所以不会出现这个问题——当然fill突破了memset只能设置0、-1、0x3f的限制,值得记住并应用。

2.如果你是按照1-n而不是0-(n-1)来记录信息的,那么要小心前开后闭的性质——fill(c+1,c+n,-1)只能将1-(n-1)赋成-1。

而这个不是-1会导致缺少一个rook能参与区间和点的配对(其实就是最后一个rook,它的c[i]值是0,永远不会被考虑),那么就永远都是printf("IMPOSSIBLE\n");——即使你写的和原程序一样而在这里写错……

好了,贴上刘汝佳大神的源码,建议自己重写,重写也需要对题意的深刻理解的,有助理清思路:

// UVa11134 Fabled Rooks
// Rujia Liu
#include<cstdio>
#include<cstring>
#include <algorithm>
using namespace std;

// solve 1-D problem: find c so that a[i] <= c[i] <= b[i] (0 <= i < n)

bool solve(int *a, int *b, int *c, int n) {
  fill(c, c+n, -1);
  for(int col = 1; col <= n; col++) {
    // find a rook with smalleset b that is not yet assigned
    int rook = -1, minb = n+1;
    for(int i = 0; i < n; i++)
      if(c[i] < 0 && b[i] < minb && col >= a[i]) { rook = i; minb = b[i]; }
    if(rook < 0 || col > minb) return false;
    c[rook] = col;
  }
  return true;
}

const int maxn = 5000 + 5;
int n, x1[maxn], y1[maxn], x2[maxn], y2[maxn], x[maxn], y[maxn];

int main() {
  while(scanf("%d", &n) == 1 && n) {
    for (int i = 0; i < n; i++)
      scanf("%d%d%d%d", &x1[i], &y1[i], &x2[i], &y2[i]);
    if(solve(x1, x2, x, n) && solve(y1, y2, y, n))
      for (int i = 0; i < n; i++) printf("%d %d\n", x[i], y[i]);
    else
      printf("IMPOSSIBLE\n");
  }
  return 0;
}

 

SAP 成本分摊逻辑与案例(含具体数据) 摘要: SAP成本分摊通过**分配(Allocation)与分摊(Assessment)**两种方式,将间接成本中心费用按预设规则(如人数、工时、比例等)结转至直接成本对象。分配保留原始成本要素(如电费、工资),适用于需明细追踪的场景;分摊则打包为次级成本要素(如管理费用),简化核算。实操案例涵盖行政费用分配(按人数)、水电车间分摊(按工时)、机修作业分摊(作业成本法)及内部订单结算,系统通过KSV1/KSU1配置循环规则,KSV5/KSU5执行结转。关键点在于选择匹配业务的分摊基础,合理配置次级成本要素, 阅读详情

相关推荐

H5获取手机相机或相册图片两种方式-Android通过webview传递多张照片给H5

H5调用公共获取图片文件方法,在android手机端,H5主要依赖Webview,这边在webview声明并重写该方法onShowFileChooser使用工具类打开相机或相册,可以两种方式安卓原生方式或者利用第三方组件库方式选中图片,返回uri列表给H5H5收到uri照片列表,并且使用前端方式展示创造价值,乐哉分享!

m0_74823947的博客 3096

Uva 11134 传说中的车 贪心的思维

题目大意: 在一个n*n的棋盘上放置n个车,使得它们之间都不能互相攻击(任意两个车都不能同行或同列),并且,对于第i个车,限制它只能放在一个矩形区域内,(xli, yli),这个矩形的左上角顶点坐标是(xli, yli),右下角顶点坐标是 (xri, yri), 1 ≤ i ≤ n, 1 ≤ xli ≤ xri ≤ n, 1 ≤ yli ≤ yri ≤ n. 分析...

236

UE5实战:用Cesium插件打造逼真湖泊效果(附波纹参数调优技巧)

本文详细介绍了在Unreal Engine 5中利用Cesium插件创建逼真区域水效果(如湖泊)的实战流程。重点解析了通过材质层混合机制,精细调整波纹参数(如DistanceScale、NearScale)来模拟不同水体状态,并提供了从资产创建、地形配置到视觉调优的一站式解决方案,帮助开发者高效实现非海洋水域的动态视觉效果。

weixin_29209805的博客 160

UVA 11134 Fabled Rooks(贪心法,区间与选点问题)

x轴,y轴不相关,所以分开考虑 贪心法 可以这样思考不同于定区间选点,而是定点选区间,所以理所当然,那个点重合的区间要尽可能少,所以要选占用1~col最多位置的区间,且尽可能保留占用col+1~n的位置区间为以后考虑; 那么我们要从col=1~n放,对于每个col选取[a,b]中 1) a最小 2)a相同时b最小的区间; 每选中一个区间就把他抹掉; 为什么那么选的原因: 1) a最小 :

BRCOCOLI的博客 431

Perplexity AI 高效使用培训手册

Perplexity AI 是一款革命性的 AI 搜索引擎,提供免费版和专业版两种选择。免费版支持基础搜索、每日3次Pro搜索、3个文件上传和初步深度研究功能;Pro版则解锁无限次Pro搜索、无限制文件上传、AI图像生成等高级功能,适合专业用户深度研究。该工具能整合网络信息、分析本地文档、生成创意内容,并提供知识库管理功能,显著提升信息检索和内容创作效率。用户可根据需求选择合适版本,免费版已能满足日常使用,而Pro版则更适合专业场景。

conquer_qgw的博客 1207

Cocos2d-x手游逆向实战:Frida高阶Hook与动态解密技术

Cocos2d-x作为主流跨平台游戏引擎,其混合架构(C++核心+JNI桥接+Lua/JS脚本)和强加固策略(符号剥离、anti-frida、so加壳)使传统逆向方法失效。本文围绕‘无符号定位’‘C++函数硬编码地址识别’‘Lua层AST级劫持’‘OpenGL内存回溯解密’四大关键技术展开,深入解析如何在真实上线项目中稳定hook被strip的libcocos2d.so关键函数、绕过反调试心跳检测、从glTexImage2D参数逆向追踪明文资源,并结合熵值扫描实现零先验知识的内存明文发现。面向已掌握Frid

weixin_30345577的博客 675

UVA11134- Fabled Rooks

题目链接 题意:在n*n棋盘上放n辆车,使得任意两辆车不相互攻击,且第i辆车在一个给定的矩形之内。 思路:刚开始以为是n皇后的问题,但是本题只要水平和竖直才能攻击到,并没有斜线的约束。所以可以判断出行和列是互相没有影响的,那么只要分别对行和列进行贪心操作,先按照左端点值从小到大排序,然后用优先队列维护,先处理右端点小的。 做法与这题类似 UVA1422 #inc

懒人一枚。 1393

【专栏目录】

🌟 深度学习工程师的终极武器库!本专栏深度解析近3年CV领域最前沿的YoloV8改进方案,每一种方法都经过实战验证,性能显著提升!🌟。

m0_47867638的博客 1万+

uva 11134 传说中的车(贪心&&问题分解)

题目描述: 你的任务是在 n∗nn∗n 的棋盘上放 n(n≤5000)n(n≤5000)个车,使得任意两个车不相互攻击,且第 ii 个车在一个给定的矩形 RiRi 之内。 用 44 个整数 xli,yli,xri,yri(1≤xli≤xri≤n,1≤yli≤yri≤n)xli,yli,xri,yri(1≤xli≤xri≤n,1≤yli≤yri≤n)描述第 ii 个矩形。 其中(xli,yli)(...

FireflyNo1的博客 403

CKS-CN考试之路----03

这题不需要去生成image和生成deployment所以只需要去检测对应的值即可。编辑/cks/docker/Dockerfile,修改最后第二行的值。编辑/cks/docker/deployment.yaml。

Q先生 825

8、多导睡眠图记录中基于级联自适应滤波器的脑电图信号噪声去除

本文提出了一种基于三级级联自适应滤波器的新型方法,用于去除多导睡眠图(PSG)记录中脑电图(EEG)信号的常见伪迹,包括50/60 Hz电源线干扰、心电图(ECG)和眼电图(EOG)伪迹。该方法采用最小均方(LMS)算法,通过分阶段滤波有效分离并衰减各类噪声,在保留EEG关键神经节律信息的同时显著提升信号质量。研究利用MIT-BIH数据库中的18份真实PSG记录进行验证,结果表明该方法具有无相位失真、实现简单、自适应能力强等优势,适用于睡眠研究及脑机接口等生物医学应用领域。

banana的博客 174

uva11134

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34086/* solution: 行的摆放与列的拜访是无关的,所以可以将两个分开。这样就成了两个简单的一维数组问题。 当初做这到题目时候想过用n皇后的方法来做。但貌似有陷阱,暂时想不起来是什么陷阱了。 等想起来后在补充吧。note: 问题分解dat

林伏案的博客 608

Linux ARM平台开发系列讲解(网络篇)1.3 MDIO总线设备device和设备driver匹配

在设备和驱动都载入内核后,设备和驱动是如何匹配起来的呢?其实他们就是通过的唯一标识phyID进行匹配phy_dev和phy_drv是通过phy_bus_match函数进行匹配,匹配成功后会建立链表链接,具体流程如下图: 返回总目录......

DSMGUOGUO的博客 1098

例题8-4 传说中的车 UVa11134

1.题目描述:点击打开链接 2.解题思路:这道题利用贪心法,由于横坐标和纵坐标没有任何关系,因此可以分别处理。对于横坐标或纵坐标,贪心策略是:先按照区间右端点从小到大排序,若相同,再按照区间左端点从大到小排序,保证这种情况下长度短的在前,长的在后;每次都从区间的左端点出发,如果该位置已经被占据,则继续向后移动,如果移动到超出了区间右端点,则无解。(这道题我思考了三个贪心策略,第一个是按照右端点从

Skyline 1880

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

uva-11134

题意:指定n个矩形,并在每个矩形里面放一个战车,要求战车不能相互攻击。 分析:贪心算法,将二维坐标分解成两个一维x,y。分别找出x,y不会重合的部分。 #include&lt;iostream&gt; #include&lt;string.h&gt; #include&lt;sstream&gt; #include&lt;algorithm&gt; #include&lt;vector&gt...

timeruler的博客 396

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

UVA11134_Fabled Rooks

大概题意: 在n*n的棋盘上面放n个车,能否使他们互相不攻击(即不能在同一行一列),并且第i个车必须落在第i的矩形范围(xl,yl, xr,yr)之内 xy互相并不干扰,所以就可以把这个二维问题压缩成一维的,即在x轴能否让第i个点落在第i个区间内,如果x或y轴不存在这样放法,那么二维肯定也不可以!!! 当我们转换成一维问题之后,便是一个很经典的区间贪心模型了 贪心策略就是,区间右界越小优先

xfzero的博客 961

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

UVA11134

#pragma warning(disable:4996) #include<cstdio> #include<cstring> #include<string> #include<cmath> #include<vector> #include<algorithm> #include<iostream> #include<time.h> #include<map> #include<set> #

JACK_JYH的博客 528

UVA-11134 Fabled Rooks (贪心)

We would like to place n rooks, 1 ≤ n ≤ 5000, on a n × n board subject to the following restrictions • The i-th rook can only be placed within the rectangle given by its left-upper corner (xli , yli)...

L-qf 的博客 325

UVA 11134 - Fabled Rooks(经典贪心)

题目链接 https://cn.vjudge.net/problem/UVA-11134 【题意】 你的任务是在n×n的棋盘上放置n辆车,使得任意两辆车不互相攻击,且第i辆车在一个给定的矩形Ri以内。 【输入格式】 多组输入。第一行为整数n(1&lt;=n&lt;=5000),以下n行每行4个整数xli,yli,xri,yri(1&lt;=xli&lt;=xri&lt;=n,1&lt;=y...

Change the world by program. 176

P315 GCD等于XOR UVa12176 “不难发现”的解释 以及完整推导过程

1. a-b&lt;=a xor b, 对于在同一个数位相同的二进制位值,xor和减法的效果都是一样的。 对于在同一个数位不同的二进制位值,xor恒等于1,而减法可能向高位借1. 2.gcd(a,b)&lt;=a-b (假设a&gt;b) 因为gcd(a,b)=gcd(b,a%b) 设a=qb+r  r=a%b=a-qb gcd(b,a%b)=gcd(b,a-qb) 此时最大公因数不...

JXUFE_ACMer的博客 381

第八章习题 E - Paper Folding

/*SE:wn------王宁*/ /*这一题我是按照这位 https://blog.youkuaiyun.com/weizhuwyzc000/article/details/47038989 的方式写的,我主要讲一下自己实现的注意点和一些体会*/ /*首先是题意的理解:自己去折纸只提示一点,最底下那“张”永远是最小单位的纸张区域 然后关于规律和路线思想的提出,请看原网站。 详解路线:知道路线之后从当前位置...

JXUFE_ACMer的博客 349

第十章例题 A - Colossal Fibonacci Numbers! UVA - 11582

/* SE:wn------王宁 1.f数组的值显然是不重复的,因为是递增数列 2.但是它每个元素都%n,必定是有重复的规律,否则里面a^b那么大怎么找对应的? 刘汝佳大神说因为余数最多n中,所以最多n*n项就会出现重复我不理解 3.所以找出重复的次数,到时候里面的 a^b 取余再到存放的数组里面去找就行了 4.关于a和b我一开始以为他们太大存不下,然而用unsigned long long ...

JXUFE_ACMer的博客 347

第九章例题 E - Jin Ge Jin Qu hao

/*SE:wn------王宁*/ 这道背包思路一点都不难想,大致实现也不难写。 最难的是什么?是在边界值的初始化和特殊情况的处理。 So, let's solve it!   /*SE:wn------王宁*/ #include&lt;bits/stdc++.h&gt; using namespace std; /* dp[i][j]是说前i首歌在时刻j所能完成的歌的数目 一. 初始化...

JXUFE_ACMer的博客 341

第十一章例题 UVa753 A Plug for UNIX

       “完全不知,往日为何,能与我……” 好吧我想说完全不知道为什么我觉得这几天对图论的学习都很有意思,学起来又酷又炫的~ 刘汝佳大神的源码我会放在后面。 /*SE:wn------王宁*/ /*回过头去学二分图匹配的匈牙利算法,才发现原来这一题就是二分图匹配啊 关键的一点就是这个转换器是给带插头的设备使用的 有点,有边——int n,m; 要知道和点连接的边——void add...

JXUFE_ACMer的博客 330

第十一章例题 uva 1151 C- Buy or Build

自己用dfs实现枚举 + 对刘汝佳大神用二进制枚举的解读  /*SE:wn------王宁*/ /*Buy or Build 输入输出解读 输入: 城市编号从1-n 1.告诉你有几个case 2.1 n of cities in the country (1 ≤ n ≤ 1000) 2.2 followed by the number q of existing subnetworks ...

JXUFE_ACMer的博客 327

第九章例题 D- Unidirectional TSP

/*SE:wn------王宁*/ 这是一道简单的多阶段决策题目,但是要注意细节处理。 #include&lt;bits/stdc++.h&gt; using namespace std; const int maxr=15; const int maxc=105; int mat[maxr][maxc]; int d[maxr][maxc]; int path[maxc]; int mai...

JXUFE_ACMer的博客 318
上一篇: 第八章习题 E - Paper Folding
下一篇: 紫书P263 嵌套矩形如何输出所有路径(DAG上的动态规划)代码与解读
JXUFE_ACMer
博客等级 码龄9年 20粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值