随笔分类 -  SRM&&CF

摘要:topcoder被Appirio收购了 好久没做tc,这个题目挺简单。就是Arena里面看不到图片,只能去tc网站上找题目。http://community.topcoder.com/stat?c=problem_statement&pm=12746#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include 阅读全文
posted @ 2013-09-21 10:32 AC_Von 阅读(340) 评论(0) 推荐(0) 编辑
摘要:250...500...1000 比赛的时候没思路。倒是想到一种trick,想cha人来着,后来发现房间里没有人提交。。。只想到了预处理出从一个点到另一个点走m步所要用到的情况数,发现dp空间复杂度太高。今天看了一下别人怎么预处理的,我还是太嫩啊。。。dp[dx][dy][m]表示走m步坐标移动了(dx, dy)所有的情况数。记忆化搜索一下。const int MAXN = 55;const int MOD = 1e9+7;int dp[MAXN][MAXN][MAXN];int dir[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};class Wol. 阅读全文
posted @ 2013-03-21 19:55 AC_Von 阅读(356) 评论(0) 推荐(0) 编辑
摘要:大牛无视。。。昨晚0点比赛,木有参加。今天做了做。。。div2的250pt和500pt都是简单题。1000pt不会。。。div1的250pt用dfs构造一下就行。vector<string> res;int N;class FoxAndMp3 {public: void dfs(int x, string s) { if(x > N) return ; if(res.size() > 50) return ; if(x != 0) res.push_back(s + ".mp3"); for(int i = 0; ... 阅读全文
posted @ 2013-02-20 15:24 AC_Von 阅读(245) 评论(0) 推荐(0) 编辑
摘要:250pt 和 500pt都是简单题,500pt暴力就可以。。。1000pt:题意:给一棵树,求这棵树中不同子树的个数。解:f[i]表示以i点为根节点所包含的子数的个数。f[i] *= (f[j] + 1) 其中i -> j有边相连,+1表示不选以j为根的这棵子树;dfs;int mp[60][60];bool vis[60];LL ans;class CentaurCompanyDiv2 {public: LL dfs(int u) { int i; vis[u] = true; LL cnt = 1; for(i = 1; i ... 阅读全文
posted @ 2013-02-19 10:01 AC_Von 阅读(208) 评论(0) 推荐(0) 编辑
摘要:250pt....500pt 题意:给n和m,a,b满足(1 <= a <= n, 1 <= b <= m),SSR(a, b) = (sqrt(a) + sqrt(b))^2为整数,其实就是sqrt(a*b)为整数。总体思路是:从1...n枚举a,看m中有多少个和a组合可以构成平方数的。先把a因式分解,a = k1p1*k2p2*...*kxpx找到所有pi (1 <= i <= x)中是奇数的质因子,因为幂为偶数的质因子开放的结果一定是整数,所以不用考虑偶数的情况。剩下这些设幂为奇数的质因子的积为W,比如a = 2^3*5^3*7^2, W = 2^3* 阅读全文
posted @ 2013-01-22 10:02 AC_Von 阅读(394) 评论(0) 推荐(0) 编辑
摘要:250pt我真够250的。3*3的棋盘跟4*4的棋盘搞混了。3*3正好是一个特例,结果为8,。。。。然后被cha掉了。。class KnightCircuit2 {public: int maxSize(int w, int h) { if(w > h) swap(w, h); if(w == 1) return 1; else if(w == 3 && h == 3) return 8; else if(w == 2) return h/2 + (h%2 != 0); else ... 阅读全文
posted @ 2012-12-14 14:51 AC_Von 阅读(290) 评论(0) 推荐(0) 编辑
摘要:A:水题,不愧是岛娘出的题,这么有“特色”B:对一个数X分解质因子得 X = p1a1 * p2a2 * p3a3 * ... pkak ,X的因子数为 (a1 + 1)*(a2 + 1)*(a3 + 1)*...*(ak + 1);先打了个1...1000000的表,然后直接算的。手贱!忘了取模,后来改过以后丢了好多score。。。C:还以为是推个毛规律,随便推出来一个挂了。。。T_T,发现有的大神的写法。直接枚举 [n-100, n]区间上的所有数的组合就行。。。ps:C题这次hack的好爽。。。。^_^ 阅读全文
posted @ 2012-10-21 21:09 AC_Von 阅读(249) 评论(0) 推荐(0) 编辑
摘要:250pt水题500pt分两种情况, 1、RGB中最小值足够大,制约因素是R+G+B的值,这种情况下结果为(R+G+B)/tot 2、R+G+B足够大,制约因素是RGB中最小值不够大,这种情况下结果为m/c 两者取最小值第一种情况,R=7,G=6,B=6,最小值6足够画两个三角形,但是R+G+B=19不够画两个三角形第二种情况R=1000000000,G=6,B=6,R+G+B足够画N多三角形,但是G、B只有6个,最多画两个三角形/*就他妹的6行代码!!!*/class FoxPaintingBalls {public: long long theMax(long long R, lon... 阅读全文
posted @ 2012-08-18 10:10 AC_Von 阅读(159) 评论(0) 推荐(0) 编辑
摘要:错过了。。。当练习做的。250pt 略500pt怎么开始就没敢写暴力呢。。。。看别人的思路,挺巧妙的。Orzclass ColorfulChocolates {public: int maximumSpread(string c, int m) { int l = c.length(), i, j, num, cnt; int s[3000]; int sum, ans = 0, res; REP(i, l) { num = 0; cnt = 0; for(j = i - ... 阅读全文
posted @ 2012-08-12 16:30 AC_Von 阅读(208) 评论(0) 推荐(0) 编辑
摘要:早晨7点到实验室一翻邮箱看到tc的邮件。。。srm 546,因为昨晚去复习,没来实验室,所以不知到又比赛。T_T 早晨抽出一小时翻了翻。。。250pt水题550pt不好想,反正我的思路很复杂,写难产了。然后看到别人的写,无语的是就几行代码搞定。不得不佩服啊class TwoRectangles {public: string describeIntersection(vector <int> A, vector <int> B) { int c[4]; c[0] = max(A[0], B[0]); c[1] = max(A[1], B[1]... 阅读全文
posted @ 2012-06-17 15:39 AC_Von 阅读(161) 评论(0) 推荐(0) 编辑
摘要:转自白神:http://hi.baidu.com/%B0%D7%D2%C2%C9%D9%C4%EA2012/blog/item/d2a1a43291acbe3c0a55a9b7.htmlSingle Round MatchSRM 522 DIV1 1050pt ( 很不错的dp题,先需要思考来分析各种情况 ) 推荐代码: practice room writerSRM 521 DIV1 500pt ( 枚举+小偏移,考思路 ) 推荐代码: ACRush,crazyb0ySRM 521 DIV1 1000pt ( dp+矩阵相乘,主要是考状态表示和转移矩阵的建立 ) 推荐代码: 官方题解SRM 阅读全文
posted @ 2012-04-30 11:17 AC_Von 阅读(656) 评论(0) 推荐(1) 编辑
摘要:div 2200pt:水题,用stringstream方便多了550pt:水题,按题意模拟就行,想清楚了再写,要不然越改越乱!1100pt:我是个二百五!!树形dp,dp你妹啊!把所有的的dis[]*2累加,然后找到一条最长的路,把那条路作为最后走的,减掉回来的距离就可以了!我还在那里想个毛树形dp,叉!View Code #include <vector>#include <list>#include <map>#include <set>#include <queue>#include <deque>#include 阅读全文
posted @ 2012-04-30 10:57 AC_Von 阅读(244) 评论(0) 推荐(0) 编辑
摘要:最大公约数L和最小公倍数G的关系:1、L%G == 0;2、设A, B的最大公约数为G, 最小公倍数为L,则:L/G = (A/G)*(B/G)3、gcd(A/G, B/G) = 1;题目:给出一对数A, B 的最大公约数G, 最小公倍数L。这里A, B有多种组合。,求A,B的一种组合使得A + B最小。如果没有则输出-1(SRM535 div2 500pt)(G <= 10^12, L<=10^12)猛的一看数据很大。不过用上前边的定理就可以解决了。领X = L/G;枚举A/G的值(不超过sqrt(X)),得到B/G的值。判断是否满足定理3。在所有满足的情况中找最小的ans = 阅读全文
posted @ 2012-03-26 23:51 AC_Von 阅读(604) 评论(0) 推荐(0) 编辑
摘要:客观原因很多,但我不想找了。水平在那摆着。。。。以后做比赛尽量找一个安静的点环境,比如实验室。昨晚一题没做出来,今天回头又翻了翻300pt:其实是道水题,很水很水的题。。。先统计出L,R所能到达的最远位置。然后把'?'补给大的。如果dis(L) = dis(R) 则补给第一个出现的。View Code #include <vector>#include <list>#include <map>#include <set>#include <queue>#include <deque>#include < 阅读全文
posted @ 2012-03-21 15:47 AC_Von 阅读(200) 评论(0) 推荐(0) 编辑
摘要:本菜把时间记错了,没赶上比赛T_T。这次的题貌似不是很简单,今天大体做了一下250pt:水题550pt:题意是给出A, B, X, 求Y,使得A*p + B*q的所有能取到的值X*p' + Y*q'都能取到。如果有无限种可能就return -1。当X同时被A, B整除时return -1,其他情况枚举y,同时满足 (A - y*q')%x == 0 和 (B - x*p')%y == 0.View Code 1 #include <vector> 2 #include <list> 3 #include <map> 4 #in 阅读全文
posted @ 2012-03-19 10:57 AC_Von 阅读(266) 评论(0) 推荐(0) 编辑
摘要:昨晚正好赶上好时候,TC在8点到9点多有比赛。所以做了一下,发现没了IDE,我的编码习惯很有问题,最后调试1000pt时连括号都对不上号了。。。代码写的很乱,调试很费劲!这个坏毛病得改!折腾一晚上没做题,就给了20分,妹的!250pt:x不是0就是1,并且给出的系数ai也是不是0就是1。所以直接扫一遍就行。#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#include <stack>#inc 阅读全文
posted @ 2012-03-08 15:30 AC_Von 阅读(260) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示