摘要: 提供一种比较清新的做法。 思路:贪心。 思考:如果在巧克力上横向切一刀,那么纵向要切的刀数就会加一。如果在巧克力上纵向切一刀,那么横向要切的刀数就会加一。 结论:要先切代价大的,再切代价小的。 做法:横切代价与纵切代价放到一起排序,依次计算需要的代价即可。 #include <bits/stdc++ 阅读全文
posted @ 2023-07-01 14:39 shoot_down 阅读(17) 评论(0) 推荐(0)
摘要: 将题目分解成两个部分: 判断素数 如果用暴力筛因子的方法,在 $t \le 10^4,n \le 10^7$ 下肯定是要超时的,所以用了时间和空间都比较廉价的埃氏筛法。 代码: bool f[10000010];//值为1不是质数。 void init(){ f[0]=f[1]=1;//0,1不是质 阅读全文
posted @ 2023-05-02 13:31 shoot_down 阅读(15) 评论(0) 推荐(0)
摘要: 二分答案的练手题,虽然很淼,但本题解提供一种清爽的解。 首先,二分什么: 当然是二分可以删除的次数,并使用 check 函数判断该值是否合法。这点毋庸置疑。 check 怎么写。 首先,我们假设可以删除 $m$ 次。使用标记数组将 $a_1$ 到 $a_m$,所表示的字符串下标,置为不可使用。 然后 阅读全文
posted @ 2023-03-12 07:14 shoot_down 阅读(9) 评论(0) 推荐(0)
摘要: 传送门 变态数学题(主考位运算与素数筛)。 读完题看起来有点难做,因为质数的出现是根本没有可以使用的规律。暴力的话也很好想,枚举 $y$。但是肯定会超时。我们也可以换个方向枚举。对,筛出素数,再返过去判断有多少个素数符合条件,但任然会超时。 再思考一下,$x$ 异或上什么样的数才能使结果小于 $x$ 阅读全文
posted @ 2023-01-27 13:34 shoot_down 阅读(32) 评论(0) 推荐(0)
摘要: [CRCI2008-2009] CVJETICI 观察图片及样例一: 注:下文中的被占领,指的是在这一个区间内,才有交叉开花的可能。 第一张小图发现 $2 \sim 3$ 被占领。 第二张小图发现 $4 \sim 6$ 被占领,并伸入 $2 \sim 3$ 内,开花。第三张小图发现 $2 \sim 阅读全文
posted @ 2023-01-15 11:30 shoot_down 阅读(20) 评论(0) 推荐(0)