- 博客(4)
- 收藏
- 关注
原创 The Triangle
最基础的DP了。 用二维数组把数据储存起来,dp[110][110]。 从下往上走,每一步都选最优,则每个节点都是往下走的最优解,因此,走到最后,dpdp[1][1]就是最优的了。 关键在于——在最底层,每一个节点都是最优解。要注意题目中给出的数字三角形与INPUT中给出的数字三角形的不一致。 状态转移方程为dp[i][j]=max(dp[i+1][j],dp[i+1][j+1]). 代
2014-03-24 22:38:28
324
原创 青蛙的约会
用拓展欧几里得来做。 x+km=y+kn(mod l)化简成为 (m-n)k=y-x(mod l) 参照方程ax+by=c 然后就是求最大公约数和方程组求解了。 连着4次编译错误——错误时——b=long long(abs(b))—— error: expected primary-expression before 'long' 后来改成b=(long long)abs(doub
2014-03-23 12:26:26
768
原创 Goldbach's Conjecture
首先是预处理,把所有的质数保存在数组里。可以在主函数里输出top来决定数组的大小。这个是打表的做法,素数判断,基础知识,比较简单粗暴,但只用了125ms,也不算太慢。 显然已知第一和第二个素数是2和3,当然,也可以直接背出自己记得的素数表,但没必要。因为2,3比较特殊,所以从5开始进行打表,2,3预先写进数组。因为多组测试数据都是用同一个素数表,所以没有必要每一个输入对应一次打表,预处理一次
2014-03-20 19:38:01
473
原创 Easy Program from Rujia Liu?
一道map+vector的题。 第一次知道map里面可以使vector数组——map >a; map的清空就一句——a.clear(); a.count(j)——统计j数组中元素的个数 if(!a.count(j)) a[j]=vector();——创建数组 a[j].push_back(i)——增加元素 if(!a.count(
2014-03-18 09:07:19
432
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人