问题:苏州某液晶厂一直生产a * b大小规格的液晶屏幕,由于该厂的加工工艺限制,液晶屏的边长都为整数。最近由于市场需求发生变化,x : y比例的显示器比较流行,该厂为了适应市场需求,需要改造原生产线,并将库存的a * b大小的液晶屏进行裁剪,使之适应市场的需求。该厂同时希望,将a * b大小的液晶屏裁剪之后,不仅符合x : y的比例要求,同时在转换为新比例液晶屏的过程中,保证因切割而丢弃的液晶边角料最少。
你的任务就是根据原液晶屏大小和新的屏幕的比例,判断是否能将库存的液晶屏转换为符合要求的液晶屏大小,并求出新的液晶屏的大小a’ b’;若不能加工成新的,则输出0 0。
注:新的液晶屏边长和旧的液晶屏边长都为整数,并且长和宽不能交换。
数据输入:
---------------------------------------------------------
测试数据包括多个,每个测试数据一行。
每行四个整数 a b x y
1)a、b表示原库存液晶屏的长和宽
2)x、y表示新的液晶屏的长宽比例x : y
其中,1 <= a, b, x, y <= 10^9。
数据输出:
---------------------------------------------------------
对应每个测试案例,输出一行,每行包含两个整数,由空格隔开:
1)若答案存在,则输出新的液晶屏的长宽 a’ b’
2)若不存在,则输出0 0
实现代码:
unsigned long gcd(unsigned long x,unsigned long y){
if(!(x%y)) return y;
return gcd(y,x%y);
}
unsigned long a,b,x,y,p,q,t,m;
main(){
for(;~scanf("%lu%lu%lu%lu",&a,&b,&x,&y);){
m=gcd(x,y); x/=m;y/=m;
if(x>y) {
t=a/x;
for(;t;--t){
p=t*x;
q=t*y;
if(p<=a&&q<=b) break;
}
if(t==0) {p=0;q=0;}
}else{
t=b/y;
for(;t;--t){
q=t*y;
p=t*x;
if(p<=a&&q<=b) break;
}
if(t==0) {p=0;q=0;}
}
printf("%lu %lu\n",p,q);
}
}
代码运行结果:
- 大小: 17.2 KB
- 大小: 27.3 KB
分享到:
相关推荐
液晶屏幕编辑是一个重要的技术领域,尤其在公共场所的信息展示和广告宣传中广泛应用。液晶编辑器,正如其名,是用来创建和管理在液晶屏幕上显示的文本、图像或动态效果的专业工具。这种编辑器通常具有用户友好的界面...
嵌入式系统中,LCD(Liquid Crystal Display)液晶屏幕是常见的显示设备,用于呈现系统运行状态、用户界面等信息。驱动程序是连接硬件与操作系统之间的桥梁,它负责管理和控制硬件设备,使其能与系统正常交互。在这...
总的来说,12864液晶图片取模软件是开发人员处理LCD显示内容的重要工具,通过它,可以高效地完成汉字和图片的取模工作,使得信息能在有限的128x64像素屏幕空间内清晰、准确地呈现。对于从事嵌入式系统开发、物联网...
256色液晶取模软件就是专为这类显示技术设计的工具,它可以帮助开发者和设计师准确地获取和编辑液晶屏幕上的图像数据,以便在设备上呈现出理想的效果。 首先,我们需要理解什么是“取模”。在计算机图形学领域,...
6. **内存管理**:由于12864液晶屏的显示容量有限,大图片可能需要分割或裁剪以适应屏幕。此外,微控制器的内存资源有限,需要有效地管理和分配内存以存储图片数据。 7. **实时操作系统(RTOS)**:如果项目中使用...
在LCD驱动中,图像处理包括图像缩放、旋转、裁剪等操作。这些操作通常在内存中完成,然后将处理后的图像数据送入LCD控制器。理解图像处理算法,如双线性插值、最近邻插值,对优化显示效果至关重要。 六、中断处理与...
在线段绘制过程中,关键步骤之一是对线段进行裁剪,确保仅显示那些位于屏幕可见区域内的部分。 ##### 线段裁剪方法 线段裁剪主要用于确定线段中哪些部分落在显示区内,哪些部分落在显示区外。这一步骤对于确保线段...
首先,软件会读取位图文件,然后根据用户设定的参数(如屏幕尺寸、颜色深度和显示方向)进行裁剪或缩放。此外,它还可以处理图像的旋转和翻转,以适应不同方向的LCD屏幕。转换后的数据通常以数组的形式输出,这些...
在本项目中,液晶取模是指将图形或文字转换成适合LCD屏幕显示的数据格式。 2. **C#与C编程语言**:项目源代码采用了C#和C两种编程语言。C#通常用于开发Windows平台的应用程序,如上位机;而C语言则常用于底层系统...
9. **位图操作**:液晶显示往往涉及到位图操作,如位移、裁剪、合并等,以实现字符的动画效果或复杂的界面设计。 综上所述,“液晶字模提取二.rar”可能包含了用于液晶显示编程的字模数据、字模生成工具、示例代码...
3. **显示优化**:处理软件可能包含优化算法,如抗锯齿技术,以改善低分辨率屏幕上的文本和图形质量。 4. **界面友好**:用户友好的图形界面使得用户能轻松地预览、编辑和管理字模与图片,同时方便地导出为不同格式...
这种显示器使用液晶技术来控制光的通过,从而在屏幕上形成字符或图形。液晶面板由多个液晶单元组成,每个单元可以独立开关,形成不同的图案。 驱动IC-uc1701是LCD9648的核心组件,它负责处理来自微控制器的指令并...
在本项目中,"STM32(HAL)驱动0.96寸TFT屏幕(可显示任意尺寸图片).zip"是一个利用STM32的HAL库来驱动0.96英寸TFT液晶显示屏的实例,能够显示中文、英文以及任意尺寸的图片。 TFT(Thin Film Transistor)屏幕是...
5. **画图算法**:为了在12864液晶屏上显示任何图片,你需要将图片数据进行适当的处理,如缩放、裁剪或转换为灰度,然后使用合适的算法将其写入液晶屏的内存。例如,Bresenham算法可以用于绘制直线,而扫描线算法可...
在嵌入式系统开发中,TFT液晶显示器(Thin Film Transistor Liquid Crystal Display)是一种常见的显示设备,尤其在...在实际项目中,开发者可以根据需求对这些代码进行裁剪和优化,以适应不同的TFT液晶屏和应用场景。
2. 图像编辑:该工具提供基础的图像编辑功能,如裁剪、调整大小、色彩校正等,让用户能够根据电视屏幕的尺寸和比例进行适配。对于非专业用户来说,这些简单的编辑工具足以完成大部分需求。 3. LOGO导出:完成设计后...
4. **适应屏幕分辨率**:如果图片尺寸与LCD12864不符,需要进行缩放或裁剪操作。 **LCD12864-Picture文件** 提供的"LCD12864-Picture"可能是包含图片转换和驱动程序代码的文件,用于帮助开发者实现MSP430与LCD12864...
这通常涉及裁剪、缩放或位图转换。 6. **编程和库**: - 在嵌入式系统中,通常使用编程语言如C或C++,配合特定的库函数(例如Arduino的LiquidCrystal库)来控制12864 LCD的显示。 7. **显示图像的步骤**: - ...
"arduino液晶显示"则涵盖了UTFT库的基本用途——在液晶屏幕上显示信息。不论是简单的文本,还是复杂的图形,UTFT库都能很好地处理。这使得Arduino可以用于制作各种带有可视化界面的项目,如智能家居控制面板、数据...
对于图片,软件会执行缩放、裁剪等图像处理操作,使之适应12864 LCD的显示分辨率;对于字符,则会将其转换成由“点”和“空”组成的点阵数据。在转换完成后,软件生成的源代码可以被复制到嵌入式开发环境中的程序...