URAL题解三

URAL 1045

题目描述:有\(n\)个机场,\(n-1\)条航线,任意两个机场有且只有一种方案联通。现有两个恐怖分子从\(m\)号机场出发,第一个人在机场安装炸弹,乘坐飞机,引爆炸弹,在另一个机场降落,然后到第二人做一样的事,轮流做,直到某个人做不到就输。一个机场炸了后,任何与它相连的航线都不复存在。问第一个人能不能赢,如果能,则输出他第一个要飞到的机场,如果不能则输出First player loses

solution
博弈论,输赢状态的搜索。
时间复杂度:\(O(n)\)

URAL 1046

题目描述:在平面上有一个多边形,顶点坐标为\(A_i\)(顺时针),在多边形的每条边的外侧作一个点\(M_i\),使得\(M_i\)与对应边的两个点组成一个等腰三角形(对应边为底边),给出\(M_i\)和对应三角形顶角的角度\(\alpha _i\),求\(A_i\)。

solution
一开始不知道等腰有什么用,下意识就想去几何关系了。后来才想到:如果把\(M_i\)看成圆心,腰看成半径,那对应边的两个点都在圆上,也就是说,这两个点可以通过绕着\(M_i\)旋转一定角度得到,而这个角度就是\(\alpha _i\)。列出两条方程,发现未知数都是一次方的,可以用高斯消元解出所有未知数。
时间复杂度:\(O((2n)^3)\)

URAL 1047

题目描述:有\(n+2\)个数,\(a_0, a_1, ..., a_{n+1}\), 当\(1 \leq i \leq n\)时,\(a_i=(a_{i-1}+a_{i+1})/2-c_i\),给出\(a_0, a_{n+1}, c_i\),求\(a_1\)。

solution
一开始我又蠢蠢地去推公式,想直接算出答案。后来从问的结果得到灵感:不是只要求\(a_1\)吗?如果我能将\(a_{n+1}\)与\(a_0, a_1\)的关系递推出来,问题就解决了。整理一下公式
\[a_i=2(a_{i-1}+c_{i-1})-a_{i-2}\]
把每个\(a_i\)都表示为\(a_i=pa_0+qa_1+m\),最终就可以求出\(a_{n+1}\),解出答案。
时间复杂度:\(O(n)\)

URAL 1048

题目描述:给出两个\(n\)位数,求两个数的和。

solution
高精度,只是要注意一定要输出\(n\)位。
时间复杂度:\(O(n)\)

URAL 1049

题目描述:给出\(10\)个数,求这\(10\)个数的乘积的因数个数的个位。

solution
设\(10\)个数的乘积的质因子有\(m\)个,每个质因子有\(s_i\)个,那么因数个数就是\(\prod_{i=1}^m (s_i+1)\)。所以把这\(n\)个数的质因子个数统计一下即可。
时间复杂度:\(O(10\sigma(10^4))\)

URAL 1050

