无聊测试赛题解

无聊测试赛题解的相关文章

[无聊测试赛] T1 凯撒密码

本题的思路大致为首先解出每个字母所移动的格子数n,然后将所有的字母移动n个格子. n的解法: 第一行出现最多的字母和E的差就是n(题目后面的提示跳舞小人bfs证明可以理解为出现的频率) 具体实现为利用map存第一行每个字符出现的次数,然后移动全盘就行了 c++的好处在于他有内在的toupper(),tolower()和isalpha().在这题要注意答案全部需要转化为大写.我的解法是直接将输入转化为大写再统计 #include <cctype> #include <iostream>

[无聊测试赛] T4 汽车拉力比赛

这题有两个思路,第一个是并查集,第二是二分.我写的二分,复杂度 \(O(n^2logn)\) 可以过 二分的方法:二分高度差别.然后从某个点起点开始整个图.如果能够将所有起点覆盖,那么证明这个高度可以实现 遍历图可以用bfs实现.这题码量稍大,但思路清晰 #include <iostream> #include <algorithm> #include <queue> using namespace std; #define pp pair<int,int>

[无聊测试赛] T8 佳佳的魔法药水

思路比较新奇,但是想到了题目还是挺好做的 看到最小和次数可以想到最短路.看到数据范围可以想到必须在跑dij的时候记录次数.由于要记录的是最短路的方案,易证如果一种药有一种更便宜的配置方法,我们不会记录贵的那种. 于是,我们可以将这道题转化为一个用堆优化的dij.如果一种药水在堆顶,那么这种药水不可能有更便宜的配置方法 如果由A药水和B药水合成C药水比之前找到的配置方法便宜,那么C药水的配置方法数量为 A药水的配置方法 \(*\) B药水的配置方法. 如果由A药水和B药水合成C药水等于之前找到的配

[无聊测试赛] T3 出租车拼车

又是一个典型的背包.注意贪心思路:如果你要做这辆车,你就坐满他. \(i,j\)分别存坐上去的人总人数和现在的时间\(,dp[i][j]\) 统计来到这个状态的最小钱数 #include <iostream> #include <algorithm> #include <cstring> using namespace std; const int MAXN = 1e2+5; int n,k,d,s; int dp[MAXN<<1][MAXN],ans =

[无聊测试赛] T7 豪华游轮

观察题目,发现可以贪心能往前走多少往前走多少,然后尽量扭180度后退.剩下角度可以通过原地扭屁股实现,并不会影响距离 开两个变量分别记录往前走和往后走的距离.角度只需一个数组,往左记为 \(\theta\) ,往右记为 \(360-\theta\) 度 怎么找最接近 \(180\) ?背包... 答案怎么找?假设我们从 \((0,0)\) 出发,如果找到终点的 \(x\) 和 \(y\) 就能用勾股定理求出距离.x的值为往前走的值 * 往后走的值 \(cos(\theta)\),y的值为往后走的

[无聊测试赛] T5 最佳课题选择

又是背包...(这题比黄还简单) 一维dp. \(i\) 表示现在拿了课题数, \(dp[i]\) 表示拿到n个课题的最小花费.将dp初始化大一点就行,记得开longlong #include <iostream> #include <algorithm> #include <math.h> #include <cstring> using namespace std; const long long MAXN = 2e2+5; long long n,m;

[无聊测试赛] T10 所驼门王的宝藏

码农题.思维难度中等,难在调试 建边方法:分别将x和y排序,对每个点,对它旁边所有的x/y连边(如果他需要). 开map记录点的位置,对于每个点,如果他的九宫格之内有其他点,就对他连边 注意排序会使点的顺序混乱,故需要在状态里将点的id保存 连完边跑tarjan缩点.易证如果你能到一个环内的某个点,你就可以到达这个环内的每个点.每个环的权值为他里面的点数量.将各个环转化为一个新图 可以发现新图已经转化为一个DAG.可以选择用dfs/topo来记录答案.这里我选择用dfs. dfs每个未经过的点并

【2016北京集训测试赛(八)】 crash的数列

Description 题解 题目说这是一个具有神奇特性的数列!这句话是非常有用的因为我们发现,如果套着这个数列的定义再从原数列引出一个新数列,它居然还是一样的...... 于是我们就想到了能不能用多点数列套着来加速转移呢? 但是发现好像太多数列套起来是可以烦死人的...... 我们就采用嵌套两次吧,记原数列为A,第一层嵌套为B,第二层嵌套为C. 我们其实可以发现一些规律,对于Ci,它对应了B中i的个数:对于Bi,它对应了A中i的个数. 稍加处理即可,我们一边计算一边模拟数列的运算,同时可以计算

计蒜之道 测试赛 (BCD)

测试赛写写题解不会被吐槽吧... 淘汰赛车 时限:1000ms 内存:262144K 赛车比赛在潘多拉星球变得越来越流行了.但是他们的比赛跟我们平常的不太一样:n 辆赛车在一条长长的直道上展开同台竞技.每辆赛车的速度都为 1m/s,整条赛道在每一米都有坐标标记. 在比赛的赛车中,赛车 i 从 0 秒开始由 ai 向 bi 移动.到达 bi 之后转而返回由 bi 向 ai 移动.循环往复. 又是蒜头菌!原来这是蒜头菌正在玩的一个手机小游戏.蒜头菌可以在某些位置放下 TNT 炸毁某些赛车.因为他有