二甲基 - 模板
type: channel
link: https://www.ariels.xyz/tag/%E6%A8%A1%E6%9D%BF/
items: 提问的智慧
items: 高中英语作文速查
items: 动态规划整理
items: WHMCS 各版本下载以及开心版授权文件
items: 评论邮件模板
items: Splay模板

提问的智慧
type: item
date: 2021-11-16T00:56:13+00:00
description: # 提问的智慧 [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/pulls) **How To Ask Questions The Smart Way** Copyright © 2001,2006,2014 Eric S. Raymond, Rick Moen 本指南英文版版权为 Eric S. Raymond, Rick Moen 所有。 原文网址：[http://www.catb.org/~esr/faqs/smart-questions.html](http://www.catb.org/~esr/faqs/smart-questions.html) Copyleft 2001 by D.H.Grand(nOBODY/Ginux), 2010 by Gasolin, 2015 by Ryan Wu 本中文指南是基于原文 3.10 版以及 2010 年由 [Gasolin](https://github.com/gasolin) 所翻译版本的最新翻译； 协助指出翻译问题，**请[发 issue](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/issues/new)，或直接[发 pull request](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/compare) 给我。** 本文另有[繁體中文版](README.md)。 ## [原文版本历史](history.md) ## 目录 * [声明](#声明) * [简介](#简介) * [在提问之前](#在提问之前) * [当你提问时](#当你提问时) * [慎选提问的论坛](#慎选提问的论坛) * [Stack Overflow](#stack-overflow) * [网站和 IRC 论坛](#网站和-irc-论坛) * [第二步，使用项目邮件列表](#第二步使用项目邮件列表) * [使用有意义且描述明确的标题](#使用有意义且描述明确的标题) * [使问题容易回复](#使问题容易回复) * [使用清晰、正确、精准且合乎语法的语句](#使用清晰、正确、精准且合乎语法的语句) * [使用易于读取且标准的文件格式发送问题](#使用易于读取且标准的文件格式发送问题) * [精确地描述问题并言之有物](#精确地描述问题并言之有物) * [话不在多而在精](#话不在多而在精) * [别动辄声称找到 Bug](#别动辄声称找到-bug) * [低声下气不能代替你的功课](#低声下气不能代替你的功课) * [描述问题症状而非你的猜测](#描述问题症状而非你的猜测) * [按发生时间先后列出问题症状](#按发生时间先后列出问题症状) * [描述目标而不是过程](#描述目标而不是过程) * [别要求使用私人电邮回复](#别要求使用私人电邮回复) * [清楚明确的表达你的问题以及需求](#清楚明确的表达你的问题以及需求) * [询问有关代码的问题时](#询问有关代码的问题时) * [别把自己家庭作业的问题贴上来](#别把自己家庭作业的问题贴上来) * [去掉无意义的提问句](#去掉无意义的提问句) * [即使你很急也不要在标题写紧急](#即使你很急也不要在标题写紧急) * [礼多人不怪，而且有时还很有帮助](#礼多人不怪而且有时还很有帮助) * [问题解决后，加个简短的补充说明](#问题解决后加个简短的补充说明) * [如何解读答案](#如何解读答案) * [RTFM 和 STFW：如何知道你已完全搞砸了](#rtfm-和-stfw如何知道你已完全搞砸了) * [如果还是搞不懂](#如果还是搞不懂) * [处理无礼的回应](#处理无礼的回应) * [如何避免扮演失败者](#如何避免扮演失败者) * [不该问的问题](#不该问的问题) * [好问题与蠢问题](#好问题与蠢问题) * [如果得不到回答](#如果得不到回答) * [如何更好地回答问题](#如何更好地回答问题) * [相关资源](#相关资源) * [鸣谢](#鸣谢) ## 声明 许多项目在他们的使用协助/说明网页中链接了本指南，这么做很好，我们也鼓励大家都这么做。但如果你是负责管理这个项目网页的人，请在超链接附近的显著位置上注明： **本指南不提供此项目的实际支持服务！** 我们已经深刻领教到少了上述声明所…

高中英语作文速查
type: item
date: 2021-07-10T15:43:00+00:00
description: 本文整理了高中英语作文常见的模板句型等。[...]