题目描述:给出很多段落,每个段落进行如下处理:从左到右找出双引号(")对(不一定相邻),将前一个双引号变成两个左单引号(`),将后一个双引号变成两个右单引号('),如果不成一对,则删去单独的双引号。注意:(\)后面紧接着的非字母字符串中的双引号不作处理(即找双引号时将其忽略)。
输出最终的段落。

solution
本来想一边读入一边处理,后来发现这样太恶心了,干脆就将它们一次过全部读进来,再对不同段落,是否结束,是否忽略进行判断,这样就舒服多了。
时间复杂度:\(O(总长度)\)

URAL 1051

题目描述:有一个无限网格,其中有一个\(n*m\)的石头矩形,石头放在网格中。现在可以任选一个石头,如果它四相邻的某个格子上有石头,则它可以往该方向跳两格,吃掉(移走)越过的石头,任意时刻一个格子中不能有多个石头。问最终最少剩下多少个石头。

solution
假设\(n \leq m\),当\(n<3\)时,显然答案是\((m+1)/2\)。
当\(n\)或\(m\)为\(3\)的倍数,则按下图进行处理:

所以答案是2.
当\(n>3\)且\(n\)不是\(3\)的倍数时,
先处理\(4*4, 5*5, 4*5\)



其它情况先三个三个地消除(像最上面第一个图),最后消成\(4\)或\(5\)行,然后用下面两个方法消列,最终变成\(4*4\)或\(5*5\)或\(4*5\)


所以答案是1.

URAL 1052

题目描述:在平面上有\(n\)个点,在平面上随意画一条直线,问最多穿过多少个点。

solution
两点确定一条直线,枚举两个点,再统计有多少个点在线上。
时间复杂度:\(O(n^3)\)

URAL题解三的更多相关文章

  1. URAL题解一

    URAL题解一 URAL 1002 题目描述:一种记住手机号的方法就是将字母与数字对应,如图.这样就可以只记住一些单词,而不用记住数字.给出一个数字串和n个单词,用最少的单词数来代替数字串,输出对应的 ...

  2. UVA题解三

    UVA题解三 UVA 127 题目描述:\(52\)张扑克牌排成一列,如果一张牌的花色或者数字与左边第一列的最上面的牌相同,则将这张牌移到左边第一列的最上面,如果一张牌的花色或者数字与左边第三列的最上 ...

  3. URAL题解二

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

  4. URAL题解—不断跟新中

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

  5. Codeforces 1215D Ticket Game 题解

    Codeforces 1215D Ticket Game 原题 题目 Monocarp and Bicarp live in Berland, where every bus ticket consi ...

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

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

  7. 【线段树】Bzoj1798 [AHOI2009] 维护序列

    Description 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成. 有长为N的数列,不妨设为a1,a2,…,aN .有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2 ...

  8. WC2019 题目集

    最近写的一些 WC2019 上讲的一些题.还是怕忘了,写点东西记录一下. LOJ2983 「WC2019」数树 题意 本题包含三个问题: 问题 0:已知两棵 \(n\) 个节点的树的形态(两棵树的节点 ...

  9. BZOJ4543 Hotel加强版

    题面 $\text{BZOJ}$间接权限题 洛谷的弱化版 题解 三点距离两两相等要满足以下条件: 有一个相同的$\text{LCA}$ 所以如果存在一个点,使得另外两个点在它子树中,距离为$d$,且$ ...

随机推荐

  1. BZOJ 1189 紧急疏散(二分+最大流)

    求出所有人撤离的最短时间.由于每扇门只能通过一次,所以不能简单用bfs来搞. 显然答案是有单调性的,考虑二分,问题变成了判断时间x所有人能不能撤离. 考虑最大流.对于每扇门,每个时间通过的人数最多为1 ...

  2. 【Mybatis】<foreach>标签在mybatis中的使用

    mapper.xml如下: <select id="selectCkspcb" parameterType="java.util.Map" resultT ...

  3. C++解析-外传篇(2):函数的异常规格说明

    0.目录 1.异常规格说明 2.unexpected() 函数 3.小结 1.异常规格说明 问题: 如何判断一个函数是否会抛出异常,以及抛出哪些异常? C++提供语法用于声明函数所抛出的异常 异常声明 ...

  4. 洛谷 P4219 [BJOI2014]大融合 解题报告

    P4219 [BJOI2014]大融合 题目描述 小强要在\(N\)个孤立的星球上建立起一套通信系统.这套通信系统就是连接\(N\)个点的一个树. 这个树的边是一条一条添加上去的.在某个时刻,一条边的 ...

  5. 2656: [Zjoi2012]数列(sequence)(递归+高精度)

    好久没写题了T T NOIP 期中考双血崩 显然f(x)=f(x>>1)+f((x>>1)+1),考虑每次往x>>1递归,求出f(x),复杂度O(logN) 我们设 ...

  6. bzoj3748 Kwadraty

    Claris 当然是要用来%的 但是,,其他dalao,,比如JL的红太阳commonc.题解能不能稍微加几句话,蒟蒻看不懂啊. 在这里解释一下,Claris的题解.(因为我弱,想了半天才明白,所以觉 ...

  7. Matlab一个错误引发的血案:??? Error using ==> str2num Requires string or character array input.

    Matlab总遇到一些神奇的问题,让人摸不着头脑.昨天编写程序的时候遇到一个让我十分火大的问题,也是自己的matlab基础不好吧. 先描述一下问题,再GUI界面有个listbox,Tag属性是’lis ...

  8. Windows互斥锁demo和分析

    一:windows创建锁接口 创建互斥锁的方法是调用函数CreateMutex HANDLE CreateMutex( LPSECURITY_ATTRIBUTESlpMutexAttributes, ...

  9. ural 1297 后缀数组 最长回文子串

    https://vjudge.net/problem/URAL-1297 题意: 给出一个字符串求最长回文子串 代码: //论文题,把字符串反过来复制一遍到后边,中间用一个没出现的字符隔开,然后就是枚 ...

  10. Tests for normality正态分布检验

    欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频教程) https://study.163.com/course/ ...