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\)
证:
\[\because (z+y, z-y)=1\]
\[\therefore (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
用等面积法判断点是否在凸包内,剩下的就是计算几何的知识。
UVA题解一的更多相关文章
- UVA题解三
UVA题解三 UVA 127 题目描述:\(52\)张扑克牌排成一列,如果一张牌的花色或者数字与左边第一列的最上面的牌相同,则将这张牌移到左边第一列的最上面,如果一张牌的花色或者数字与左边第三列的最上 ...
- UVA题解二
UVA题解二 UVA 110 题目描述:输出一个Pascal程序,该程序能读入不多于\(8\)个数,并输出从小到大排好序后的数.注意:该程序只能用读入语句,输出语句,if语句. solution 模仿 ...
- [题解]UVa 11082 Matrix Decompressing
开始眨眼一看怎么也不像是网络流的一道题,再怎么看也觉得像是搜索.不过虽然这道题数据范围很小,但也不至于搜索也是可以随随便便就可以过的.(不过这道题应该是special judge,因为一题可以多解而且 ...
- [题解]UVa 10891 Game of Sum
在游戏的任何时刻剩余的都是1 - n中的一个连续子序列.所以可以用dp[i][j]表示在第i个数到第j个数中取数,先手的玩家得到的最大的分值.因为两个人都很聪明,所以等于自己和自己下.基本上每次就都是 ...
- [题解]UVa 10635 Prince and Princess
讲一下题目大意,就是有两个长度为p + 1和q + 1的序列,求它们的LCS. 如果用O(pq)的算法对于这道题来说还是太慢了.所以要另外想一些方法.注意到序列中的所有元素都不相同,所以两个序列中数对 ...
- PC/UVa 题号: 110106/10033 Interpreter (解释器)题解 c语言版
, '\n'); #include<cstdio> #include<iostream> #include<string> #include<algorith ...
- UVa 127 - "Accordian" Patience POJ 1214 链表题解
UVa和POJ都有这道题. 不同的是UVa要求区分单复数,而POJ不要求. 使用STL做会比較简单,这里纯粹使用指针做了,很麻烦的指针操作,一不小心就错. 调试起来还是很费力的 本题理解起来也是挺费力 ...
- UVA 11426 GCD - Extreme (II) (欧拉函数)题解
思路: 虽然看到题目就想到了用欧拉函数做,但就是不知道怎么做... 当a b互质时GCD(a,b)= 1,由此我们可以推出GCD(k*a,k*b)= k.设ans[i]是1~i-1与i的GCD之和,所 ...
- UVa 1329 - Corporative Network Union Find题解
UVa的题目好多,本题是数据结构的运用,就是Union Find并查集的运用.主要使用路径压缩.甚至不须要合并树了,由于没有反复的连线和改动单亲节点的操作. 郁闷的就是不太熟悉这个Oj系统,竟然使用库 ...
随机推荐
- 51nod-1222-最小公倍数计数
题意 给到 \(a,b\) ,求 \[ \sum _{i=a}^b\sum _x\sum _y[x\le y][\text{lcm}(x,y)=i] \] 即最小公倍数在 \([a,b]\) 中的有序 ...
- BZOJ 1177 Oil(特技枚举)
对于三个正方形的位置一共有六种情况. 预处理出(i,j)左上角,左下角,右上角,右下角区域内最大权值的正方形. 枚举分界线更新答案. 刚开始想了一个错误的DP也是蠢啊. #include<set ...
- android面试(2)----组件
1.anroid:id的作用? android:id是作为控件的唯一标示符.可以使用与releativelayout中,也可以再Activity中通过findviewbyid来获得指定的控件. 2.a ...
- 题解 P2089 【烤鸡】
看到这个题一共也就pow(3,10)=59049次循环,那不就暴力了嘛! 虽然说正解是动归和搜索, 但是搜索和暴力枚举的差距真心不大(不好好学习qwq). 看到楼上又说到 答案需要数据存储的问题, 这 ...
- C++解析(23):多态与C++对象模型
0.目录 1.多态 2.C++对象模型 2.1 使用C语言实现封装 3.继承对象模型 4.多态对象模型 4.1 使用C语言实现多态 5.小结 1.多态 面向对象中期望的行为: 根据实际的对象类型判断如 ...
- 【BZOJ1492】【NOI2007】货币兑换(动态规划,CDQ分治,Splay)
[BZOJ1492][NOI2007]货币兑换(动态规划,CDQ分治,Splay) 题面 BZOJ 洛谷 Description 小Y最近在一家金券交易所工作.该金券交易所只发行交易两种金券:A纪念券 ...
- 洛谷 U14472 数据结构【比赛】 【差分数组 + 前缀和】
题目描述 蒟蒻Edt把这个问题交给了你 ---- 一个精通数据结构的大犇,由于是第一题,这个题没那么难.. edt 现在对于题目进行了如下的简化: 最开始的数组每个元素都是0 给出nnn,optopt ...
- 洛谷 P4503 [CTSC2014]企鹅QQ 解题报告
P4503 [CTSC2014]企鹅QQ 题目背景 PenguinQQ是中国最大.最具影响力的SNS(Social Networking Services)网站,以实名制为基础,为用户提供日志.群.即 ...
- 解题:POI 2013 Taxis
题面 设当前位置为$pos$,那么可以发现在出租车总部左侧时,每辆车的贡献是$x[i]-(d-pos)$,而在右侧时只有$x[i]>=m-d$的车能够把人送到,那么首先我们要找出最小的满足$x[ ...
- Square Country
原题链接:http://acm.timus.ru/problem.aspx?space=1&num=1073 分析:dp,dp[i]表示钱为i且恰好用完时能买的最少土地数,易知dp[i]=mi ...