从零开始的acm题目WA生活

感觉长久不写代码整个人都变菜了,随便找了几题写然后开始疯狂WA。其中包括最简单的进制转换都连跪,再这样估计a+b都要挂了。

xdoj 1001:对矩阵交换某些行某些列的值的操作,查询矩阵某点的值。

当数据结构题想了半天,然后才知道交换行和列的操作是独立的,遇到交换直接把它们独立换了就行不影响结果。一直看不出哪里写错了知道我发现把二维矩阵转成一维的时候把m写成n。

xdoj 1002:小W的塔防

虽然明白这是dp题,感觉自己dp太渣根本写不对,总想着要贪心。开始以为是把红塔放最后,绿塔放中间、蓝塔放前面可以打出最高伤害。WA了之后才发现蓝塔可以放绿塔前面打出更高伤害。于是只能枚举红塔个数,绿蓝用dp计算。d[j][k]表示从右到左放到j个塔时候放k个蓝塔可以打出的最高伤害。结果因为状态选的不好导致转移方程非常复杂,WA了n遍才改对。看标算发现直接把红塔放进去dp直接算跟简单,而且时间复杂的一样,只是空间复杂度多了一阶。大概就是自己想的dp方程就算跪着也要写完 T_T。

xdoj 1003:就是送分的进制转换,结果连WA,难受

xdoj 1004:求20面体是否同构,属于那种一看就会但写不对的题,主要工作就是写三个变换循环构造出总共60种不同的旋转变换直接比较。写着写着就不知道为啥36个变换参数就是打不对。中间还因为变换的时候忘了复制一遍就炸了。

xdoj 1005:没啥好说的,对2取对数就行了

xdoj 1006:求一列数做三种位运算操作结果的期望。

就是把数字拆开成二进制位,求每一位的期望。求期望的时候我想的是把前n-1位的期望 加上后n位数字的期望得到结果。这样还需要记录一下后n位的期望。算法是每次但还是挂了,跑极限数据的时候最后一个小数位只相差了1,毫无办法。然后发现标算是直接根据运算的性质记录后n位0和1的个数直接算期望,减少了一定的计算量而且写起来更简单,还减少了精度问题。试想一下对拍时我看到数量级十亿的结果有一定概率相差0.001后内心是崩溃的。。。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注