0%

二进制

python的bin()函数返回的是符号+'0b'+无符号下的原码,但用x >> i & 1求第i为的二进制表示时,是补码形式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
bin(5)
Out[2]: '0b101'
bin(-5)
Out[3]: '-0b101'
bin(-7)
Out[4]: '-0b111'
[ 5 >> i & 1 for i in range(8,-1,-1)]
Out[5]: [0, 0, 0, 0, 0, 0, 1, 0, 1]
for x in [-5,-27,7,15]:
print(x,[x >> i & 1 for i in range(8, -1, -1)])

-5 [1, 1, 1, 1, 1, 1, 0, 1, 1]
-27 [1, 1, 1, 1, 0, 0, 1, 0, 1]
7 [0, 0, 0, 0, 0, 0, 1, 1, 1]
15 [0, 0, 0, 0, 0, 1, 1, 1, 1]
阅读全文 »

输入输出

buffer.read() 字节流读入

1
2
3
4
5
6
data = sys.stdin.buffer.read().split()
ptr = 0
n = int(data[ptr])
m = int(data[ptr+1])
ptr += 2
# 后续所有数据均通过ptr指针从data列表中取数
阅读全文 »

这道题有点折磨。首先是思路不太简单,用 ChatGPT 的话来说,就是有着“三层‘逼迫’”——当然,对于大佬来说可能也是常规了。然后是 Python 的问题,一直超内存,最后是 Gemini 优化后终于过了。

题目

题目链接:https://acm.ecnu.edu.cn/problem/3681/

阅读全文 »

在一些计数问题中,有的时候需要预处理组合数。这里有两种方法:

  1. 动态规划(杨辉三角),用于规模较小的情况;
  2. 阶乘 + 逆元,用于规模较大的情况。

动态规划(杨辉三角)

阅读全文 »

要不是有打卡的DDL,都不知道要拖到什么时候学呢。那既然打卡的任务是笔记,那这笔记就做成学习记录持续更新吧~😎

0419

今天主要是看了下数据和想一下用什么模型来做。

阅读全文 »

记录一下抠二分查找细节的过程。

// 运算符

是除了之后向下取整。

阅读全文 »