SRM 587 Div II L3:ThreeColorabilityEasyy】的更多相关文章

题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=12699 这道题目是第一次在比赛的时候做出来的,开始还想用brute force,后来发现那太复杂了,于是在纸上画了画,发现一个规律,那就是只有在一个2x2的cell中,如果出现3个N或3个Z方式的cell,那么这种情况下肯定是无法配色成功,因为最后一定会有两个相邻点为相同的颜色.如果没有这样的情况存在,那么是一定可以配色成功的,根据这点代码就好写了. 代码如下: #i…
题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=12580 比较简单,代码如下: #include <iostream> #include <string> #include <cmath> using namespace std; class SemiPerfectSquare { public: string check(int N); }; string SemiPerfectS…
题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=12581 Burte Force 算法,求解了所有了情况,注意 next_permutation 函数的用法. #include <iostream> #include <vector> #include <limits> #include <algorithm> using namespace std; class Col…
题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=12609 #include <iostream> #include <string> using namespace std; string minstr = ""; class SwappingDigits { public: string minNumber(string num); }; string SwappingDi…
题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=12556 用Dijkstra实现,之前用Floyd算法写了一个,结果在2s内算不出结果来. 参考了别人算法,学到了set容器的一个用法,用set省去了查找Dijkstra算法中选择最短路径的那一步,set中的第一个元素就是最小值,用priority queue应该也可以. #include <iostream> #include <string>…
题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=2866&rd=5853 主要是要对字符串的操作要熟悉,熟练使用 sstream 流可以大大简化操作,如这个题目,如果不用 sstream 流的话,用 sscanf 函数非常麻烦,因为输入的数据中数字的个数不是一样的,还有一个问题就是多关键字的排序,用 sort 函数时要自己写比较函数. 另外那个得到实现四则运算的方法也很巧妙,我刚始用的方法比较麻烦,这种方法看别人…
题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=3457&rd=5869 解答分析:http://community.topcoder.com/tc?module=Static&d1=match_editorials&d2=srm223 这道题目最直接最暴力的算法就是遍历每个位置,然后查看是否满足条件,满足条件的话则立刻停止遍历, 这样算法的时间复杂度为O(N^2).不过还有一个更高效的方法,其时…
题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=12556 #include <iostream> #include <vector> #include <algorithm> using namespace std; int F[50]; class SpaceWarDiv2 { public: int minimalFatigue(vector <int> magica…
题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=12610 这道题比较有意思,估计是中国人出的吧,以前都不知道身份证还这么麻烦,不过程序不难写. #include <algorithm> #include <iostream> #include <queue> #include <vector> #include <list> #include <stri…
题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=12609&rd=15503 这题目看上去so easy, 但写的时候要特别小心,如果直接按照公式算,没有加下面这一句的话: if (total + total * taxPercent / 100 + (tip + 1) * total / 100 <= money) { ++tip; } 那么因为公式涉及向下约分的运算,那么所得到的tip的值可能是比最大值…