[TopCoder]Seatfriends】的更多相关文章

题目   点这里看题目. 分析   可以想到用 DP 解决.   由于把空位放到状态里面太麻烦了,因此我们单独将 " 组 " 提出来进行 DP .   \(f(i,j)\):前\(i\)个人组成\(j\)个组的方案数.   此时这个组是有顺序有编号的,并且按照编号相邻(由于在环上,\(j\) 组和 \(1\) 组也算相邻).   考虑三种转移:   1.我们新建一组,并在原来的一个组后面插入新组:\(f(i+1,j+1)+=j*f(i,j)\):   2.我们将新的人安排到新的组里面,…
kawigiEdit插件可以提高 TopCoder编译,提交效率,可以管理保存每次SRM的代码. kawigiEdit下载地址:http://code.google.com/p/kawigiedit/downloads/list 我用C++,以后设置是设置C++的,其他的类似. 一.添加kawigiEdit插件. 1. 打开TC客户端–Option–Editor 2. 点击Add,在弹出的 Name填写插件名称,随便写个: EntryPoint: 写 kawigi.KawigiEdit (不可更…
今天第一次做topcoder,没有比赛,所以找的最新一期的SRM练习,做了第一道题. 题目大意是说 给一个数字字符串,任意交换两位,使数字变为最小,不能有前导0. 看到题目以后,先想到的找规律,发现要从后向前找数字串中最小的数,放在数字串中尽可能靠前的位置,数字最小.用这个贪心.找规律的方法,写代码,然后提交测试. 但最后,写出的代码不能过几组数据,感觉边界的数据非常容易考虑不周而出错,比如第一个数字是否为最小,数字串中是否有零等. 看了其他人的代码(http://www.cnblogs.com…
TopCoder                        250                              500                                         1000                                589 div2 简单题 简单的分析题! //非常好的DP!硬币反转!待补 590 div2 简单题!模拟五子棋判断 简单搜索,模拟围棋!  蛮好的DP!递推!掌握技巧! 591 div2 简单题 简单题,暴力…
本文写于9月初,是利用Topcoder准备应聘时的机试环节临时补习的C++的一部分内容.签约之后,没有再进行练习,此文暂告一段落. 换句话说,就是本文太监了,一直做草稿看着别扭,删掉又觉得可惜,索性发布掉. 字符串string基本操作 1.用stringstream控制流,格式化输出 //SRM144 D2L1 #include <sstream> ... string res; /* .. .*/ stringstream ss; ss<<h<<":&quo…
在TopCoder下载好luncher,网址:https://www.topcoder.com/community/competitive%20programming/ 选择launch web arena 或者选择 launch applet arena(一般选择这个,这个会下载类似于客户端的软件到电脑,苹果和windows都可以),文件是一个.jnlp类型的文件. 然后会提示安装最新的java jre 按照提示安装即可. 如果遇到不满足java 安全级别失败的问题,请打开Java控制面板 在…
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:…
周赛时遇到的一道比较有意思的题目: Problem Statement      There are N rooms in Maki's new house. The rooms are numbered from 0 to N-1. Some pairs of rooms are connected by bidirectional passages. The passages have the topology of a tree. That is, there are exactly N-…
 第一次做TC,不太习惯,各种调试,只做了一题...... Problem Statement     Fox Ciel is going to play Gomoku with her friend Fox Jiro. Ciel plays better, so before they start she allowed Jiro to put some of his pieces on the board. You are given a vector <string> board tha…
一. Arena插件配置 1. 下载Arena 指针:http://community.topcoder.com/tc?module=MyHome 左边Competitions->Algorithms->Single Match Rounds->Launch Arena->Load Competition Arena 2. 下载插件 指针:http://community.topcoder.com/tc?module=Static&d1=applet&d2=plug…
题目连接:https://community.topcoder.com/stat?c=problem_statement&pm=1889&rd=4709 题意:给一张n*m的地图,上面有些路不能走,每次只能向左走或者向下走.问从(0,0)走到(n,m)一共有多少种走法. 动态规划,先哈希标记出所有无法走的道路,然后做DP. 转移方程: 如果(i-1,j)可以走到(i,j):dp(i,j)+=dp(i-1,j) 如果(i,j-1)可以走到(i,j):dp(i,j)+=dp(i,j-1) //…
题目链接:https://community.topcoder.com/stat?c=problem_statement&pm=1259&rd=4493 题意:给一串数字,求出最长的波动序列.波动的定义是一个数相邻的两个数同时比他大或者同时比他小,形象的看成一个波动的三角函数吧. 定义dp(i)为到第i个数字时的最长波动序列长度,我们发现仅有一维的数组是存不下状态的,还应该再维护一个量,那就是第i个数字的时候他是波峰还是波谷.于是dp数组扩展成了dp(i,k),k可以取0或1分别表示是波峰…
http://community.topcoder.com/stat?c=problem_statement&pm=12975 简单题 #include <cstdlib> #include <vector> using namespace std; class EllysNumberGuessing { public: int getNumber(vector <int> guesses, vector <int> answers) { const…
http://community.topcoder.com/stat?c=problem_statement&pm=12967 计算一个字符串里Palindrome的数量.我的DP方法需要n^2的空间. #include <vector> #include <string> using namespace std; class PalindromicSubstringsDiv2 { public: int count(vector <string> S1, ve…
http://community.topcoder.com/stat?c=problem_statement&pm=12995 简单题 class PackingBallsDiv2 { public: int minPacks(int R, int G, int B) { int sum = 0; sum += (R / 3); sum += (G / 3); sum += (B / 3); R %= 3; G %= 3; B %= 3; while ((R > 0 || G > 0…
http://community.topcoder.com/stat?c=problem_statement&pm=13035 矩阵棋盘的题,比较典型.可以定两条column夹住,然后上下扫,上下扫过程中有一点DP的东西,这样负责度是o(n^3) #include <vector> #include <algorithm> #include <iostream> using namespace std; class TheMatrix { public: int…
http://community.topcoder.com/stat?c=problem_statement&pm=13005 好题.最暴力是试验2^n种跳法.然后有从结果入手,那么最终的左右是i, j,有n^2种(每种4个跳法),然后花O(n)的时间去验证. 最后的正解比较有意思,就是观察到必须向里跳才有意义,那么只有RRRRRR...LLLLLL这种形式的才满足,于是遍历这个R和L的分界点就行了. #include <vector> #include <algorithm&g…
http://community.topcoder.com/stat?c=problem_statement&pm=13040 DFS集合全排列+LCM和GCD.但事实上,有更简单的算法,列在下面,就是观察到不能整除x的对我们无效. #include <vector> #include <iostream> using namespace std; class LCMSetEasy { public: string include(vector <int> S,…
http://community.topcoder.com/stat?c=problem_statement&pm=13091 解方程,对中国孩子太简单了. #include <vector> #include <iostream> using namespace std; class LongLongTripDiv2 { public: string isAble(long long D, int T, int B) { long long diff = (D - T);…
http://community.topcoder.com/stat?c=problem_statement&pm=13147 此题关键在于发现ABAB的组合最多有26*26种,可以穷举,然后用判断子序列~ #include <vector> #include <iostream> using namespace std; class LongWordsDiv2 { public: string find(string word) { for (int i = 0; i &…
https://www.topcoder.com/stat?c=problem_statement&pm=13146&rd=15852 // Need carefully calc the shift and the final index #include <vector> using namespace std; class ChooseTheBestOne { public: int countNumber(int N) { vector<int> vec(N…
https://community.topcoder.com/stat?c=problem_statement&pm=13192 #include <vector> #include <queue> #include <functional> using namespace std; class BoxesDiv2 { public: vector<int> power2; int findSize(vector <int> candyC…
http://community.topcoder.com/stat?c=problem_statement&pm=12107 此题想了半天,当时瞥到了Greedy,所以就想着贪心,最后的方法又纸上画了一下应该是对的.就是排序后依次看是不是满足要求.证明就是如果对数字X,有a和b都能够通过增加k的倍数步得到X,那么使用小的a自然更好,因为b有更大机会为剩下的出力. #include <string> #include <vector> #include <algori…
http://community.topcoder.com/stat?c=problem_statement&pm=13245 就是有字符串,里面的字符可以随意两两消除,如果不等的话,那么最后如果留下一个字符,这个字符就是winning letter.如果任意方法消除都是这个winning letter,叫做happy letter.求happy letter是否存在.题目其实就是找众数.要注意的是求完了还要扫一遍是不是大于length/2. #include <string> usi…
http://community.topcoder.com/stat?c=problem_statement&pm=13243 就是能否通过把字符串中的'X'替换成"()", "[]", and "{}"来变成合法的括号字符串, "([]X()[()]XX}[])X{{}}]"Returns: "possible"You can replace 'X's respectively with '{',…
Topcoder上的一道题目,题目描述如下: Problem Statement      Byteland is a city with many skyscrapers, so it's a perfect venue for BASE jumping. Danilo is an enthusiastic BASE jumper. He plans to come to Byteland and to jump off some of its buildings. Danilo wants…
第一次topcoder,以前老感觉没有资格去做tc,cf什么的,现在已经慢慢接触了. 感觉还可以,还是有让我们这些蒻菜安慰的水题. tc的确很好玩,用客户端比赛,还有各种规则,而且还是只编写一个类提交上去,最后还能cha别人(虽然我还没cha过),具体规则看大神写的这篇文章. 好吧,我的第一次TC的SRM就只刷出了第一道250P的水题,题目字体太小了,看题目看了老半天,然后编写完调试出来,还花了挺长时间去把程序改成类,在客户端上compile,蛋疼的是类的后面的分号忘记写找了好长时间.....…
http://community.topcoder.com/stat?c=problem_statement&pm=12300&rd=15699 题意:有一个无限长的阶梯,i从1到N,每次跳i步或不跳:有一个阶梯是坏的,不能跳,问最多跳多远. 分析:贪心的跳,当跳到坏阶梯时,就躲开,怎么躲,就是第一步不跳.那么此时和坏台阶差一步,只有i为0时下一步才为1,但i从0开始,所以不会发生. public class JumpFurther { public int furthest(int N,…
http://community.topcoder.com/stat?c=problem_statement&pm=12706&rd=15700 这题有意思.首先要观察到,如果选定一些歌曲,最优做法就是,按照tone排序,那么这时浪费的间隔最少,是(max_tone-min_tone).那么首先对歌曲按照tone排序,这时由于取得顺序就是从左往右,可以用DP.(比如:http://community.topcoder.com/stat?c=problem_solution&cr=2…
http://community.topcoder.com/stat?c=problem_statement&pm=12730&rd=15701 这道题有点意思.首先把字符串变成回文,多个字符可能有交叉的等同关系,那么有些字符最终都要是要变成同一个.这个是可以用并查集来做的,标程怕并不是所有人都知道并查集,就用了图的DFS来做.这里用并查集的朴素版本来做,但x = comp[x];y = comp[y];这两句话必不可少,否则下面的循环过程中变化. #include <string&…