Topcoder题解
文章平均质量分 52
mlzmlz95
这个作者很懒,什么都没留下…
展开
-
Topcoder SRM 596
250:只需要枚举乘2的次数暴力统计即可500:很容易知道一两个性质:(1) 每个二进制位最多有2个1(2) 任意一对数至少有一位均为1由于要求字典序最小,我们添加数的时候可以从小到大枚举二进制位同时枚举已经存在的数,使其满足性质。但是添加的数相互之间并不满足性质,于是依旧从大到小枚举二进制位,统计哪个二进制位为0,使一对数该二进制位为1即可。这样,既满足条件,又满足字典序最小。原创 2013-11-06 16:30:20 · 998 阅读 · 2 评论 -
srm 548
欢迎点此阅读QvQ250Description有N(N≤50)N(N\le 50)个数,每个数的可变范围是[max(N−X,1),N+X][max(N-X,1),N+X]。让这个数列严格递增的最小XX是多少?Solution显然可以二分答案,然后二分一个xx后,我们可以贪心判断,使得前面的数尽量小给后面数更大的变化空间即可Code#include <bits/stdc++.h>using name原创 2015-09-30 15:23:44 · 305 阅读 · 0 评论 -
srm 547
欢迎点此阅读QvQ250Description1≤x≤105,1≤y≤105,x,y∈N1\le x\le 10^5, 1\le y\le 10^5,x,y\in N,给定ww,随机选x,yx,y求∑sqrt((x−y)2+w2)\sum sqrt((x-y)^2+w^2)的期望Solution枚举x−yx-y即可,注意细节即可Code#include <bits/stdc++.h>using n原创 2015-09-29 18:02:04 · 399 阅读 · 0 评论 -
srm 543
cccc原创 2015-09-14 21:14:50 · 1789 阅读 · 0 评论 -
srm 552
欢迎点此阅读QvQ250Description定义大小为NN的三角形, 是由若干个等大的圆形构成的, 高度和底宽为NN,三角形的每个圆染三种颜色r,g,br,g,b,相接触的圆不能染同种颜色,问有RR个rr颜色的球, GG个gg颜色的球和BB个bb颜色的球, 最多能染多少个大小为NN的三角形Solution稍加分析可以发现,每个三角形三个颜色的球要不是x,x,xx,x,x,要不是x,x,x+1x,x原创 2015-10-20 21:45:27 · 407 阅读 · 0 评论 -
srm 549
欢迎点此阅读QvQ250Description有两个集合,每个集合有N(N<50)N(N<50)个锥面(表示为高HH和底面半径RR,均小于1000010000)。要求从集合11和集合22的笛卡尔积集合中选取最多的元素满足如下性质: * (1): Ha / Ra > Hb / Rb * (2): Ra < RbSolution很显然的一个二分图匹配Code#include <bits/stdc++原创 2015-10-10 13:52:52 · 333 阅读 · 0 评论 -
srm 518(有FWT的题QvQ)
250Description从一个字符串中找一字典序最大的字串Solution从左至右贪心即可500:Description有一个序列,每次可以将一个数-1需要花费1的代价,问最后使得序列满足2ai≤ai−1+ai+12a_{i}\le{a_{i-1}+a_{i+1}}Solution因为满足ai−1−ai≥ai−ai+1a_{i-1}-a_{i}\ge{a_{i}-a_{i+1}}`,也就是说序列原创 2015-09-20 23:57:47 · 986 阅读 · 0 评论 -
srm 550
资瓷点此阅读QvQ300Description有个机器人,从某一点出发,他只有碰到地形边缘或者碰到走过的点时才会改变运动方向,然后接着走,现在给出他的运动轨迹,判断他的运动是否合法,如果合法的话,那么整个地形的最小面积是多少。每次走的步数≤50\le 50Solution先确定最大的最小的x,yx,y,然后进行验证,如果走到重复的地方或者不应该转弯时转弯则不合法。Code#include <bits原创 2015-10-11 16:41:02 · 444 阅读 · 0 评论 -
srm 551
资瓷点此阅读QvQ250Description题意:一个长度最多5050的字符串,每次操作可以交换相邻的两个字符,问,经过最多MaxSwapsMaxSwaps次交换之后,最多能让多少个相同的字符连起来Solution枚举一个字符,让其他字符往这里即可,取最小即可Code#include <bits/stdc++.h>using namespace std;#define pb push_back原创 2015-10-12 16:50:26 · 399 阅读 · 0 评论 -
srm 545
欢迎点此观看QvQ275Description让你构造一个长度为nn的串,逆序数恰好为mm且字典序比某字符串stringstring大,请构造字典序最小的这样的串。Solution数据范围非常小,暴力搜索即可Code#include <bits/stdc++.h>using namespace std;#define pb push_back#define mp make_pair#defi原创 2015-09-24 16:46:36 · 324 阅读 · 0 评论 -
srm 546
欢迎点此观看QvQ250Solution考虑奇偶性,每次定一个可以变成该数的上下界,按二进制位考虑即可Code#include <bits/stdc++.h>using namespace std;#define pb push_back#define mp make_pair#define F first#define S secondtypedef long long LL;typ原创 2015-09-24 20:51:47 · 375 阅读 · 0 评论 -
srm 554
欢迎点此阅读QvQ250Description给高度为h1h_1的棍子r1r_1个,h2h_2的r2r_2个,轮流放,问最多放出多少种不同的高度Solution考虑h1h_1是否等于h2h_2,再讨论即可Code#include <bits/stdc++.h>using namespace std;#define pb push_back#define mp make_pair#define原创 2015-11-18 15:51:14 · 346 阅读 · 0 评论 -
srm 555
欢迎点此阅读QvQ255Description问能将一个0/10/1串最少分成几个串使得每个串都是55的整数次幂,且没有前导零Solutiondp即可,dp[i]dp[i]表示前ii个字符分割的结果,枚举一个分割点jj,checkcheck即可Code#include <bits/stdc++.h>using namespace std;#define pb push_back#define原创 2015-11-23 16:05:44 · 381 阅读 · 0 评论 -
srm 553
欢迎点此阅读QvQ250Solution把−1-1分别替换为0,1,20,1,2来判断答案是否变化即可。简单粗暴Code#include <bits/stdc++.h>using namespace std;#define pb push_back#define mp make_pair#define F first#define S secondtypedef long long LL原创 2015-11-18 15:39:52 · 369 阅读 · 0 评论 -
srm 556
欢迎点此阅读QvQ250Description一个点数为5050的无向图,每个节点ii有一个分值v[i]v[i],当你进入到v[i]v[i]的时候,你的分数是value(当前分数)xorv[i]value(当前分数) xor v[i],请问从点00开始,你任意走能获得的最大分数 value≤1023value \le 1023Solution注意权值为10231023,bfs即可Code#incl原创 2015-11-26 16:50:46 · 474 阅读 · 0 评论 -
srm 557
资瓷点此阅读QvQ250Description一个点数为5050的无向图,每个节点ii有一个分值v[i]v[i],当你进入到v[i]v[i]的时候,你的分数是value(当前分数)xorv[i]value(当前分数) xor v[i],请问从点00开始,你任意走能获得的最大分数 value≤1023value \le 1023Solution注意权值为10231023,bfs即可Code#incl原创 2015-11-27 16:00:49 · 525 阅读 · 0 评论 -
srm 541
资瓷点这里阅读该文章O_o250Solution水题,最暴力的方法枚举即可Code#include <bits/stdc++.h>using namespace std;#define pb push_back#define mp make_pair#define F first#define S secondtypedef long long LL;typedef pair<int,原创 2015-07-19 15:49:35 · 655 阅读 · 0 评论 -
srm 542
资瓷点击此处阅读该文章O_o250Description从矩形地图中选三个点,使得A-B,B-C,C-A的曼哈顿距离和在给定的一个范围内,求多少种选法。X,Y≤3000X,Y\le 3000Solution水题,很容易发现曼哈顿距离和是一个矩形的周长,枚举长和宽统计即可。Code#include <bits/stdc++.h>using namespace std;#define pb push原创 2015-07-20 21:03:05 · 683 阅读 · 0 评论 -
SRM 589题解
topcoder srm589 1000原创 2014-03-05 22:41:57 · 810 阅读 · 0 评论 -
srm 527
这套题是cgy出的,良心的保证啊275题意: 构造出一棵树,给出每种度数的权值,一棵树的权值是 所有点权和,求最大权值 Solution: 我们可以发现由于是一棵树,所有度数之和一定是2n−22n-2,我们要做的其实就是度数的一个划分,使得权值最大而已,dp一下即可。 Code:#include <bits/stdc++.h>using namespace std;const int原创 2015-05-28 18:50:34 · 739 阅读 · 0 评论 -
srm 526.5 题解
这套题是cgy出的,良心的保证啊250题意: n个数编号1∼n,每次删掉完全平方数,剩下的数重新标号,求最后剩下的数的初始标号n个数编号1\sim n,每次删掉完全平方数,剩下的数重新标号,求最后剩下的数的初始标号 Solution: 其实可以理解为剩下的数的最大标号,暴力每次看当前剩下的最大编号的数是否被删除即可。最后剩下的即为答案。 Code:#include <bits/stdc++.原创 2015-05-28 18:41:26 · 821 阅读 · 0 评论 -
srm 528
250Solution唔,这是个傻逼题,随便暴力下就好= =Code#include <bits/stdc++.h>using namespace std;class Cut { public: int getMaximum(vector <int> eelLengths, int maxCuts) { sort(eelLengths.begin(), ee原创 2015-05-28 19:05:44 · 556 阅读 · 0 评论 -
srm 530
srm 529感觉题并不是很有趣,所以不打算写题解辣>_<250Solution唔,这是个傻逼题,随便暴力下就好= =Code#include <bits/stdc++.h>using namespace std;typedef pair<int,int> pii; class GogoXCake { public: string solve( vector <string>原创 2015-06-01 23:39:53 · 4654 阅读 · 0 评论 -
srm 531
300 Description 你有nn种曲子,要搞出一个长度为pp的歌曲序列,保证任意两首相同的曲子之间至少有mm首其他曲子。求用全部nn种曲子生成的歌曲序列种数mod109+710^9 + 7 Solution 考虑f[i][j]f[i][j]表示当前是序列的第ii首歌,已经用了j种不同的曲子的方案数。考虑当前用新的曲子,则f[i][j]=f[i−1][j−1]∗(n−j)f[i][j]原创 2015-06-03 17:25:54 · 668 阅读 · 0 评论 -
srm 532
300 Description 给你一坨纯数字的,带”.”和数字的字符串,让你拼起来,使得取一个连续段的字符串使得数字之和最大 Solution 模拟题。考虑详细就好,我自己的代码比较麻烦= =b看看就好T_T Code#include <bits/stdc++.h>using namespace std;#define mp make_pair#define pb push_bac原创 2015-06-05 16:14:20 · 733 阅读 · 0 评论 -
srm 533
250 Description 给你一串数字序列,每次删掉第ii个数,获得权值w[i−1]×w[i+1]w[i-1]\times w[i+1],求最后剩下第一个和最后一个数获得的最大权值和 Solution 简单dp,枚举断点即可 Code#include <bits/stdc++.h>using namespace std;const int N = 55;typedef long原创 2015-06-05 18:26:52 · 626 阅读 · 0 评论 -
srm 534
250 Description 给你一个1*n的棋盘,两人轮流行动,每个人可以把”o”向右移动到空格子,或者跨越连续两个”o”到空格子。一个”o”到最右端的时候消失。问谁获胜。 Solution 一个比较有趣的题,我们考虑每个”o”到最右端的距离,两种行动其实都是改变距离的奇偶,所以其实只需要考虑最终状态和距离和的奇偶性即可。 Code#include <bits/stdc++.h>us原创 2015-06-11 14:14:01 · 565 阅读 · 0 评论 -
srm 535
250 Description 给a,b的gcd为G,lcm为L,求min(a+b) Solution 水题,把a,b都先除以G,然后枚举即可 Code#include <bits/stdc++.h>using namespace std;#define pb push_back#define mp make_pair#define F first#define S second原创 2015-06-11 15:34:27 · 584 阅读 · 0 评论 -
srm 536
250 Description 给n个数,你可以合并任意k个数,合并之后出现的数是a[x]+a[y]+...+a[x]/ka[x]+a[y]+...+a[x]/k。问最后剩下的数字最大是多扫 Solution 类似于霍夫曼树,每次贪心把最小的两个数合并即可。 Code#include <bits/stdc++.h>using namespace std;#define pb push_原创 2015-06-12 16:06:51 · 563 阅读 · 0 评论 -
srm 537
275 Description 给定A,B,X≤200A,B,X\le 200,让你求出有多少个YY满足X∗i+Y∗jX*i+Y*j可以表示所有的A∗p+B∗qA*p+B*q Solution 首先如果XX是A和BA和B的约数的话,显然Y是无穷多个,否则我们可以暴力枚举YY,判断X和YX和Y的线性组合是否可以表示A和BA和B,如果可以的话答案+1。 Code#include <bits/s原创 2015-06-15 21:02:25 · 585 阅读 · 0 评论 -
srm 538
题外话之前准备期末预习加上刚放假浪了一会= =没有补题,今天开始恢复补题。。250Description:平面上给出NN个点,整数坐标。从(0,0)(0,0)出发,每次往上下左右四个垂直方向走,要求遍历所有点至少一次,最后回到给出的N个点中的某个点(不包括原点)。然后走过的距离是曼哈顿距离。给出一个数字代表要求走过的距离为奇还是为偶。问能否满足要求。Solution显然如果要求是偶的话只有全奇时无解原创 2015-07-14 15:35:24 · 898 阅读 · 0 评论 -
srm 540
250Description:给定 一个数组B,和一个”+-“组成的字符数组,求有多少种A数组。 B数组是由A数组相邻的两个数和符号运算后的结果。Solution显然如果第一个数固定,整个A数组就固定下来了,所以就是求第一个数有多少种可能。我们发现给定的是A1+x2,A2−A3...A_1+x_2,A_2-A_3...这种形式。于是我们可以通过连续的运算得到A1A_1和其他AiA_i的关系,取上下原创 2015-07-16 22:28:47 · 629 阅读 · 0 评论 -
srm 539
250Description:从若干个盒子中任意选择几个装石头,每个盒子容量都有上下限,一旦选择使用某个盒子,那么填装的石头数必须在该盒子的上下限容量之间。假设最终填装的石头总数为xx,那么符合条件x>9000x>9000的xx有多少个? 数据规模:盒子总数[1,15][1,15], 盒子容量[1,106][1,10^6]Solution盒子总数15很容易想到枚举状态,把每个的上下限存一原创 2015-07-15 20:11:21 · 536 阅读 · 0 评论 -
srm 558
欢迎点此阅读QvQ275Description懒得写了= =自己看吧。。。Solution直接dp即可,用二进制的小技巧表示相同颜色即可Code#include <bits/stdc++.h>using namespace std ;typedef long long LL;#define mp make_pair#define pb push_back#define F first#d原创 2015-12-03 20:35:00 · 503 阅读 · 0 评论