zoukankan      html  css  js  c++  java
  • UVA题解一

    UVA 100

    题目描述:经典3n+1问题在(n leq 10^6)已经证明是可行的,现在记(f[n])为从(n)开始需要多少步才能到(1),给出(L, R),问(f[L], f[L+1], f[L+2], ... , f[R])中的最大值。

    solution
    这题主要是坑。。。
    1、(L)有可能大于(R) 2、数据范围应该是(10^6)
    言归正传。通过打表发现,(10^6)以内的(f[n])最大也只是几百,普遍都很小,所以不用记忆化也可以把(f[n])全部算出来,然后可以用rmq维护区间最大值,那么询问的代价可以缩为(O(1))
    PS:最终发现直接每次询问都做一遍也是可以过的。。。唉。。。

    UVA 101

    题目描述:有编号从(0)(n-1)(n)个箱子按顺序排成一行,现有(5)种操作:
    1、move a onto b,将放在编号(a)(b)上面的箱子放回原处,然后把(a)放在(b)的上面
    2、move a over b,将放在编号(a)上面的箱子放回原处,然后把(a)放在(b)那堆箱子的最上面
    3、pile a onto b,将放在编号(b)上面的箱子放回原处,然后把(a)以及(a)上面的箱子按原顺序放在(b)的上面
    4、pile a over b,把(a)以及(a)上面的箱子按原顺序放在(b)那堆箱子的最上面
    5、quit,结束操作
    NOTE:如果(a=b),那么操作无效,即跳过该操作,不做任何处理

    solution
    英语不太好,没理解好题意,理解后就是一道栈模拟。

    UVA 102

    题目描述:有三个箱子,每个箱子都装着不同种类的垃圾,垃圾有三种:brown, green, clear bottles,现在要将垃圾分类,每个箱子只装一种垃圾,将一个垃圾移动一次记为一次操作,问最少要多少次操作才能将垃圾分类,并输出箱子对应的垃圾种类,若有多解则输出字典序最小的解。

    solution
    暴力穷举箱子对应的垃圾种类,不属于该箱子的就要移动一次

    UVA 103

    题目描述:有(n)(m)维箱子,若第(i)个箱子每一维的边长为(d_k), 第(j)个箱子每一维的边长为(e_k),且存在一个(d_k)的排列,使得(d_k<e_k),那么箱子(i)可以放在箱子(j)的里面,问最多可以有多少层箱子嵌套。

    solution
    根据题意构图,然后跑一次最长路径

    UVA 104

    题目描述:有(n)种货币,货币两两之间有汇率(rate),但(i)(j)的汇率与(j)(i)的汇率不一定相同。从某一种货币出发,经过不超过(n)次的兑换,最终回到那种货币可能会能获利超过(1%),求出最少兑换次数对应的方案。

    solution
    因为题目问的是最少兑换次数,所以可以考虑一步一步地扩展。记(f[i][j][k])表示经过(i)次兑换后,从(j)货币出发最多能得到多少(k)货币,dp时枚举(p),用(f[i][j][k]*rate[k][p])更新(f[i+1][j][p]),当发现某一种货币对自己的汇率超过(1.01)时,就可以输出对应方案。

    UVA 105

    题目描述:给出(n)座大楼的坐标范围以及高度,求出每个坐标对应的最高高度。

    solution
    模拟题

    UVA 106

    题目描述:求出满足(x<y<z leq n, x^2 + y^2 =z^2, (x, y, z)=1)的三元数对个数,并求出(n)以内不属于任何一个该种三元数对(去掉最后一个条件)的数字个数

    solution
    看到(n)比较大,还以为要(nlogn)预处理所有的答案,结果并不需要。。。
    先不管(x, y)的大小。首先判断(x, y)的奇偶性。因为((x, y, z)=1),所以(x, y)一定是一奇一偶或者是两奇。
    假设为两奇,则(z)为偶数,设(x=2p-1, y=2q-1, z=2w),

    [x^2+y^2=z^2 ]

    [(2p-1)^2+(2q-1)^2=(2w)^2 ]

    [4(p^2+q^2-p-q)+2=4w^2 ]

    显然左式不是(4)的倍数,所以(x, y)为一奇一偶,(z)为奇数。

    假设(x)为奇数,(y)为偶数

    [x^2=(z+y)(z-y) ]

    ((z+y, z-y)=1), 则((y, z)=1)
    证:

    [ecause (z+y, z-y)=1 ]

    [ herefore (2y, z+y)=1, (y, z+y)=1, (y, z)=1 ]

    因为((z+y, z-y)=1),所以((z+y), (z-y))都是完全平方数,假设((z+y))不是完全平方数,即存在一个质因子只有奇数个,但((z+y)(z-y))是一个完全平方数,所以((z-y))也会有那个质因子,((z+y, z-y)=1)不成立。

    (p^2=z+y, q^2=z-y), 则(x=pq, y=frac{p^2-q^2}{2}, z=frac{p^2+q^2}{2})
    显然((x, y, z)=1, x, y < z)
    所以做法就是枚举(p, q, (p, q)=1),然后把(kx, ky, kz, (k in N^{*}))打上标记,最后数一下有多少个数没有被标记(第二个询问的答案)

    UVA 107

    题目描述:已知(N^k=M, (N+1)^k=H), 给出(M, H),求出(sum_{i=0}^{k-1} N^i)(sum_{i=0}^{k} N^{i}(N+1)^{k-i})

    solution
    (k=frac{logM}{logN}=frac{LogH}{log(N+1)}),用这个条件把(N)逼近,然后就可以求(k),然后模拟计算

    UVA 108

    题目描述:求最大子矩阵和。

    solution
    时限开了(3s),可以直接暴力做,也可以用(O(n^3))来做

    UVA 109

    题目描述:给出(n)个凸包和(m)个点,求出包含至少一个点的凸包的面积和。

    solution
    用等面积法判断点是否在凸包内,剩下的就是计算几何的知识。

  • 相关阅读:
    python接口自动化5-Json数据处理
    python接口自动化4-绕过验证码登录(cookie)
    python接口自动化2-发送post请求
    python接口自动化1-发送get请求
    python+selenium个人学习笔记11-登录封装与调用
    [jzoj]5257.小X的佛光
    [jzoj]1417.数学题
    2017.08.15【NOIP提高组】模拟赛B组
    [jzoj]1383.奇怪的问题
    [jzoj]1229.Hanoi
  • 原文地址:https://www.cnblogs.com/GerynOhenz/p/7600050.html
Copyright © 2011-2022 走看看