这学期一口气选了三门 AI 课(AI、模式识别、NLP),初衷就是想深入了解以后能更有底气地说“我不喜欢AI”(x
然后三门课内容高度重复,每个知识点平均听三遍。。。其中最近发生的重合是,人工智能实验先要写一个 RNN 做关键词提取,然后 NLP 课要用 BiLSTM+CRF 做中文分词,完了之后还要用 LSTM 做语言模型。。。
于是这位可怜的老 C++ 选手在用 C++ 写完了 KNN、决策树、PLA、逻辑回归、BPNN 之后,不得不在一个月内从 python 语法入门摸爬打滚到机器学习带师(x
这篇博客大概只是分享和记录,不是教程。我认为学 AI 最好的方式是在学校里上课(有老师带,有同学一起讨论),或者买本书来学。在网上找博客自学是很不靠谱的。
把那些别人认为显然的而我死也想不出来的东西,都记下来
Task
做作业的时候遇到了这么个题:
Alice and Bob love each other, so they decide to use a single RSA modulus $N$ for their key pairs. Of course each of them does not know the private key of the other. Mathematically, Alice and Bob have their own key pairs $(e_A,d_A)$ and $(e_B,d_B)$ sharing the same $N$. Demonstrate how Bob can derive the private key of Alice.
大意是说,Alice 和 Bob 用传统的 RSA 进行交流,但用的是同一个模数 $N$。问 Bob 如何利用这一点来破解 Alice 的私钥。
题目大意
对于集合 $a$,定义集合 $S(a)$ 表示集合 $a$ 生成的集合,生成方式为通过以下步骤任意多次:
- 初始,$S(a)=a$;
- 若存在 $x,y \in S(a)$,但是 $x\oplus y \not \in S(a)$,将其插入到 $S(a)$ 中。
现在给定集合 $a,b$,你需要维护一个数据结构,支持以下操作,共 $m$ 次:
- $1\ x$,表示插入 $x$ 到集合 $a$ 中,保证插入之前 $x \not\in a$
- $2\ x$,表示插入 $x$ 到集合 $b$ 中,保证插入之前 $x \not\in b$
- $3\ x$,表示从集合 $a$ 中删除元素 $x$,保证删除之前 $x \in a$
- $4\ x$,表示从集合 $b$ 中删除元素 $x$,保证删除之前 $x \in b$
- $5$,表示询问:输出 $|S(a) \cup S(b)| \bmod 998244353$,即集合并的元素个数
$|a|,|b| \le 10^5,\ \ m \leq 2\times 10^5$,所有的集合元素 $\in [0,2^{63})$
多测,时限比较迷。。反正 $O(n \log^2 x)$ 跑不过
题目大意
一个置换可以看成是有 $a_1$ 个长度为 $1$ 的环 + $a_2$ 个长度为 $2$ 的环 + …… + $a_n$ 个长度为 $n$ 的环,满足 $\sum_{i=1}^n i\cdot a_i=n$ 。
记 $f(a_1,a_2,\cdots,a_n)$ 表示各种环的数量分别为 $a_1,\cdots,a_n$、长度为 $n$ 的置换的数量,现给定 $n,p$($p$ 是质数),问有多少种不同的数列 $a_1,\cdots,a_n$,满足 $p \not|\ f(a_1,a_2,\cdots,a_n)$ 。
$n \leq 10^{18},\ \ 2 \leq p \leq 10^5$
多测,$T \leq 10^5$,2s