360 1 分钟

C++12345678910111213141516171819202122inline int read() { int x = 0, w = 1; char ch = 0; while (!isdigit(ch)) { if (ch == '-') w = -1; ch = getchar(); } while (isdigit(ch)) { x = x * 10 + (ch - '0'); ch = getchar(); }...
4.8k 4 分钟

# 为什么需要图神经网络 随着时代发展,深度学习在语音、图像、自然语言处理方面有很大突破,针对这种很结构化的序列、网格数据,有很好的处理效果。然而,现实世界中,不是所有数据都能描绘成序列或网格化的数据的。图数据有这些特点 图的大小是任意的,图的拓扑结构复杂,没有像图像一样的空间局部性 图没有固定的节点顺序,或者说没有一个参考节点 图经常是动态图,而且包含多模态的特征 # 图的基本概念 感恩算法竞赛,你应该大概已经懂了(有向图、无向图) # 图的预备知识 邻接矩阵 度矩阵(如果仅已知度矩阵,不能还原出图) 度矩阵 Di,i=d(i)D_{i,i} =...
5.6k 5 分钟

本文全称:基于 Embedding 的相似度检索(Word2Vec),核心目标是通过无监督学习来计算词的分布式表示 # Embedding 是什么 你有一堆单词(比如 猫 、 狗 、 汽车 ),EmbeddingEmbeddingEmbedding 就是把这些词变成一串数字(比如 [-0.2, 0.5, 1.3...] ),这串数字能代表这个词的含义 意思相近的词( 猫 和 狗 ),它们的数字串也相似 Word2VecWord2VecWord2Vec 就是生成这种数字串的工具之一 # One-Hot Representation 一种最简单的词向量方式是...
549 1 分钟

# 基于物品的协同过滤 通过用户的历史行为分析物品之间的相似性,为用户推荐与他们过去喜欢的物品相似的其他物品 适用于:物品数量稳定、用户行为丰富的场景(电商推荐) 需要有用户的历史行为数据 根据历史行为数据,计算类似的物品 # 核心数学公式 r^u,i=rˉi+∑j∈N(i)sim(i,j)⋅(ru,j−rˉj)∑j∈N(i)∣sim(i,j)∣\hat{r}_{u, i}=\bar{r}_i+\frac{\sum_{j \in N(i)} sim(i, j)·(r_{u,j}- \bar{r}_j)}{\sum_{j \in...
1.2k 1 分钟

# 学习路线 # 阶段 1:推荐系统入门 目标:理解推荐系统基础流程,先实现 baselinebaselinebaseline 学习内容: 推荐系统三步骤:召回 → 排序 → 重排序 ✅ 协同过滤(UserCFUserCFUserCF,ItemCFItemCFItemCF)✅ 基于 EmbeddingEmbeddingEmbedding 的相似度检索(Word2VecWord2VecWord2Vec)✅ 任务: 用 ItemCF 给用户推荐文章(TopN 推荐)。 用 Word2Vec(gensim 库) 学习文章...
2.1k 2 分钟

# C1 - Easy Version # 题目大意 现在买 nnn 个东西,每次你可以选择一个非负整数 xxx,以 3x+1+x×3x−13^{x + 1} + x \times 3^{x - 1}3x+1+x×3x−1 的价钱,购买 3x3^x3x 个物品,请问,如果要使得交易次数最小的话,你要花多少钱? # 数据范围 1≤n≤1091 \le n \le 10^91≤n≤109 # 题解 显然,按照 nnn...
4.6k 4 分钟

# 洛谷仙题 # 题目大意 给定一个有 nnn 个节点,mmm 条边的无向图。求节点 xxx 到节点 yyy 的最小权值 # 数据范围 1≤n≤106,1≤m≤106×1.51 \le n \le 10^6,1 \le m \le 10^6 \times 1.51≤n≤106,1≤m≤106×1.5 1≤ci≤10001 \le c_i \le 10001≤ci​≤1000 # 题解 这题会卡 vector<PII> g[M] 的存图,得用...
2.7k 2 分钟

# B # 题目大意 给定一个字符串 SSS,ttt 是其子串,如果 t0t_0t0​ 和 tlastt_{last}tlast​ 都是字符 t 的话,它就会有一个值,字符t的个数−2字符串长度−2\frac{字符t的个数 - 2}{字符串长度 - 2}字符串长度−2字符t的个数−2​ 请你求出最大的这个值 # 题解 1≤len≤1001 \le len \le 1001≤len≤100 # 题解 其实题目很容易,但是为什么写在这呢? 是因为,在写这题的时候,用了 vectorvectorvector,在其大小为 000 的时候,我访问了 idx.size() -...
2.2k 2 分钟

# C # 题目大意 给你 nnn 个数 a1,...,ana_1, ..., a_na1​,...,an​,找到满足 j−i=ai+aj (i<j)j-i = a_i + a_j~(i < j)j−i=ai​+aj​ (i<j) 的 (i,j)(i,j)(i,j) 的个数 # 数据范围 1≤n≤2×1051 \le n \le 2 \times 10^51≤n≤2×105 # 题解 变换原式为 ai+i=j−aja_i+i = j - a_jai​+i=j−aj​,维护一个 map<int,...