摘要:
唉 谷歌出的神题,差点爆零了。。。三小时终于A掉 B题题目大概是说从左上角的点出发,经过某路线最后回到原点,求每个格子被路线包含的圈数的平方和。首先可以知道,对于某个格子来说,从该格子的任意一个方向划一条射线,路径穿过该射线的次数就等于该格子被包含的圈数(正穿和反穿抵消)。然后开一个100w的数组保... 阅读全文
2014年12月9日
2014年10月17日
摘要:
那天在机房做的同步赛,比现场赛要慢了一小时开始,直播那边已经可以看到榜了,所以上来就知道A和I是水题,当时机房电脑出了点问题,就慢了好几分钟,12分钟才A掉第一题。。。A.Average Score题目大意:给定A序列和B序列,长度分别是n和m,告诉你A序列中的n-1个数和B序列的m个数,求剩下的那... 阅读全文
2014年9月15日
摘要:
原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=5015解题思路:一看到题目,感觉是杨辉三角形,然后用组合数学做,不过没想出来怎么做,后来看数据+递推思想,感觉可能是矩阵快速幂,可惜一直不知道a*10+3的 +3怎么处理,果然还是图样图森破啊!如果矩阵能... 阅读全文
2014年7月18日
摘要:
优先队列(priority queue)对于一般的队列是在队列的尾部添加数据,在头部删除,以便先进先出。而优先队列中的每个元素都有一个优先级,每次将一个元素放入队列中,而每次出队时都是将优先级最大的那个元素出队,称为高进先出(largest-in,first-out)。优先队列必须实现以下几个操作1... 阅读全文
2014年6月15日
摘要:
今天做了ACdream的比赛才知道原来还有读入优化这一说。Orz读入一个整数的时候这么写:int a;scanf("%d",&a);和int a;char c;while((c=getchar())!='\n'&&c!=' '){ a=a*10+c-'0';}大概在读入的数字近千万的时候有较大差别... 阅读全文
2014年5月15日
摘要:
原题地址:http://www.rqnoj.cn/problem/72解题思路:基本的01背包问题。 要求的就是在这些人中选出一些人,使得这些人的体重的和 不超过所有人的体重的一半 并最大。代码: 1 #include 2 #include 3 using namespace std; 4 int... 阅读全文
2014年5月8日
摘要:
原题地址:http://www.rqnoj.cn/problem/82解题思路: 简单的动态规划 状态表示:DP[i][0]表示当前在第i层,且当前跳跃状态不可用,此时消耗的最短时间。 DP[i][1]表示当前在第i层,且当前跳跃状态可用,此时消耗的最短时间。 状态转移方程: ... 阅读全文
摘要:
原题地址:http://www.rqnoj.cn/problem/69解题思路: 用DP[i][j]表示到达(i,j)点的路径数,则DP[0][0]=1DP[i][j]=DP[i-1][j]+DP[i][j-1](不是马的控制点和马的当前位置)DP[i][j]=0(马的位置和马的控制点)代码: 1... 阅读全文
2014年5月4日
摘要:
原题地址:http://www.rqnoj.cn/problem/90解题思路:题目看起来不太像动态规划。。。我用一个数组f[i][j]来表示在数组第i个元素的后面第一次出现j的位置,为-1则是没出现过。然后每次查找最大的位置即可。如题目例子中:f 1 3 5 2 4 1 3 5 2 2 2 2... 阅读全文
2014年4月27日
摘要:
原题地址:http://www.rqnoj.cn/problem/2解题思路:背包问题。状态转移方程:DP[i][j]=max(DP[i-v[j]][j-1]+p[j]*v[j],DP[i][j-1])DP[i][j]表示最多话费i的钱,购买前j+1个物品所能达到的最大价值。解题代码: 1 #inc... 阅读全文