【TopCoder】SRM152 DIV2总结

为什么平常刷的时候感觉还不错,比赛的时候只能做出来一道题=。=

250分题:大水题,根据题目规则把一个字符串翻译成数字,直接代码:GitHub

我是通过遍历一个个数出来的,看到大神的解法是把字符用‘-’这个符号分割,然后累加每一段的长度。

500分题:给定一串数字,以及1~9每个数字出现的概率计算公式,然后输出这些数字的第一位中1~9出现的次数,和期望的出现次数(期望的概率*数字的个数)比较,如果比期望的出现次数的1/threshold小或者比期望出现次数的treshold倍大,那么就把这个数字放到答案数组中。

代码也很简单:GitHub

主要自己边做边发呆,时间浪费了不少,500分的题教的时候只拿到了270.68分

1000分题:也很简单,给定一个小孩和妈妈的DNA字符串,再给定一组男人的DNA字符串,找出其中哪些可能是这个小孩的爸爸。一个男人可能是小孩的爸爸当且仅当小盆友的DNA中有一半来自爸爸,一半来自妈妈。

解法:遍历一边三个人的DNA串,如果小孩某一个DNA字符即不来自当前男人的DNA,也不来自妈妈,那么说明这个男人一定不是爸爸;否则输出小盆友的DNA中有多少来自当前男人,如果超过一半,那么这个就可能是爸爸。

代码:GitHub

时间: 2024-07-30 13:28:59

【TopCoder】SRM152 DIV2总结的相关文章

topcoder SRM628 div2 500(转)

Problem Statement      We have three types of brackets: "()", "[]", and "{}". We are now interested in some special strings. A string is special if all the following conditions hold: Each character of the string is one of the

Topcoder SRM632 DIV2 解题报告

250:乱搞 解题代码: 1 // BEGIN CUT HERE 2 /* 3 4 */ 5 // END CUT HERE 6 #line 7 "RunningAroundPark.cpp" 7 #include <cstdlib> 8 #include <cctype> 9 #include <cstring> 10 #include <cstdio> 11 #include <cmath> 12 #include <

topcoder 649 DIV2

8 A:模拟 9:B:终于看懂题目... 题意:最多分解K次 每分钟一个数可以分解成两个数 或者-1: 关键字:DP,记忆花搜索. DP[I][J]=min(dp[i][j],1+max(dp[ii][jj],dp[i-ii][j-jj-1]); 1 #include<iostream> 2 #include <string>  3 #include <vector>  4 #include<cmath>  5 #include <string.h&g

[Topcoder]SRM632 div2 题解

TC第一次解出三题--当了次room leader-- 感觉这次的题比较弱,代码量也很小,都是在拼手速了 250 RunningAroundPark 题意很好懂,一圈跑道上有N棵树,现给你遇到这些树的顺序,问最少需要多少走圈才能遇到相应的序列 直接判断a[i]<=a[i+1]即可 首先假定走了一圈 #include <cstdlib> #include <cctype> #include <cstring> #include <cstdio> #inc

Topcoder SRM631 DIV2 解题报告

250:网格有两种颜色,网格中一列最长的连续的颜色相同的最大值. 解题思路:暴力. 解题代码: // BEGIN CUT HERE /* */ // END CUT HERE #line 7 "TaroGrid.cpp" #include <cstdlib> #include <cctype> #include <cstring> #include <cstdio> #include <cmath> #include <

topcoder 643 DIV2

太弱了,太弱了! A:基本的判断吧,然后就是边界问题,写了好久,结果发现时房间第二个交的.. B:真心跪了,还好想出来了,思路想的太慢太慢,结果交上去,落后太多,不过HACK时很多人挂了, 这也是DIV1的A题.做法是: 如果对于一个long long 的数质因数分解师很难做到的. 但是题目告诉了m/2个数,m是分解后质因数的个数. 然后我们想先刷法求出1-10^6的质因数. 如果n有大于10^6的质因数最多2个(n<=10^18)对吧. 然后已经写出了1个,一定会写出一个. 所以 我们对其用1

Topcoder SRM633 DIV2 解题报告

250:乱搞. 1 // BEGIN CUT HERE 2 /* 3 4 */ 5 // END CUT HERE 6 #line 7 "Target.cpp" 7 #include <cstdlib> 8 #include <cctype> 9 #include <cstring> 10 #include <cstdio> 11 #include <cmath> 12 #include <algorithm> 1

Topcoder SRM655 DIV2 950 NineEasy 状压 + 数位 dp

题意:要你构造一个n位的数子 ,给你m(1-5)个询问,每一次询问取一些位数的数组成一个新数且这个数 %9 ==  0 , 问你要满足这m个询问的数字有多少个(允许前缀0). 解题思路:把每一种情况状压,得到一个最多  9x9x9x9x9 的情况,然后根据 每个数的询问决定状态转移方程. 解题代码: 1 // BEGIN CUT HERE 2 /* 3 4 */ 5 // END CUT HERE 6 #line 7 "NineEasy.cpp" 7 #include <cstd

ACM学习历程—TopCoder SRM691 Div2

这是我的第一次打TC,感觉打的一般般吧.不过TC的题目确实挺有意思的. 由于是用客户端打的,所以就不发题目地址了. 300分的题: 这题大意是有一段序列只包含+和数字0~9. 一段序列的操作是,从头扫到尾,遇到+就对计数器+1.遇到数字就计算abs(num-count)的值,并加到sum中. 题目要求重新排序序列,使得sum最小. 由于是abs,最小值自然是0,于是就是要构造0. 由于计数器只会网上增,所以数字我肯定从小到大排,于是对于某个数,计数器不足这个数,那么就需要增加计数器,否则就计算a