P1279Leave-绿光

背景

期待这一份幸运,和一份冲劲,多么奇异的际遇……。

燕姿在演唱完绿光这首歌后,出给了姿迷一个考题。

北欧有一个传说!

人一生中能看见绿光!

他就一生都能够得到幸福。

描写叙述

燕姿唱完这首歌。天上降落了一道绿光。在地上形成了一个矩形的映射。矩形的长为a,宽为b。燕姿向姿迷出了一个考题。谁可以把这个矩形绿光阵分成若干个正整数的正方形。谁的正方形边长之和最小,他就将得到燕姿的一个合影。姿迷们都非常想得到合影,但是怎么分才最小呢?大家都束手无策,如今,这个问题交给你了。

歌迷X:呜呜呜,俺的语文不好,听不懂你在讲什么。

燕姿:别怕。事实上这个问题能够简化为……



将边长为正整数a,b的长方形划分成若干边长均为正整数,每一个正方形的边均平行于矩形的对应边,试求这些正方形边之和的最小值MIN。

(假设这个长方形能够分成N个正方形。当中每一个边长为Ai,那么MIN=A1+A2+^^^+AN

注意,数组A中的元素可能相等)

格式

输入格式

一共10行

每行两个正整数,Ai,Bi



对于30%的数据,Ai。Bi<maxint

对于100%的数据。Ai,Bi<maxlongint;

输出格式

一共10行

每行一个整数,输出MINi

例子1

例子输入1[复制]

1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1

例子输出1[复制]

1
2
3
4
5
6
7
8
9
10

限制

每点1s

提示

对于例子,可全分长边长为一的正方形,并

记所求最小值为f(m,n),能够证明f(m,n)=m+n-(m,n). (*)

当中(m,n)表示m和n的最大公约数.

其实,最好还是设m≥n.

(1)关于m归纳,能够证明存在一种合乎题意的分法,使所得正方形边长之和恰为m+n-(m,n).

当m=1时,命题显然成立. 

如果当m≤k时,结论成立(k≥1).当m=k+1时,若n= k+1,则命题显然成立.若n< k+1,从矩形ABCD中切去正方形一个边长为n(如图),

由归纳如果剩下的矩形有一种分法使得所得正方形边长之和恰为m-n+n-(m-n,n)= m-(m,n).

于是原矩形ABCD有一种分法使得所得正方形边长之和为m+n- (m,n).

(2)关于m归纳能够证明(*)成立.

当m=1时,因为n=1,显然f (m,n)=1= m+n- (m,n).

如果当m≤k时,对随意1≤n≤m有f (m,n)= m+n- (m,n).

若m=k+1,当n= k+1时,显然f(m,n)= k+1= m+n- (m,n).

当1≤n≤k时,设矩形ABCD按要求分成了p个正方形,其边长分别为a1,a2,…,ap,最好还是设a1≥a2≥…≥ap.

显然a1=n或a1若a1 m+n- (m,n).

若a1=n,则一个边长分别为m-n和n的矩形可按题目要求分成边长分别为a2,…,ap的正方形,由归纳如果

a2+…+ap≥m-n+n-(m-n,n)= m- (m,n).

从而a1+a2+…+ap≥m+n-(m,n).

于是当m=k+1时,f(m,n)≥m+n- (m,n).

再由(1)可知f (m,n)=m+n- (m,n).

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

#!/usr/bin/env python3
# -*- coding: utf-8 -*- def gcd(a, b):
if not b:
return a
else :
return gcd(b, a % b)
def lcm(a, b):
return a + b - gcd(a, b)
import sys
import math
for i in range(10):
a, b = map(int,raw_input().split())
print lcm(a, b)

