【模板】n-皇后问题 n-皇后问题是指将 n 个皇后放在 n∗n 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数n,请你输出所有的满足条件的棋子摆法。 输入格式共一行,包含整数n。 输出格式每个解决方案占n行,每行输出一个长度为n的字符串,用来表示完整的棋盘状态。 其中”.”表示某一个位置的方格状态为空,”Q”表示某一个位置的方格上摆着皇后。 每个方案输 2021-02-17 模板 #dfs
【模板】排列数字 给定一个整数n,将数字1~n排成一排,将会有很多种排列方法。 现在,请你按照字典序将所有的排列方法输出。 输入格式共一行,包含一个整数n。 输出格式按字典序输出所有排列方案,每个方案占一行。 数据范围1≤n≤7 输入样例:13 输出样例:1234561 2 31 3 22 1 32 3 13 1 23 2 1 模板1234567891011121314151617181920212223242 2021-02-17 模板 #dfs
【模板】字符串哈希 给定一个长度为n的字符串,再给定m个询问,每个询问包含四个整数l1,r1,l2,r2,请你判断[l1,r1]和[l2,r2]这两个区间所包含的字符串子串是否完全相同。 字符串中只包含大小写英文字母和数字。 输入格式第一行包含整数n和m,表示字符串长度和询问次数。 第二行包含一个长度为n的字符串,字符串中只包含大小写英文字母和数字。 接下来m行,每行包含四个整数l1,r1,l2,r2,表示一次询问 2021-02-16 模板 #哈希表
【模板】模拟散列表 维护一个集合,支持如下几种操作: “I x”,插入一个数x; “Q x”,询问数x是否在集合中出现过; 现在要进行N次操作,对于每个询问操作输出对应的结果。 输入格式第一行包含整数N,表示操作数量。 接下来N行,每行包含一个操作指令,操作指令为”I x”,”Q x”中的一种。 输出格式对于每个询问指令“Q x”,输出一个询问结果,如果x在集合中出现过,则输出“Yes”,否则输出“No”。 每 2021-02-15 模板 #哈希表
【模板】模拟堆 维护一个集合,初始时集合为空,支持如下几种操作: “I x”,插入一个数x; “PM”,输出当前集合中的最小值; “DM”,删除当前集合中的最小值(数据保证此时的最小值唯一); “D k”,删除第k个插入的数; “C k x”,修改第k个插入的数,将其变为x; 现在要进行N次操作,对于所有第2个操作,输出当前集合的最小值。 输入格式第一行包含整数N。 接下来N行,每行包含一个操作指令,操作指 2021-02-15 模板 #堆
【模板】堆排序 输入一个长度为n的整数数列,从小到大输出前m小的数。 输入格式第一行包含整数n和m。 第二行包含n个整数,表示整数数列。 输出格式共一行,包含m个整数,表示整数数列中前m小的数。 数据范围1 ≤ m ≤ n ≤ 10^5,1 ≤ 数列中元素 ≤ 10^9 输入样例125 34 5 1 3 2 输出样例11 2 3 模板1234567891011121314151617181920212223 2021-02-15 模板 #堆
【模板】连通块中点的数量 给定一个包含n个点(编号为1~n)的无向图,初始时图中没有边。 现在要进行m个操作,操作共有三种: “C a b”,在点a和点b之间连一条边,a和b可能相等; “Q1 a b”,询问点a和点b是否在同一个连通块中,a和b可能相等; “Q2 a”,询问点a所在连通块中点的数量; 输入格式第一行输入整数n和m。 接下来m行,每行包含一个操作指令,指令为“C a b”,“Q1 a b”或“Q2 a 2021-02-15 模板 #并查集
【模板】合并集合 一共有n个数,编号是1~n,最开始每个数各自在一个集合中。 现在要进行m个操作,操作共有两种: “M a b”,将编号为a和b的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作; “Q a b”,询问编号为a和b的两个数是否在同一个集合中; 输入格式第一行输入整数n和m。 接下来m行,每行包含一个操作指令,指令为“M a b”或“Q a b”中的一种。 输出格式对于每个询问 2021-02-14 模板 #并查集
【模板】Trie字符串统计 维护一个字符串集合,支持两种操作: “I x”向集合中插入一个字符串x; “Q x”询问一个字符串在集合中出现了多少次。 共有N个操作,输入的字符串总长度不超过 105,字符串仅包含小写英文字母。 输入格式第一行包含整数N,表示操作数。 接下来N行,每行包含一个操作指令,指令为”I x”或”Q x”中的一种。 输出格式对于每个询问指令”Q x”,都要输出一个整数作为结果,表示x在集合中出现的 2021-02-14 模板 #Trie
【模板】KMP字符串 给定一个模式串S,以及一个模板串P,所有字符串中只包含大小写英文字母以及阿拉伯数字。 模板串P在模式串S中多次作为子串出现。 求出模板串P在模式串S中所有出现的位置的起始下标。 输入格式第一行输入整数N,表示字符串P的长度。 第二行输入字符串P。 第三行输入整数M,表示字符串S的长度。 第四行输入字符串S。 输出格式共一行,输出所有出现位置的起始下标(下标从0开始计数),整数之间用空格隔开。 数 2021-02-14 模板 #KMP