快速排序:通过一趟排序,将数据分为两部分,其中一部分中的所有数据比另外一部分的所有数据要小,然后按照此方法,分别对这两部分进行排序,达到最终的排序结果. 每趟排序选取基准元素,比该基准元素大的数据放在一边,比该基准元素小的数据放在另一边,这种处理方式称为分治法. 数据的移动是基准元素中比较重要的点,有两种方式实现,挖坑填数法和指针交换法. 挖坑填数法 (下图中单词有两处拼写错误,pviot和pvoit应该为pivot) 如下为代码实现 import java.util.Arrays; publi…
方块填数 "数独"是当下炙手可热的智力游戏.一般认为它的起源是"拉丁方块",是大数学家欧拉于1783年发明的. 如图[1.jpg]所示:6x6的小格被分为6个部分(图中用不同的颜色区分),每个部分含有6个小格(以下也称为分组). 开始的时候,某些小格中已经填写了字母(ABCDEF之一).需要在所有剩下的小格中补填字母. 全部填好后,必须满足如下约束: 所填字母只允许是A,B,C,D,E,F 中的某一个. 每行的6个小格中,所填写的字母不能重复. 每列的6个小格中,所…
七星填数 如图[图1.png]所示. 在七角星的14个节点上填入1~14 的数字,不重复,不遗漏. 要求每条直线上的四个数字之和必须相等. 图中已经给出了3个数字. 请计算其它位置要填充的数字,答案唯一. 填好后,请提交绿色节点的4个数字(从左到右,用空格分开) 比如:12 5 4 8 当然,这不是正确的答案. 注意:只提交4个用空格分开的数字,不要填写任何多余的内容. 答案:10 3 9 8 import java.util.HashSet; public class Main { publi…
package 第三章; import java.util.Scanner; public class 蛇形填数 { public static void main(String[] args)  { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); int n=in.nextInt(); int a[][]=new int[n][n]; int x=0,y=n-1; int t=1; a[0][n-1]=…
6.方格填数  (结果填空) 如下的10个格子 (如果显示有问题,也可以参看[图1.jpg]) 填入0~9的数字.要求:连续的两个数字不能相邻.(左右.上下.对角都算相邻) 一共有多少种可能的填数方案? 请填写表示方案数目的整数.注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字. 提示:和前面第4题分小组,都是用的全排列的思想,只是这个附加了条件,在递归出口时多加一下题目里的附加条件 思路:将表格从上到下从左到右从0开始编号 ,判断每种相邻的方案是否为连续数字,不是则+1 pub…
6.方格填数  (结果填空) 如下的10个格子 (如果显示有问题,也可以参看[图1.jpg]) 填入0~9的数字.要求:连续的两个数字不能相邻.(左右.上下.对角都算相邻) 一共有多少种可能的填数方案? 请填写表示方案数目的整数.注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字. 提示:和前面第4题分小组,都是用的全排列的思想,只是这个附加了条件,在递归出口时多加一下题目里的附加条件 思路:将表格从上到下从左到右从0开始编号 ,判断每种相邻的方案是否为连续数字,不是则+1 pub…
五星填数 如[图1.png]的五星图案节点填上数字:1~12,除去7和11. 要求每条直线上数字和相等. 如图就是恰当的填法. 请你利用计算机搜索所有可能的填法有多少种. 注意:旋转或镜像后相同的算同一种填法. 请提交表示方案数目的整数,不要填写任何其它内容. 答案:12 public class Main { public static int count = 0; public void swap(int[] A, int i, int j) { int temp = A[i]; A[i]…
方格填数 题目描述 如下的10个格子 +--+--+--+ | | | | +--+--+--+--+ | | | | | +--+--+--+--+ | | | | +--+--+--+ (如果显示有问题,也可以参看[图1.jpg]) 填入0~9的数字.要求:连续的两个数字不能相邻. (左右.上下.对角都算相邻) 一共有多少种可能的填数方案? 请填写表示方案数目的整数. 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字. 结果:1580 public class Main {…
六角填数 题目描述 如图[1.png]所示六角形中,填入1~12的数字. 使得每条直线上的数字之和都相同. 图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少? 请通过浏览器提交答案,不要填写多余的内容. public class Hex_FillNum { // 把12个格子放入数组 static int arr[] = new int[12]; // 数组标记,0为无,1为有 static int flag[] = new int[12]; // 放存每条直线的和 static…
参考:题解 P3813 [[FJOI2017]矩阵填数] 题目大意: 给定一个 h∗w 的矩阵,矩阵的行编号从上到下依次为 1...h ,列编号从左到右依次 1...w . 在这个矩阵中你需要在每个格子中填入 1...m 中的某个数. 给这个矩阵填数的时候有一些限制,给定 n个该矩阵的子矩阵,以及该子矩阵的最大值 v ,要求你所填的方案满足该子矩阵的最大值为 v . 现在,你的任务是求出有多少种填数的方案满足 n 个限制. 两种方案是不一样的当且仅当两个方案至少存在一个格子上有不同的数.由于答案…