vijos - P1279Leave-绿光(数学归纳法 + python)的更多相关文章

  1. Vijos——T1279 Leave-绿光

    https://vijos.org/p/1279 背景 期待这一份幸运,和一份冲劲,多么奇妙的际遇…….燕姿在演唱完绿光这首歌后,出给了姿迷一个考题. 北欧有一个传说!人一生中能看见绿光!他就一生都可 ...

  2. python 游戏(龙的国度)

    1. 理清楚游戏思路 实现功能:2个洞穴选择,一个洞穴是好龙,一个洞穴是坏龙,坏龙可以概率屠龙或者概率逃跑选项(后续难度需要增加宝藏获取装备,随机遇见商人,随着游戏进度逐步减少屠龙概率) 2. 计数和 ...

  3. 如何用 Python 给照片换色

    最近遇到了一个需求,就是对图片进行色彩风格转换,让一个物体可以以各种不同的色彩来呈现. 比如一个红色的苹果,我想把它转化成绿色,这可怎么办呢?本来想的解决方案是先识别边界,然后对边界内区域进行色彩替换 ...

  4. python全栈开发 * 08知识点汇总 * 180608

    08知识点梳理 文件操作一 .文件操作 r (只读)1.r (读) rb(字节)f=open("果蔬大杂烩",mode="r",encoding="U ...

  5. Python从菜鸟到高手(1):初识Python

    1 Python简介 1.1 什么是Python   Python是一种面向对象的解释型计算机程序设计语言,由荷兰人吉多·范罗苏姆(Guido van Rossum)于1989年发明,第一个公开发行版 ...

  6. 用C++画光(三)——色散

    写在前面 源码:https://github.com/bajdcc/GameFramework/blob/master/CCGameFramework/base/pe2d/Render2DScene5 ...

  7. RGB的光的三原色、品红黄青颜料的三原色

    学习了祁连山老师讲的光与色的基础知识,觉得收获颇多,所以记下来光与色的知识点. 首先提问大家一个问题:照片中物体的颜色就是它的固有色么?(请从色光和物体固有色的角度回答) 这个问题在看完下面的总结后相 ...

  8. 【系列】Python编程思想(1):Python简介与开发环境搭建

    李宁老师的 开始学习.   本系列文章深入介绍了Python的各种技术,堪称是目前最全的Python教程.主要目的是让读者可以了解Python的各种核心技术,包括各种Python函数库.本教程使用Py ...

  9. 一个人独立开发 3D 游戏引擎可能吗?

    作者:孙志超链接:https://www.zhihu.com/question/24733255/answer/42000966来源:知乎著作权归作者所有,转载请联系作者获得授权. 当然可以,但难道有 ...

随机推荐

  1. 题解报告:hdu 2516 取石子游戏(斐波那契博弈)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2516 Problem Description 1堆石子有n个,两人轮流取.先取者第1次可以取任意多个, ...

  2. UNIX环境高级编程--4

    函数stat fstat fstatat 和 lstat stat函数使用最多的地方可能就是ls -l 命令,用其可以获得有关一个文件的所有信息. 文件类型: (1)普通文件 (2)目录文件 (3)块 ...

  3. webstorm进行VisualSVN配置及上传项目到项目库

    以前建站一直都是自己一个人,最近要做一个比较大的网站,寻思着利用svn在整个开发过程中会比较快,于是摸索着配置了一下. 首先,下载VisualSVN这个软件,官网链接 https://www.visu ...

  4. Alpha Edition [ Group 1 ]

    Deltafish Alpha Edition 一.博客归档(记录人:娄雨禛) 小组会议 DeltaFish 校园物资共享平台 第一次小组会议 DeltaFish 校园物资共享平台 第二次小组会议 D ...

  5. 深入浅出的 SQL Server 查询优化

    目前网络数据库的应用已经成为最为广泛的应用之一了,并且关于数据库的安全性,性能都是企业最为关心的事情.数据库渐渐成为企业的命脉,优化查询就解决了每个关于数据库应用的性能问题,在这里microsoft ...

  6. AcGePoint3d ads_point 转换

    AcGePoint3d (AcGePoint2d )转换 ads_point 用:asDblArray函数. ads_point 转换AcGePoint2d  用asPnt2d(const doubl ...

  7. 控制台输出(System.out.printf)的使用

    一.  介绍 System.out.printf 与 C语言中的 printf 使用方法类似,可以向控制台(Console) 输出指定格式的内容.使用  System.out.printf 的方法比使 ...

  8. sysbench测试阿里云CPU

    参考 https://wiki.mikejung.biz/Benchmarking 买了一个1核的ECS,测试一下CPU性能 第一次是只用1个thread去跑 [root@iZwz9fy718twfi ...

  9. JavaScript day3(运算符)

    运算符(operator) 基本运算符: 算术运算符用于执行变量之间的算术运算,给定 y=5: 运算符 描述 例子 结果 + 加 x=y+2 x=7 - 减 x=y-2 x=3 * 乘 x=y*2 x ...

  10. 7-15 QQ帐户的申请与登陆

    7-15 QQ帐户的申请与登陆(25 分) 实现QQ新帐户申请和老帐户登陆的简化版功能.最大挑战是:据说现在的QQ号码已经有10位数了. 输入格式: 输入首先给出一个正整数N(≤10​5​​),随后给 ...