- 博客(72)
- 收藏
- 关注
原创 _数字矩阵
在第0行和第n+1行设置数字-1,第0列和第n+1列设置数字-1,标识四周无法行进。定义了偏移数组后,就可以从左上角开始,先向右走,只要有蛋糕或未到边界就继续前进,否则选择下一个方向(右下左上顺序),一直走下去,直到拉出的数字达到最大值n2,算法停止。多吃一个蛋糕,拉出的数字多1,直到把所有的蛋糕吃完。做了封锁之后,再也不用担心小贪吃蛇跑出边界了,它只需要按照右下左上的方向,只吃有蛋糕的格子(数值为0)就可以了。因为吃了蛋糕后,这个方格就变成了一个大于零的数字,因此可以设置为0时有蛋糕,否则没有蛋糕。
2023-08-26 20:33:45
1362
原创 匹配模式BF算法
题目:疫情暴发,专家发现了一种新型环状病毒,这种病毒的DNA序列是环状的,而人类的DNA序列是线性的。专家把人类和病毒的DNA表示为字母组成的字符串序列,如果在某个患者的DNA中发现这种环状病毒,说明该患者已被感染病毒,否则没有感染。例如:病毒的DNA为“aabb”,患者的DNA为“eabbacab”,说明该患者已被感染。因为病毒是环状的,因此“abba”也是该病毒序列,它在患者的DNA中出现了。
2023-08-26 17:23:04
272
原创 26--鞋子配对有多丑
一开始两个指针在每个数据的开头,也就是两个指针都为 1,然后看两个指针代表的数据的相差值有没有大于二分的最小值,如果没有,那么就说明配对成功,两个指针都往后找更大的数据;如果有,那么就把所代表的数据更小的指针往后找,因为如果大的往后找,找到的就是更大的,肯定也匹配不上。最后看匹配数等不等于数据量的最小值,因为原题目里有:“一定要匹配到不能匹配为止”的限制。洛谷P7305 [COCI2018-2019#1] Cipele。求最大值最小,明显要可以二分。既然要配对,那就少不了双指针。
2023-05-12 17:31:44
175
原创 22--机器人繁殖
洛谷P8629 [蓝桥杯 2015 国 C] 机器人繁殖。(公式推导第一行少打了一个括号。最初数目越多,最终总数越多。(要高精度但我不会。
2023-05-10 01:53:02
65
原创 21--喝咖啡
但是很明显这样去贪心很容易举出反例((v,c): (5,1) (5,20) (1,5)),于是我们考虑套用二分+贪心来解决。因此,可以对vi-x*ci进行贪心排序选取前m个,最后只要判断这m个值的和是否大于等于0就ok了。一般最先想到的方法是把物品按照单位价值进行排序,从大到小地贪心进行选取。洛谷P1570 KC 喝咖啡。这两个不等式是等价的。
2023-05-10 01:08:48
53
原创 19--大鱼吃小鱼
鱼的存活与否满足单调性,即,如果一条鱼能活下来,比它大的鱼一定都能活下来,如果一条鱼活不下来,比它小的一定都活不下来。洛谷P9050 [PA2021] Sumy。因此采用二分答案,转为判定问题。
2023-05-09 18:45:07
106
原创 18--Chocolate Eating S
洛谷P2985 [USACO10FEB]Chocolate Eating S。最小的开心度越大,吃的巧克力数就越多。//要把我干碎了,这题。
2023-05-09 01:33:14
58
原创 16--切绳子
当然因为结果保留两位,所以可以在输入绳长时*100,最后答案/100 就好。和木材加工相同的题,这是绳长变成了浮点类型,处理起来麻烦了一点。洛谷P1577 切绳子。
2023-05-08 21:47:04
53
原创 15--造房子
因为造房子需要a,b两种材料一起用,所以要由min(a,b)来决定。洛谷P6784 「EZEC-3」造房子。那么就要用c来使a,b之差尽量小。这题和打分那题差不多。
2023-05-07 20:30:18
77
原创 14-- 奇怪的函数
log10(double)是cmath头文件里自带的10为底的对数。以10为底的对数函数是单调递增的,所以可以二分答案。利用对数运算,可以把指数提出来,作为系数。即log(x^x)=x*log(x)。x的位数=log10(x)+1;洛谷P2759 奇怪的函数。
2023-05-07 17:23:11
82
原创 13--地标访问
当然折返时最多折返一次,不然就是浪费时间,得不到最优解。一个方向走到底 和 折返一次走,分别判断就好了。访问的地标越多,走得就越久(远)。洛谷P2390 地标访问。
2023-05-07 16:45:10
166
原创 11-- 平台
模拟就好,双重循环枚举每一个平台,(10^3)^2<5*10^8,所以能过。//测试样例里平台会重叠。//别用结构体存所有变量。洛谷P1105 平台。
2023-05-07 01:09:48
35
原创 10--分巧克力
/ 对于边长为x的巧克力,能分出(h/x)*(w/x)块,而不是(h*w)/(x*x)块(除是整除!因为边长有限制 而不是可以拉伸可以看面积(比如3x1000最多分出500块2x2的而不是750块)。所以我第一次写的check函数就有问题(这样写依据了分法二)。边长越大,能分到的数量越少。
2023-05-06 23:40:20
28
原创 9--打分
然后将所有数提高至 maxx,如果无法全部提高至 maxx ,就直接输出 sum+m−maxx;反之,均匀的提高每个数,找到最高可以提高到的值,输出 sum+m−maxx′ 即可。首先,直接去掉最小值,因为最小值会被删去,对总分无贡献。令剩下的所有数的和为 sum ,最大值为 maxx,洛谷P7713 「EZEC-10」打分。
2023-05-06 21:10:15
92
原创 7--一道不可做题 Jelly
洛谷P3926 SAC E#1 - 一道不可做题 Jelly。x是>=c的,所以也可以这样做(不好想到。(但注意a可能大于等于c,坑。数学题,慢慢分类讨论就好了。
2023-05-05 20:04:50
52
原创 6--LJUBOMORA
洛谷P7585 [COCI2012-2013#1] LJUBOMORA。最大值最小问题,嫉妒值越小,孩子数越多-->二分答案!
2023-05-05 12:50:00
125
原创 贪心刷题~
2、洛谷P1208 [USACO1.3]混合牛奶 Mixing Milk。1、洛谷P2240 【深基12.例1】部分背包问题。贪心策略:拿金币单价高的。贪心策略:拿牛奶单价低的。
2023-05-02 20:36:52
469
原创 3-- 眼红的Medusa
双重循环过不了,但题目是要查找,可以用二分:枚举获科技奖的,在获特殊奖的里面二分查找即可。洛谷P1571 眼红的Medusa。
2023-04-28 15:26:15
137
原创 2--小车问题
__x__|____s-2x____|__x__| 则 x/a = (s-2x+s-x) / b;那么时间t=x/a+(s-x)/b;解得x=2as/(3a+b);洛谷P1258 小车问题。
2023-04-28 14:56:44
75
原创 二分刷题~
开始你在i(i=0)位置,我在跳下一步的时候去判断我这个当前跳跃的距离,如果这个跳跃距离比二分出来的mid小,**那这就是一个不合法的石头,应该移走。去看移走之后的下一块石头,再次判断跳过去的距离,如果这次的跳跃距离比最短的长,那么这样跳是完全可以的,我们就跳过去,继续判断,如果跳过去的距离不合法就再拿走,这样不断进行这个操作,直到第n+1次,为啥是n+1?模拟完这个过程,我们查看计数器的值,这个值代表的含义是我们以mid作为答案需要移走的石头数量,然后判断这个数量 是不是超了就行。和上一题几乎一模一样。
2023-04-24 19:13:30
103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人