动态规划整理
type: item
date: 2020-10-04T12:40:00+00:00
description: 动态规划定义动态规划（英语：Dynamic programming，简称 DP）是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的，通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题，动态规划方法所耗时间往往远少于朴素解法。动态规划背后的基本思想非常简单。大致上，若要解一个给定问题，我们需要解其不同部分（即子问题），再根据子问题的解以得出原问题的解。要求试用动态规划解决问题，需要问题满足下列要求：最优子结构性质，即全局最优解包含的子问题的解也是最优解。无后效性，即前面的决策不收后面影响。子问题重叠性质。这也是 DP 可以比爆搜快的原因。常见模板最长上升子序列给定一个长度为 $n$ 的序列 A，求最长上升子序列的长度。$n \leq 1000$。最长公共子序列点击此处以访问模板提交链接。给出 $1, 2, \ldots, n$的两个排列 $P_1$ 和 $P_2$，求它们的最长公共子序列。$n,m \leq 3\times 10^3$#include <bits/stdc++.h> using namespace std; int a[100001], b[100001], mmp[100001], f[100001]; int main() { ios::sync_with_stdio( false ); int n; cin >> n; for ( int i = 1; i <= n; i++ ) { cin >> a[i]; mmp[a[i]] = i; } for ( int i = 1; i <= n; i++ ) { cin >> b[i]; f[i] = INT_MAX; } int len = 0; f[0] = 0; for ( int i = 1; i <= n; i++ ) { int l = 0, r = len, mid; if ( mmp[b[i]] > f[len] ) { f[++len] = mmp[b[i]]; } else { while ( l < r ) { mid = ( l + r ) / 2; if ( f[mid] > mmp[b[i]] ) { r = mid; } else { l = mid + 1; } } f[l] = min( mmp[b[i]], f[l] ); } } cout << len << endl; return 0; }背包01背包$n$ 种物品，每一个物品有一个价值 $v$ 和一个体积 $w$ ，你有一个大小为 $m$ 的背包，你需要装进去最大价值的物品。$n, m \leq 10^3$

WHMCS 各版本下载以及开心版授权文件
type: item
date: 2020-02-18T04:59:00+00:00
description: WHMCS 是一套国外流行的域名主机管理软件，主要在用户管理、财务管理、域名接口、服务器管理面板接口等方面设计的非常人性化。WHMCS 是一套全面支持域名注册管理解析，主机开通管理，VPS 开通管理和服务器管理的一站式管理软件。[...]

评论邮件模板
type: item
date: 2020-01-26T05:14:56+00:00
description: 最近有人想要我的评论邮件模板，那就给吧。[...]

Splay模板
type: item
date: 2019-12-14T02:59:10+00:00
description: 定义template < typename Key >struct Splay ;Splay 是关联容器，含有 key 类型对象的已排序集。用比较函数less<Key>进行排序。搜索、移除和插入拥有对数复杂度。 Splay 以Splay树实现。成员类型成员类型定义value_typeKey成员分类或标识符描述常规 构造函数构造 Splay (公开成员函数)析构函数析构 Splay (公开成员函数)容量 empty检查是否为空 (公开成员函数)size返回容纳的元素数 (公开成员函数)修改器 clear清除内容(公开成员函数)ins插入结点(公开成员函数)del擦除元素(公开成员函数)maintain在改变节点位置后，将节点的子树更新(私有成员函数)rotate将节点上移一个位置(公开成员函数)splay将节点旋转至根节点(公开成员函数)查找 get判断节点是父亲的左儿子或右儿子。rk查询节点的排名 (公开成员函数)kth查询排名的值 (公开成员函数)pre查询前驱 (公开成员函数)nxt查询后继 (公开成员函数)可能的实现template < typename Key > struct Splay { int rt, tot, fa[MAXN], ch[MAXN][2], cnt[MAXN], sz[MAXN]; Key val[MAXN]; void maintain( int x ) { sz[x] = sz[ch[x][0]] + sz[ch[x][1]] + cnt[x]; } bool get( int x ) { return x == ch[fa[x]][1]; } void clear( int x ) { ch[x][0] = ch[x][1] = fa[x] = val[x] = sz[x] = cnt[x] = 0; } void rotate( int x ) { int y = fa[x], z = fa[y], chk = get( x ); ch[y][chk] = ch[x][chk ^ 1]; fa[ch[x][chk ^ 1]] = y; ch[x][chk ^ 1] = y; fa[y] = x; fa[x] = z; if ( z ) ch[z][y == ch[z][1]] = x; maintain( x ); maintain( y ); } void splay( int x ) { for ( int f = fa[x]; f = fa[x], f; rotate( x ) ) if ( fa[f] ) rotate( get( x ) == get( f ) ? f : x ); rt = x; } void ins( int k ) { if ( !rt ) { val[++tot] = k; cnt[tot]++; rt = tot; maintain( rt ); return; } int cnr = rt, f = 0; while ( true ) { if ( val[cnr] == k ) { cnt[cnr]++; maintain( cnr ); maintain( f ); splay( cnr ); break; } f = cnr; cnr = ch[cnr][val[cnr] < k]; if ( !cnr ) { val[++tot] = k; cnt[tot]++; fa[tot] = f; ch[f][val[f] < k] = tot; maintain( tot ); maintain( f ); splay( tot ); break; } } } int rk( int k ) { int res = 0, cnr = rt; while ( 1 ) { if ( k < val[cnr] ) { cnr = ch[cnr][0]; } else { res += sz[ch[cnr][0]]; if ( k == val[cnr] ) { splay( cnr ); return res + 1; } res += cnt[cnr]; cnr = ch[cnr][1]; } } } int kth( int k ) { int cnr = rt; while ( 1 ) { if ( ch[cnr][0] && k <= sz[ch[cnr][0]] ) { cnr = ch[cnr][0]; } else { k -= cnt[cnr] + sz[ch[cnr][0]]; if ( k <= 0 ) return val[cnr]; cnr = ch[cnr][1]; } } } int pre() { int cnr = ch[…