TopCoder SRM624 BuildingHeightEasy 题解】的更多相关文章

本题题意就是求有一组建筑物,问把这些建筑物的M个都统一到同一高度.须要的最小改动高度是多少? 题意隐含的意思就是由于是建筑物,所以不能降低,仅仅能添加了. 本题能够使用暴力搜索,由于数据量少. 可是事实上能够小排序.然后再求高度差的. 排序之后从第M个建筑物開始搜索.第M个建筑物与前面M个建筑物组成的建筑物群肯定是当前最小改动高度了. 一个题目要求的类和一个測试程序: #include <vector> #include <algorithm> #include <limit…
Problem Statement   Let's say you have a binary string such as the following: 011100011 One way to encrypt this string is to add to each digit the sum of its adjacent digits. For example, the above string would become: 123210122 In particular, if P i…
好久没来写了,继续继续... Easy(250pts): //前方请注意,样例中带有zyz,高能预警... 题目大意:给你一个字符串,中间有一些是未知字符,请你求出这个字符串的回文子串个数的期望值.数据满足字符最多2500个. 我们考虑每一个子串,它对答案的贡献度就是它是回文串的概率,那么我们扫一遍就可以了, 这样做时间复杂度O(n^3),显然过不去. 我们考虑一下对于一个子串,在判断其是回文串的时候,我们一定是从中间往两边扫的,那么其实中间这些子串我们已经统计过答案了, 也就是说,我们通过枚举…
打卡- Easy(250pts): 题目大意:rating2200及以上和2200以下的颜色是不一样的(我就是属于那个颜色比较菜的),有个人初始rating为X,然后每一场比赛他的rating如果增加就会加D[i],如果减就会减D[i],但是如果rating小于0了就变成0,这个人不太喜欢比较厉害的颜色,所以他不能连续两次rating大于等于2200,求颜色变化的最多个数,保证比赛最多50场,D[i]<=10^9. 这套题还是很难的,所以我们来好好分析. 首先,样例0告诉我们贪心什么都是假的,不…
概览: T1 枚举 T2 状压DP T3 DP TopCoder SRM 667 Div.2 T1 解题思路 由于数据范围很小,所以直接枚举所有点,判断是否可行.时间复杂度O(δX × δY),空间复杂度O(1). 参考程序段 #include <bits/stdc++.h> using namespace std; class PointDistance { public: vector <int> findPoint( int x1, int y1, int x2, int y…
本题就是给出一个数k和一个数组,包含N个元素,通过每次添加�数组中的一个数的操作,最后须要得到1 - N的一个序列,不用排序. 能够从暴力法入手,然后优化. 这里利用hash表进行优化,终于得到时间效率是O(n*n)的算法,并且常数项应该非常低,速度还挺快的. 思路: 1 假设数组A[i]在1 -N 范围内,就利用bool B[]记录,这个数已经找到了: 2 假设A[i]的值之前已经找到了,那么就添加�k操作,得到新的值A[i]+k,看这个值是否找到了,假设没找到,就使用B记录,假设之前已经找到…
Easy(300pts): 题目大意:有n个盒子,一共有S个苹果,每个盒子有多少个苹果不知道,但是知道每个盒子的苹果下限和上限.现在要至少选择X个苹果,问如果要保证无论如何都能获得至少X个苹果,至少需要选择多少个盒子.数据满足n<=50. 首先第一个方面,如果我们选择的盒子的下限大于等于X,那么显然我们一定可以获得那么多的苹果, 所以我们将盒子的下限排序,然后从大到小累加即可. 另一方面,如果我们没有选择的盒子的上限小于等于S-X,那么显然我们也一定可以获得那么多的苹果, 于是我们再按照上限排序…
打卡! Easy(250pts): 题目大意:一个人心中想了一个数,另一个人进行了n次猜测,每一次第一个人都会告诉他实际的数和猜测的数的差的绝对值是多少,现在告诉你所有的猜测和所有的差,要求你判断心中所想的数是多少,如果无解输出-1,如果有多个解输出-2.数据满足n<=50,想的那个数在[1,10^9]中. 这题是不是很简单呀- 首先通过第一次我们就最多确定两个数了, 然后分别带到后面去看一下就可以了, 时间复杂度O(n),代码如下: #include <bits/stdc++.h> u…
日常打卡- Easy(250pts): 题目大意:你有n种汉堡包(统统吃掉-),每一种汉堡包有一个type值和一个taste值,你现在要吃掉若干个汉堡包,使得它们taste的总和*(不同的type值的个数)乘积越大,输出这个最大值.数据满足n<=50,type<=100,abs(taste)<=100000. 这题好像是个贪心,才不是呢啊哼- 首先我们发现,如果若干个汉堡包有同一个type值,那么我们可以把这一些汉堡包看成一个新的大汉堡包,它的type就是原来的type,它的taste就…
CTSC考完跑了过来日常TC--- Easy(250pts): 题目大意:有个机器人,一开始的位置在(0,0),第k个回合可以向四个方向移动3^k的距离(不能不动),问是否可以到达(x,y),数据满足|x|,|y|<=10^9. 这题还是很简单的嘛,口亨--- 首先我们只考虑一个方向,于是发现,每一次可以移动3^k的距离或者不动,于是我们发现这样的序列是有且仅有一个的, 于是我们分开考虑x和y,把两个序列全部预处理出来, 然后直接扫一遍就做完了, 时间复杂度O(log|x|)左右吧,代码如下:…
昨天刚打了一场codeforces...困死了...不过赶在睡前终于做完了- 话说这好像是我第一次做250-500-1000的标配耶--- Easy(250pts): 题目大意:有一棵树,一共n个节点,每个节点都有一个权值,两人A和B分别进行操作,由A先手,每人可以选择一条边,将它删掉得到两个联通块.游戏不断进行下去,最后只剩下一个节点.A希望最后的节点权值尽可能大,B希望尽可能小,求这个最后的值.数据保证n<=50. 这道题真的是博弈好题啊-(感觉放到ACM很合适啊) 我们考虑第一次A会如何选…
日常TC计划- Easy(250pts): 题目大意:有n个篮子,每个篮子有若干个苹果和橘子,先任取一个正整数x,然后从每个篮子中选出x个水果,把nx个水果放在一起,输出一共有多少种不同的组成方案.其中n<=50,每个篮子中每种水果的个数<=1000000,可能有篮子不存在水果. 首先考虑x的大小,由于每个篮子中都要取出x个水果,那么apple[i]+orange[i]>=x,于是我们先将所有的篮子扫一遍,得到x的上届. 接下来我们枚举x,考虑每一个篮子中的情况, 由于最后要求的是方案数…
日常TC计划正式启动! Easy(250pts): 题目大意:给你一个集合,里面一堆数,初始数为0,给你一个目标数,你可以选择集合中若干个数进行OR操作来得到目标数.问至少删去多少个数,使得你永远无法达成目标,保证集合最多50个数,每个数<=10^9,且集合中的数两两互不相同. 显然我们要按照每个数的二进制位来考虑,由于所有的数<=10^9,所以最多只有30个二进制位. 如果集合中的一个数,存在某一位使得这个数为1,但是目标数为0,那么这个数一定不能取. (因为如果取了,那么当前的数这一位就变…
给出一个字符串求是palindrome和anagram的比率是多少. 知识点: 1 DBL_MAX 64位double的最长数大概是1.7E308,非常大非常大,比long long大上不知多少倍.故此大概能容纳150!的数值.不能容纳200!的数值 2 偶数的时候.不能有字母反复为基数次,否则不能组成palindrome 3 基数的时候,仅仅能有且仅仅有有一个字母反复为基数次,用于放在中间的,否则也不能组成palindrome 4 计算带反复数的全排列公式:P(N) / P(M1)/P(M2)…
T1 解题思路 这题应该不是很难,主要是题意理解问题. 注意给出的两个数组里映射关系已经对应好了,只要判断是否为双射即可 参考程序 #include <bits/stdc++.h> using namespace std; class RelationClassifier { public: string isBijection( vector <int> domain, vector <int> range ); }; int reflect[110], used[1…
题目 考虑DP.\(f(msk,i)\) 表示集合 \(msk(一定包含0号点)\) ,选了恰好i条边的连通方案数.转移用容斥,用这个点集内部所有连边方案减去不连通的.令\(|e_{msk}|\)表示两个端点都在集合msk内的边数,D为\(e_{\complement_{msk}sub}\)(sub在msk中补集内部的边集).转移式:\(f(msk,i)=\binom{|e_{msk}|}{i}-\sum_{sub \in msk,0 \in sub,0 \leq j \leq i} f(sub…
TopCoder                        250                              500                                         1000                                589 div2 简单题 简单的分析题! //非常好的DP!硬币反转!待补 590 div2 简单题!模拟五子棋判断 简单搜索,模拟围棋!  蛮好的DP!递推!掌握技巧! 591 div2 简单题 简单题,暴力…
body { font-family: Monospaced; font-size: 12pt } pre { font-family: Monospaced; font-size: 12pt } Problem Statement      You have an array with N elements. Initially, each element is 0. You can perform the following operations: Increment operation:…
http://community.topcoder.com/stat?c=problem_statement&pm=12822&rd=15707 第一次用C++提交,艰辛.首先想到可以从尾往前扫,只有最后覆盖的颜色才有效:然后是想到用线段来做,用map记录线段:然后学到了lower_bound是找到元素插入的位置,返回的*it>=该元素,也可能是end.cp博士一般得到lower后处理边界,同时用+-来做.但这里用map不好,因为先前一道题是不用merge.这里如果要merge,可能…
http://community.topcoder.com/stat?c=problem_statement&pm=10750&rd=14153 http://apps.topcoder.com/wiki/display/tc/SRM+470 因为是棋盘型,然后就想到棋盘型DP:觉得不行,就想到BFS/DFS(这时其实已经把这个看成一张图了).发现,寻找下一个节点进来的时候,总是要全局考虑所有已经Activate的点,BFS/DFS未果.此时感觉有点像最小生成树的Prim算法,用贪心的,但…
据说做TC题有助于提高知识水平? :) 传送门:https://284914869.github.io/AEoj/index.html 转载请注明链接:http://www.cnblogs.com/Blog-of-Eden/p/8407296.html Topcoder SRM 562 Div 1 - Problem 1000 InducedSubgraphs 当K*2<=N的时候,显而易见的是编号为i(K<=i<=N-K+1)的点一定会形成一条链. 枚举合法的这样的链,剩下的暴力dp吧…
51nod图论题解(4级,5级算法题) 1805 小树 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 她发现她的树的点上都有一个标号(从1到n),这些树都在空中飘浮不在土地上生根,然而每天她的这些树会变化一个形态,这使得她很恼火,她想弄清楚到底有多少种形态. 特殊的是这些树的叶子(度数为1)数目是不变的. 由于数目可能很大,她只要它模(1,000,000,007)就可以了. n=3,m=2时有3种方案:1-2-3, 2-3-1,3-1-2. 3-1-2和…
第一题,http://community.topcoder.com/stat?c=problem_statement&pm=13462&rd=16076 模拟就可以了. #include <vector> #include <algorithm> using namespace std; class Target { public: vector <string> draw(int n) { vector<string> result(n,…
http://community.topcoder.com/stat?c=problem_statement&pm=13625&rd=16278 首先,如果记得曼哈顿距离最小值那个问题,会想起一维的情况可证,点出现在中位数那里是最小的.这里也可证明,四个点,出现在中位数位置是最小的. 题解里的做法是,试探所有让某个想减的绝对值最小的情况. 我的代码有点丑,但过了: #include <vector> #include <algorithm> using namesp…
Problem Statement Recently, Alice had to take a test. The test consisted of a sequence of true/false questions. Alice was completely unprepared for the test, so she just guessed each answer. You are given the following inputs: an int questions: the n…
Atcoder/Topcoder 理论 AC Atcoder的❌游戏示范 兴致勃勃地打开一场 AGC 看 A 题,先 WA 一发,然后花了一年时间 Fix. 看 B 题,啥玩意?这能求? 睡觉觉. emmmmm 虽然这些副本里的怪一点也不友善,但是却能给直感[1]带来极大的提升. [1]:「直感」是在战斗中一瞬间判明「对自身最适合行动」的能力 Atcoder Grand Contest 2 B. Box and Ball 口胡 考虑 \(k\) 次操作后可能出现红球的集合,记录每个集合球的个数.…
Problem Statement      Manao is playing a new game called Reflections. The goal of the game is transferring an artifact in 3-dimensional space from point (0, 0, 0) to point (X, Y, Z). There are two types of moves in the game: 1) The player can move t…
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我没看,看不懂. 基本思路:我不会. 参考代码:找Oyk老师和Czj老师去. B. The background of water problem 题目大意(大写加粗的水题):给定$N$个学生和他们$K$个科目的成绩$S_i$,再给出各科目$K_i$的权重顺序$Q_i$,求排名之后,拥有id为$X$的…
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #include <string.h> #include <time.h> #include <stdlib.h> #include <string> #include <bitset> #include <vector> #include <…
2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2561 Description 给定一个边带正权的连通无向图G=(V,E),其中N=|V|,M=|E|,N个点从1到N依次编号,给定三个正整数u,v,和L (u≠v),假设现在加入一条边权为L的边(u,v),那么需要删掉最少多少条…