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题解一的更多相关文章

  1. URAL题解三

    URAL题解三 URAL 1045 题目描述:有\(n\)个机场,\(n-1\)条航线,任意两个机场有且只有一种方案联通.现有两个恐怖分子从\(m\)号机场出发,第一个人在机场安装炸弹,乘坐飞机,引爆 ...

  2. URAL题解二

    URAL题解二 URAL 1082 题目描述:输出程序的输入数据,使得程序输出"Beutiful Vasilisa" solution 一开始只看程序的核心部分,发现是求快排的比较 ...

  3. URAL题解—不断跟新中

    1014:简单题,忘了0的情况可以是10,== 1219:找呀找规律,满足N*(N-1)/2+1=X;就是1 的情况了

  4. 收集一些关于OI/ACM的奇怪的东西……

    一.代码: 1.求逆元(原理貌似就是拓展欧几里得,要求MOD是素数): int inv(int a) { if(a == 1) return 1; return ((MOD - MOD / a) * ...

  5. Ural 1029 Ministry 题解

    目录 Ural 1029 Ministry 题解 题意 题解 程序 Ural 1029 Ministry 题解 题意 给定一个\(n\times m(1\le n \le10,1\le m \le50 ...

  6. Ural 1298 Knight 题解

    目录 Ural 1298 Knight 题解 题意 题解 程序 Ural 1298 Knight 题解 题意 给定一个\(n\times n(1\le n\le8)\)的国际象棋棋盘和一个骑士(基本上 ...

  7. Ural 1238 Folding 题解

    目录 Ural 1238 Folding 题解 题意 题解 程序 Ural 1238 Folding 题解 题意 定义折叠.展开为: 单个大写英文字母是一个折叠的串,把它展开后是它本身. 如果\(S\ ...

  8. Ural 1248 Sequence Sum 题解

    目录 Ural 1248 Sequence Sum 题解 题意 题解 程序 Ural 1248 Sequence Sum 题解 题意 给定\(n\)个用科学计数法表示的实数\((10^{-100}\s ...

  9. Ural 1201 Which Day Is It? 题解

    目录 Ural 1201 Which Day Is It? 题解 题意 输入 输出 题解 程序 Ural 1201 Which Day Is It? 题解 题意 打印一个月历. 输入 输入日\((1\ ...

随机推荐

  1. Using the command line to manage files on HDFS--转载

    原文地址:http://zh.hortonworks.com/hadoop-tutorial/using-commandline-manage-files-hdfs/ In this tutorial ...

  2. HDU 6035 Colorful Tree(dfs)

    题意:一棵有n个点的树,树上每个点都有颜色c[i],定义每条路径的值为这条路径上经过的不同颜色数量和.求所有路径的值的和. 可以把问题转化为对每种颜色有多少条不同的路径至少经过这种颜色的点,然后加和. ...

  3. 【HLSDK系列】服务端实体 edict_t 和 控制类

    我们来了解一下引擎是怎么管理实体的吧!我们这里就说说服务端的实体(edict_t) 服务端用 edict_t 这个结构体来保存一个实体,可以说一个 edict_t 就是一个 服务端实体,下文简称实体. ...

  4. Django获取多个数据及文件上传

    1. 选择性别: 1)更新login.html模板 2)views.py中获取客户端提交的数据 3)当选择性别为“男”后,后台得到了gender=1. 2.选择爱好,可以多选,所以后台会获得多个数据. ...

  5. IPv4协议及VLSM可变长子网划分和CIDR无类域间路由

    IPv4协议及VLSM可变长子网划分和CIDR无类域间路由 来源 https://blog.csdn.net/hongse_zxl/article/details/50054817 互联网世界一切通信 ...

  6. 【刷题】BZOJ 1036 [ZJOI2008]树的统计Count

    Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w.我们将以下面的形式来要求你对这棵树完成 一些操作: I. CHANGE u t : 把结点u的权值改为t II. ...

  7. 【BZOJ1443】游戏(二分图匹配,博弈论)

    [BZOJ1443]游戏(二分图匹配,博弈论) 题面 BZOJ 题解 很明显的二分图博弈问题. 发现每次移动一定是从一个黑点到达一个白点,或者反过来. 所以可以对于棋盘进行染色然后连边. 考虑一下必胜 ...

  8. 【学习笔记】ac自动机&fail树

    定义 解决文本串和多个模式串匹配的问题: 本质是由多个模式串形成的一个字典树,由tie的意义知道:trie上的每一个节点都是一个模式串的前缀: 在trie上加入fail边,一个节点fail边指向这个节 ...

  9. 51nod求助

    求助dalao们,51nod1170实在是不会了,有没有大佬讲一下,有兴趣的可以告诉我,我提供AC代码. using System; using System.Collections.Generic; ...

  10. Spring MVC POJO传参方式

    有两POJO类 Address.java package com.proc; public class Address { private String province; private Strin ...