TopCoder 题解
文章平均质量分 53
WLHW
这个作者很懒,什么都没留下…
展开
-
TopCoder SRM 667 div.2
Kirill plays a new computer game. He came to the potion store where he can buy any potion. Each potion is characterized by two integers— amount of experience and cost. The efficiency of a potion is the ratio of the amount of experience to th原创 2018-07-31 18:42:46 · 125 阅读 · 0 评论 -
TopCoder SRM 579
div.1T1题意 编辑器由三部分组成:结果窗口,文本缓冲区和撤消历史记录。 Bob可能会输入一个小写字母。该字母附加到文本缓冲区。然后将新文本缓冲区添加为撤消历史记录的新元素。 Bob可以使用两次鼠标单击将任何条目从撤消历史记录恢复到文本缓冲区。此操作不会修改撤消历史记录。 返回Bob需要将所有给定行打印到结果窗口中的最小按钮按下次数思路 模拟每个...原创 2018-09-05 14:08:21 · 286 阅读 · 0 评论 -
TopCoder SRM 575
div.1T1题意 每一步可以对把当前数N,减去 N的任意一个非1,N的因子。谁先不能操作就算输。思路 记A(i) 为当N=i时先手是否必胜,显然A(i)只依赖于A(1)~A(i-1),可以暴力DP(N<100),即可观察到规律。 结论:当且仅当N为偶数,且N != 2^(2*x+1)(x为任意非负整数)时,为先手必胜,否则为先手必败。#incl...原创 2018-08-29 18:06:15 · 193 阅读 · 0 评论 -
TopCoder SRM 574
div.1T1题意 有两个数字a,b 玩家A 持有a,玩家B 持有b 他们可以改变自己的数字 方式为 1. 倒转 2.除以10 两人轮流进行操作 A先 若在1000步以内可以使得两个数字相同 则A胜利 反之 A失败思路 只要判断一下 a中有没有b或b的翻转数的子串 即可//tc is healthy, just d...原创 2018-08-29 16:58:55 · 258 阅读 · 0 评论 -
TopCoder SRM 573
div.1T2题意 给定一个50个点的图, 每个点有一个高度, 从一个点u到另一个点v的条件是u, v直接相连, 并且h[u] >= h[v],每个点的高度可以改变代价为改变前后高度差的绝对值, 求从点0到点n - 1的最小代价。思路 定义dp[u][h]表示顶点u高度为h时最小代价由于最优方案中每个点的高度可以是这50个点的起始高度所以可以将高度离散化一下, ...原创 2018-08-28 17:15:02 · 230 阅读 · 0 评论 -
TopCoder SRM 572
div.1T1题意 有一个字符串 和一个数k 改变最少的字符使得字符串的前k个字符与后k个字符 相同思路 使用并查集,将需要相同的字符并起来。再在每个集合中将其修改为出现次数最多的字符。#include <bits/stdc++.h>using namespace std;int f[10000],vis[100010];map<...原创 2018-08-28 13:02:18 · 278 阅读 · 0 评论 -
TopCoder SRM 571
div.1T1题意 给个数,n,求1-n中安字典序升序排列的前50个数。思路 直接爆搜即可#include <bits/stdc++.h>using namespace std;vector<string> ans;class FoxAndMp3 {public: vector <string> playL...原创 2018-08-28 11:43:28 · 157 阅读 · 0 评论 -
TopCoder SRM 570
div.1T1题意 给一个操作序列,每次向当前方向走a[i]步,然后90度转a[i]次,问做T次该操作序列之后的位置与起始位置的manhattan距离。思路 首先肯定做完4次操作序列后肯定能还原方向,那么模拟做完剩下的就行了。//tc is healthy, just do it#include <bits/stdc++.h>using name...原创 2018-08-28 11:40:34 · 296 阅读 · 0 评论 -
TopCoder SRM 569
div.1T1题意 有一台机器,给定两个长度为N的01串作为输入,分别对每一位进行与、或、异或中的一种操作,输出操作后的串。先给定M个01串,问至少要添加几个串,才能判断出机器对每一位分别进行什么操作。思路 显然位与位之间互相独立,那么单独考虑一位。 对于每一位,都至少要有1个0,2个1,如果不足就要添加。 这是只有三种输入:(0,0),(0,1),(1,...原创 2018-08-28 11:37:48 · 186 阅读 · 0 评论 -
TopCoder SRM 568
div.1T1题意 现有n个盒子,每个盒子里分别有R个红球,G个绿球和B个蓝球。 可以进行一种把一个球从一个盒子放到另一个盒子的操作。 现要用这种操作使得每个盒子里都只有一种颜色的球。 求最小操作次数。若不能,输出-1.思路 首先,把所有的球都放到假想的三个框中。代价为球的总数。 然后我们发现,每个框都有一种颜色的球不需要放到假想框中。这种...原创 2018-08-28 11:33:28 · 307 阅读 · 0 评论 -
TopCoder SRM 567
div.1T1题意 给你两个数,N,M,然后有一个整数a属于1到N,b属于1到M,问有几个a有序数对(a,b)满足(sqrt(a)+sqrt(b))^2是整数。思路 知道(sqrt(a)+sqrt(b))^2拆开就是a+b+2 * sqrt(ab),那么只要满足ab是完全平方数就好了,我们考虑a,b都是一些质数次方的乘积,我们吧a,b中本来就有的完全平方数去掉,会发现...原创 2018-08-28 11:27:42 · 241 阅读 · 0 评论 -
TopCoder SRM 566
div.1T1题意 : 有n个点,m条边,点的位置不知道,但是三点不共线,可以去掉任意条边,问使得没有两条线相交的情况的数量; 思想: 有两种选法,一种是三条边正好围成三角形,另一种是菊花图,这样就保证最长的链长度小于等于2。。。#include <bits/stdc++.h>using namespace std;long long a[100]...原创 2018-08-28 11:17:28 · 189 阅读 · 0 评论 -
TopCoder SRM 577
div.1T1题意 如果N可被20整除,则房间数被设置为R = N/20,否则R = N/20 + 1 注册人按降序排列 第一批R注册人被随机分配到房间,使得其中没有两个人在同一个房间。然后对下一个R注册人进行同样的操作,依此类推,直到没有更多未分配的注册人为止。 Elly的评级是列表中的第一个。 返回Elly房间(包括她自己)的参赛者的预期平均评分。...原创 2018-08-30 19:11:07 · 386 阅读 · 0 评论 -
TopCoder SRM 576
div.1T1题意 有一个n*m的图,一些单元格的底部有可以站立的平面,最下面一行都有 如果两个单元都包含平台并且| i1-i2 |,则Manao可以在两个单元(i1,j)和(i2,j)之间爬行 只有一个单元格包含金币 找到最短的梯子使得可以取到金币#include <bits/stdc++.h>using namespace std;int...原创 2018-08-30 17:46:08 · 371 阅读 · 0 评论 -
TopCoder SRM 580
div.1T1题意 鳗鱼i的长度是l [i],速度是1。 在时间T,鳗鱼i的头部位于坐标T-t [i],其尾部位于坐标T-t [i] -l [i]。 当鳗鱼的某些部分(头部和尾部之间,包括在内)与兔子处于同一坐标时,兔子可能只捕捉到鳗鱼。 兔子最多可以捕获两次鳗鱼 返回兔子可以捕获的最大鳗鱼总数。思路 优选择一定是在2n个端点中选出两个#...原创 2018-09-06 20:36:56 · 343 阅读 · 0 评论