URAL题解一
URAL题解一
URAL 1002
题目描述:一种记住手机号的方法就是将字母与数字对应,如图。这样就可以只记住一些单词,而不用记住数字。给出一个数字串和n个单词,用最少的单词数来代替数字串,输出对应的任一方案。
solution
首先想到的应该是DP,接着就是状态转移的问题,也就是预处理出每个单词可以与哪一段的数字对应,分析时间复杂度,发现直接暴力判断是可以的,但用HASH会好一些,还可以用KMP。
时间复杂度:\(O(单词数*数字长度)或O(单词长度*数字长度)\)
URAL 1010
题目描述:有一个离散函数,它的定义域为整数\([1, n]\),现在在函数图象中找两个点,使得这两个点之间的点都在这两个点的连线的下方,求出连线倾斜度最大的方案(两个点,编号小的在前),有多个方案时输出第一个点编号最小的方案。
solution
首先考虑比较特殊的方案:相邻的两个点。相邻的两个点肯定是可行的。然后考虑两点之间有点的可行方案。
由上图可知,与选取的两点\((i, j)\)相邻的点必定有一个点与i或j相连的直线的倾角比\((i, j)\)所成的直线的倾角要大,所以中间有点的方案不是最优方案,所以答案就是相邻的点形成的直线的倾角最大的方案。
时间复杂度:\(O(n)\)
URAL 1011
题目描述:有\(n\)个人,其中有\(m\)个是乘务员,已知乘务员的比例大于\(P\)%,小于\(Q\)%,问\(n\)最小是多少。
solution
按题意列出公式
$ P$ % \(< \frac{m}{n} < Q\) %
化简
\(P\) % \(n<m< Q\) % \(n\)
题目就变成:找出最小的\(n\),使得区间\((P\) % \(n ,Q\) % \(n)\)中至少有一个整数。显然\(n<100000\),所以直接枚举即可。
时间复杂度:\(O(n)\)
URAL 1012
题目描述:在所有没有前导\(0\)的\(n\)位\(k\)进制数中,没有连续两个\(0\)的数有多少个。
solution
很明显是数位DP,但答案很大,要高精度。
时间复杂度:\(O(n^2)\)
URAL 1017
题目描述:用\(n\)个木块排成一个楼梯,楼梯每一级的高度至少要比前一级高一个木块,楼梯至少有两级,问楼梯有多少种。
solution
简单的记忆化搜索,不需要高精度。
时间复杂度:\(O(n^2)\)
URAL 1023
题目描述:有\(n\)颗石子,有两个人进行游戏,轮流拿走石子,每次拿走的石子数目范围为\([1, m]\),拿走最后一颗的人算赢,请求出最小的\(m(m \geq 2)\),使得后手必胜。
solution
小学奥数题,显然\(n%(m+1)=0\)时,后手必胜,所以只要求\(n\)的最小因子即可,但要注意\((m \geq 2)\)的限制。
时间复杂度:\(O(\sqrt{n})\)
URAL 1024
题目描述:给出一个关于\(n\)排列的置换\(P\),问至少需要置换多少次才能变回\(1, 2, 3 ... n\)。(可以证明一定能回到\(1, 2, 3 ... n\))
solution
可以求出每个数至少需要置换多少次才能变回自己,也就是这个数的循环,然后求所有数的循环的最小公倍数就是答案。
时间复杂度:\(O(n^2)\)
URAL 1028
题目描述:给出平面上的\(n\)个点,记每个点的左下方的点的个数为该点的\(level\),问每个\(level\)有多少个点。
solution
数据已经排好序了,直接用树状数组就好了。
时间复杂度:\(O(nlogn)\)
URAL 1033
题目描述:给出一个展厅的平面图,‘.’是空地,‘#’是墙,展厅外围也是墙,左上角和右下角是入口,所以这两个格子有两面不是墙,现在要给能被游客看到的墙面贴上墙纸,问需要墙纸的面积。
solution
搜索。碰到墙壁就记一次数,或者搜索完后判断某一个面是否是能访问的空地与墙的交界。注意两个入口可能不连通。
时间复杂度:\(O(n^2)\)
URAL 1034
题目描述:一个\(n*n\)的棋盘上有\(n\)个皇后,这\(n\)个皇后两两不能攻击到对方,这时的局面称为peaceful, 问改变任意三个皇后的位置,使得局面依然是peaceful, peaceful的局面有多少个,注意:所有的皇后都看做是相同的。
solution
枚举三个皇后,改变他们的位置(只有两种情况),判断是否peaceful,判断方法与\(n\)皇后问题一样。
时间复杂度:\(O(n^3)\)
URAL题解一的更多相关文章
- URAL题解三
URAL题解三 URAL 1045 题目描述:有\(n\)个机场,\(n-1\)条航线,任意两个机场有且只有一种方案联通.现有两个恐怖分子从\(m\)号机场出发,第一个人在机场安装炸弹,乘坐飞机,引爆 ...
- URAL题解二
URAL题解二 URAL 1082 题目描述:输出程序的输入数据,使得程序输出"Beutiful Vasilisa" solution 一开始只看程序的核心部分,发现是求快排的比较 ...
- URAL题解—不断跟新中
1014:简单题,忘了0的情况可以是10,== 1219:找呀找规律,满足N*(N-1)/2+1=X;就是1 的情况了
- 收集一些关于OI/ACM的奇怪的东西……
一.代码: 1.求逆元(原理貌似就是拓展欧几里得,要求MOD是素数): int inv(int a) { if(a == 1) return 1; return ((MOD - MOD / a) * ...
- Ural 1029 Ministry 题解
目录 Ural 1029 Ministry 题解 题意 题解 程序 Ural 1029 Ministry 题解 题意 给定一个\(n\times m(1\le n \le10,1\le m \le50 ...
- Ural 1298 Knight 题解
目录 Ural 1298 Knight 题解 题意 题解 程序 Ural 1298 Knight 题解 题意 给定一个\(n\times n(1\le n\le8)\)的国际象棋棋盘和一个骑士(基本上 ...
- Ural 1238 Folding 题解
目录 Ural 1238 Folding 题解 题意 题解 程序 Ural 1238 Folding 题解 题意 定义折叠.展开为: 单个大写英文字母是一个折叠的串,把它展开后是它本身. 如果\(S\ ...
- Ural 1248 Sequence Sum 题解
目录 Ural 1248 Sequence Sum 题解 题意 题解 程序 Ural 1248 Sequence Sum 题解 题意 给定\(n\)个用科学计数法表示的实数\((10^{-100}\s ...
- Ural 1201 Which Day Is It? 题解
目录 Ural 1201 Which Day Is It? 题解 题意 输入 输出 题解 程序 Ural 1201 Which Day Is It? 题解 题意 打印一个月历. 输入 输入日\((1\ ...
随机推荐
- [十五]SpringBoot 之 启动加载数据
实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求. 为了解决这样的问题,spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner 来 ...
- BZOJ3711 PA2014Druzyny(动态规划+cdq分治+线段树)
显然可以dp:设f[i]为前i个人最多能分多少组,则f[i]=max{f[j]}+1 (cmax<=i-j<=dmin). 容易发现d的限制是一段连续区间,二分或者随便怎么搞都行.c则有点 ...
- Unity3D for VR 学习(4): 自绘摄像机的视口区域锥体
在Unity Editor下,当选择Camera组件后,可呈现出Camera视口区域锥体,非常方便.但是当选择其他物体,如Cube后,就无法得知是否在Camera市口区内了,这里我找到了雨松MOMO的 ...
- 【原创】【2】rich editor系列教程。了解document.execommand操作,保存丢失的range,实时反馈样式给工具栏
[原创][2]rich editor系列教程.了解document.execommand操作,保存丢失的range,实时反馈样式给工具栏 索引目录:http://www.cnblogs.com/hen ...
- 洛谷P1937 [USACO10MAR]仓配置Barn Allocation
题目描述 Farmer John recently opened up a new barn and is now accepting stall allocation requests from t ...
- [CQOI2009] 中位数 (前缀和)
[CQOI2009] 中位数 题目描述 给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b.中位数是指把所有元素从小到大排列后,位于中间的数. 输入输出格式 输入格式: 第一行 ...
- JSP 脚本中的 9 个内置对象
JSP 脚本中包含了 9 个内置对象,这 9 个内置对象都是 Servlet API 接口的实例,只是 JSP 规范对它们进行了默认初始化. 这 9 个内置对象如下: 1.application:ja ...
- centos 前端环境搭建
Node.js 安装 wget 下载安装 yum -y install gcc make gcc-c++ openssl-devel wget node v6.11.0 下载 wget https:/ ...
- 「Django」rest_framework学习系列-用户认证
用户认证:1.项目下utils文件写auth.py文件 from rest_framework import exceptions from api import models from rest_f ...
- time_t与GMT格式互转
time_t Time::timeFromGMT(string gmt) { char week[4]; memset(week,0,4); char month[4]; memset(month,0 ...