Topcoder SRM 495 - 513

SRM 513 500pt可以用一个数组标记小球位置,dp[i]表示i位置前面有多少个小球,注意下下标可能到负的情况,处理一下就行了
        1000pt一道裸地状压问题,定义1表示状态时横向扩展,0表示纵向扩展。然后暴力出矩形框内的所有可能情况,复杂度就是2^16*r*c,也可以暴力出行列然后dp每一位状态。
SRM 512 500pt这题就是一个贪心问题,当时想复杂了,如果你想到%7就有想法了,用一个prem[%7]记录一下你前面取的mincost然后用nmincost - prem[day%7]就是你现在的药多加的cost加入到budget里面。
        1000pt这题是裸的km算法匹配问题,就是对两个有相同元素的集合进行匹配操作,关键就是算这个代价,用题目中剪刀->石头,石头->布,布->剪刀建立一个50^4的复杂度km跑一下
SRM 511 500pt是计算总类的,一看到long long 就反应到一定和2的某次方有关,有多少个animal比你大,记录连续次数。
        1000pt非常经典的博弈问题,关键在于对|操作的理解,如果你当前使用的这个操作不能改变这个状态(计算出次数)就取决于对手在这下一个状态下deep+1能否胜,如果为对手输了(false)那么你就胜了
        还有一个情况是你选择任何一个可以改变的情况来改变一个01状态,然后判断对手的取法胜负情况,如果对手输了(false),那么你就胜。每次都返回一个当前能否取胜的状态。
        题目有一个终止条件,当某个人取到了511,那么这个人就胜利,即使取不完也返回true。否则再判断deep==n则这个人没有办法取了,那么就返回false。
    
SRM 510 47题目,第二题是预处理了一个dp值,然后循环得到结果
SRM 509 1000pt一个很典型的bfs扩展,500pt用到%可以和加法乘法交换性质。(1000pt居然写挂了--)
SRM 508 1000pt是给一个操作|,求满足要求的个数
SRM 507 1000pt给一个 区间,然后bfs转移,无界的情况是用(打表或者看出)找到规律
SRM 506 1000pt (很经典的一个bfd+dfs)
SRM 504.5
SRM 504 用了一个O(n^2)再用reverse就可以暴力过所有数据(n = 3500*50=1755000)
正确的代码是用%n的再加上rev和changge
SRM 504 1000 pt:暴力枚举width*width * 2^width也暴力过16*16*2^16,类似于dp更新一样,从末端开始dp转移回去
SRM 503 1000 pt:(连通块) ,500 pt:排序枚举两个上下界
SRM 502 1000 pt:要看出一个求和用dp,然后就i=-1作为推得边界,还有一个k=0&&sum!=0边界。
SRM 501 500 pt:简单dp
        1000 pt:三维状态dp
        
SRM 500 1000 pt:有关数学 500
SRM 499 1000 pt字符串合并
SRM 498 1000 pt:简单统计 500 pt:seq的题目,不要想复杂了,就是判断有多少个正负的公差,先+-?+-
SRM 497 1000 pt:(有关字符串操作的难题)
SRM 496 1000 pt:(关于palindrome的题目N M K)
SRM 495 1000 pt:给一个六边形网格,求一个在满足三方向旋转的方案数
        500 pt:给一个RB序列'R' 表示的是素数,'B'表示的是非素数,然后求一个在[0,N]范围内的
        序列,做法是从左往右填上,然后从右往左填,最后比较是否唯一
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值