两日总结一

本次总结的时间是2022-7-12~2022-7-13。

总结学习算法部分:

1.深入学习了博弈这一块,尤其是SG函数。知道了几个关键点:

(1)SG函数的表达式:sg(x) = mex{1,2, 3...} = 0,定义为最小没有出现的整数。

(2)SG函数打表模板及理解:将SG函数和二进制联系理解,我们定义全0为必败状态

00000000(假设八位数)那么对一个状态00000001能够拿掉1让他变成全0则为必胜状态

而需要拿掉的值我们可以使用 ^ 来求得。对于任意一个状态他有任意一种办法转化成必败状态

则本身为必胜状态。

主要转化:(取石头问题)

A和B一样多,A ^ B = 0 先手必败

A胜B胜, A ^ B = 1 先手必胜

A胜B败或A胜B败, A ^ B = 1 先手必胜

A败B败 A^B = 0 先手必败

void get_sg() {
    for (int i = 1; i < N; i++) {
        if (i & 1 && !sg[i - 1]) {
            sg[i] = 1;
            continue;
        }
        for (int j = 1; j <= 10; j++) {
            if (i >> j & 1) {
                for (int k = 0; k < j; k++) {
                    if (!sg[i ^ (1 << j) ^ (1 << k)]) sg[i] = 1;
                }
            }
        }
    }
}

解决问题思路, 看不出来就先打表然后找规律

2.大素判断

一般而言判断一个数n是不是素数,可以用根号n的算法。但是当n很大时比如:100000000000000000,此时是不行的,需要采用一个新的性质进行判断,费马小定理。

费马小定理的条件是 P是质数,反过来如果费马小定理成立那么P是质数。但是这个判断会有点误区,因此需要我们二次深度判断(这里没有搞太明白还要在看看)。

总结刷题部分:

两场垃圾CF+补题:

去年的寒假牛客补题:

 
 博弈题目

看书总结

看了算法竞赛进阶图论20页(相当于复习),看了二元一次方程整数求解(20页)。有一个可用的推论:

ax + by = n 有整数解 ====> gcd(a,b) 可以整除 n.

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值