上一页 1 2 3 4 5 6 7 8 9 10 ··· 13 下一页
  2020年1月28日
摘要: 给出一个字符串S(可能有重复的字符),按照字典序从小到大,输出S包括的字符组成的所有排列。例如:S = "1312", 输出为: 1123 1132 1213 1231 1312 1321 2113 2131 2311 3112 3121 3211 Input 输入一个字符串S(S的长度 <= 9, 阅读全文
posted @ 2020-01-28 19:54 qdu_lkc 阅读(707) 评论(0) 推荐(0) 编辑
  2020年1月27日
摘要: 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。 A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。 每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是”1 X Y”,表示X和Y是同类。 第 阅读全文
posted @ 2020-01-27 15:33 qdu_lkc 阅读(357) 评论(0) 推荐(0) 编辑
  2020年1月26日
摘要: 给定一个包含n个点(编号为1~n)的无向图,初始时图中没有边。 现在要进行m个操作,操作共有三种: “C a b”,在点a和点b之间连一条边,a和b可能相等; “Q1 a b”,询问点a和点b是否在同一个连通块中,a和b可能相等; “Q2 a”,询问点a所在连通块中点的数量; 输入格式 第一行输入整 阅读全文
posted @ 2020-01-26 18:48 qdu_lkc 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 一共有n个数,编号是1~n,最开始每个数各自在一个集合中。 现在要进行m个操作,操作共有两种: “M a b”,将编号为a和b的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作; “Q a b”,询问编号为a和b的两个数是否在同一个集合中; 输入格式 第一行输入整数n和m。 接下来 阅读全文
posted @ 2020-01-26 17:01 qdu_lkc 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 并查集 1.合并两个集合 2.查询两个数是否在一个集合 基本原理: 每个集合用一棵树来表示,树根的编号就是整个集合的编号,每个结点存储他的父节点,p[x]表示x的父节点 1.是否是一个集合 if( find(a)==find(b) ) 2.合并两个集合 p[find(a)]=find(b) stat 阅读全文
posted @ 2020-01-26 16:59 qdu_lkc 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 在给定的N个整数A1,A2……ANA1,A2……AN中选出两个进行xor(异或)运算,得到的结果最大是多少? 输入格式 第一行输入一个整数N。 第二行输入N个整数A1A1~ANAN。 输出格式 输出一个整数表示答案。 数据范围 1≤N≤1051≤N≤105,0≤Ai<2310≤Ai<231 输入样例 阅读全文
posted @ 2020-01-26 15:20 qdu_lkc 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 用于快速的查找一个字符串 static final int max=100005; //所有字符总数 static int son[][]=new int[max][26];//son数组存储每个节点的儿子;一维表示父节点下标,二维表示小写字母 son[x][0~25] static int cnt 阅读全文
posted @ 2020-01-26 13:01 qdu_lkc 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 维护一个字符串集合,支持两种操作: “I x”向集合中插入一个字符串x; “Q x”询问一个字符串在集合中出现了多少次。 共有N个操作,输入的字符串总长度不超过 105105,字符串仅包含小写英文字母。 输入格式 第一行包含整数N,表示操作数。 接下来N行,每行包含一个操作指令,指令为”I x”或” 阅读全文
posted @ 2020-01-26 12:55 qdu_lkc 阅读(200) 评论(0) 推荐(0) 编辑
  2020年1月23日
摘要: 从前有一对长寿兔子,它们每一个月生一对兔子,新生的小兔子两个月就长大了,在第二个月的月底开始生它们的下一代小兔子,这样一代一代生下去,求解兔子增长数量的数列。Input第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 <= a <= 20)Output输出有1行, 阅读全文
posted @ 2020-01-23 17:22 qdu_lkc 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 一、汉诺塔问题 有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆: 每次只能移动一个圆盘; 大盘不能叠在小盘上面。 提示:可将圆盘临时置于B杆,也可将从A杆移出的圆盘重新移回A杆,但都必须遵循上述两条规则。 问:如何移?最少要移动多少次 阅读全文
posted @ 2020-01-23 17:17 qdu_lkc 阅读(322) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 13 下一页