2012年7月10日

素数环问题(回溯_排列树)

摘要: 时限:1000ms 内存限制:10000K 总时限:3000ms描述:把1到20这重新排列,使得排列后的序列A满足: a. 任意相邻两个数之和是素数 b. 不存在满足条件a的序列B使得:A和B的前k(0 <= k <= 19)项相同且B的第k+1项比A的第k+1项小。输入:没有输入。输出:输出A,两个数字之间用一个空格隔开,第一个数字前面和最后一个数字后面没有空格。输入样例:输出样例:#include<stdio.h>#include<math.h>#include<stdlib.h>long sum=0;int Arr[21];//Arr[0] 阅读全文

posted @ 2012-07-10 22:14 IThinktan 阅读(1972) 评论(0) 推荐(0) 编辑

走迷宫(回溯、深搜)求路径长度/最短路径表

摘要: 时限:1000ms 内存限制:10000K 总时限:3000ms 描述:判断是否能从迷宫的入口到达出口输入: 先输入两个整数表示迷宫的行数m和列数n,再输入口和出口的坐标,最后分m行输入迷宫,其中1表示墙,0表示空格每个数字之间都有空格。输出: 若能到达终点,输出从起点到终点的(最短?)路径长度, 走不通时输出“No”输入样例:(行列坐标从0开始)12 121 8 10 71 1 1 1 1 1 1 1 1 1 1 11 0 0 0 0 0 0 1 0 1 1 11 0 1 0 1 1 0 0 0 0 0 11 0 1 0 1 1 0 1 1 1 0 11 0 1 0 0 0 0 0 1 0 阅读全文

posted @ 2012-07-10 21:21 IThinktan 阅读(2817) 评论(0) 推荐(1) 编辑

走迷宫(回溯、深搜)判断能否到终点

摘要: 时限:1000ms 内存限制:10000K 总时限:3000ms 描述:判断是否能从迷宫的入口到达出口输入: 先输入两个整数表示迷宫的行数m和列数n,再输入口和出口的坐标,最后分m行输入迷宫,其中1表示墙,0表示空格每个数字之间都有空格。输出: 若能到达,则输出"Yes",否则输出"No",结果占一行。输入样例:3 30 02 20 0 01 1 00 1 0输出样例: Yes输入样例: 12 121 8 10 71 1 1 1 1 1 1 1 1 1 1 11 0 0 0 0 0 0 1 0 1 1 11 0 1 0 1 1 0 0 0 0 0 11 阅读全文

posted @ 2012-07-10 21:15 IThinktan 阅读(717) 评论(0) 推荐(0) 编辑

循环赛日程表(分治)

摘要: 时限:1000ms 内存限制:10000K 总时限:3000ms描述: 用分治算法生成循环赛日程表(1到2的n次方个人)输入: 一个整数n输出: 循环赛日程表(1到2的n次方个人)输入样例:3输出样例:1 2 3 4 5 6 7 82 1 4 3 6 5 8 73 4 1 2 7 8 5 64 3 2 1 8 7 6 55 6 7 8 1 2 3 46 5 8 7 2 1 4 37 8 5 6 3 4 1 28 7 6 5 4 3 2 1#include<stdio.h>#include<math.h>#define N 65int Arr[N][N]={0};void 阅读全文

posted @ 2012-07-10 17:38 IThinktan 阅读(501) 评论(0) 推荐(0) 编辑

穷举n位二进制数 (深搜、回溯_子集树)

摘要: 时限:100ms 内存限制:10000K 总时限:300ms描述: 输入一个小于20的正整数n,要求按从小到大的顺序输出所有的n位二进制数,每个数占一行。输入: 输入一个小于20的正整数n。输出: 按从小到大的顺序输出所有的n位二进制数,每个数占一行。输入样例: 3输出样例:000001010011100101110111#include#includeint N,a[20]={0};void search(int m){ int i; if(m==N) { for(i=0;i<N;i++) printf("%d",a[i]); ... 阅读全文

posted @ 2012-07-10 15:32 IThinktan 阅读(1308) 评论(0) 推荐(0) 编辑

矩阵乘法

摘要: 时限:1000ms 内存限制:10000K 总时限:3000ms描述: 对给定的两个“实数”矩阵,输出它们的乘积。输入: 输入文件包括多组测试用例,以“0 0 0”标志文件结束,该行无需处理。 每个测试用例第一行为三个正整数m,n,k (1<=m,n,k<=10 ),表示以下m 行为一个m*n 的矩阵A ,再接下来的n 行为n*k 的矩阵B 。每行各元素间用一个空格隔开。输出: 输出矩阵A 与矩阵B 的乘积C=A*B 。C 中元素一律“四舍五入”保留一位小数。 每个测试用例之间输出一个空行。输入样例:2 3 41 2 34 5 61 2 3 45 6 7 89 10 11 121 阅读全文

posted @ 2012-07-10 13:36 IThinktan 阅读(431) 评论(0) 推荐(0) 编辑

数字河

摘要: 时限:1000ms 内存限制:10000K 总时限:3000ms描述: 数字河中的一个数n 的后继数是n 加上其每位数字的和。例如,12345的后继数是12360,因为12345+1+2+3+4+5=12360。如果数字河的第一个数为k,我们就称此数字河为river k。例如,river 480 代表序列{480, 492, 507, 519, ...},river 483 代表序列{483, 498, 519, ...}。 当两个数字河有相同的元素时,我们称这两个数字河在此元素处相遇。例如,river 480 和river 483 在元素519处相遇。所有数字河都会和river 1, riv 阅读全文

posted @ 2012-07-10 13:31 IThinktan 阅读(726) 评论(0) 推荐(0) 编辑

五子棋(活三)

摘要: 时限:1000ms 内存限制:10000K 总时限:3000ms描述:〖阳线〗即:直线,棋盘上可见的横纵直线。〖阴线〗即:斜线,由交叉点构成的与阳线成45凹薪堑囊涡毕摺?〖三〗在一条阳线或阴线上连续相邻的5个点上只有三枚同色棋子的棋型。〖四〗在一条阳线或阴线上连续相邻的5个点上只有四枚同色棋子的棋型〖活三〗再走一着可以形成活四的三。 〖眠三〗再走一着可以形成冲四的三。〖活四〗有两个点可以成五的四。 〖冲四〗只有一个点可以成五的四。 注意活三有2种形式: 〖连活三〗即:连的活三(同色棋子在一条阳线或阴线上相邻成一排的活三)。简称“连三”。 〖跳活三〗中间隔有一个空点的活三。简称“跳三”。 .. 阅读全文

posted @ 2012-07-10 13:10 IThinktan 阅读(3056) 评论(0) 推荐(0) 编辑

五子棋(活四)

摘要: 时限:1000ms 内存限制:10000K 总时限:3000ms描述:在五子棋对战中,我们有以下相关术语:〖阳线〗即:直线,棋盘上可见的横纵直线。 〖阴线〗即:斜线,由交叉点构成的与阳线成45凹薪堑囊涡毕摺? 〖四〗在一条阳线或阴线上连续相邻的5个点上只有四枚同色棋子的棋型。 〖活四〗有两个点可以成五的四。 〖冲四〗只有一个点可以成五的四。 〖五连〗只有五枚同色棋子在一条阳线或阴线上相邻成一排。 〖长连〗五枚以上同色棋子在一条阳线或阴线上相邻成一排。此题要求同学们编写程序,判断在给定点放给定颜色的子后是否会有活四这种棋型出现。输入:对于本题,首先读入的是当前棋盘的状态,共15行,每行15个数 阅读全文

posted @ 2012-07-10 13:08 IThinktan 阅读(1115) 评论(0) 推荐(0) 编辑

五子棋(五连)

摘要: 时限:1000ms 内存限制:10000K 总时限:3000ms描述:在五子棋对战中,我们有以下相关术语: 〖阳线〗即:直线,棋盘上可见的横纵直线。 〖阴线〗即:斜线,由交叉点构成的与阳线成45凹薪堑囊涡毕摺? 〖五连〗只有五枚同色棋子在一条阳线或阴线上相邻成一排。 〖长连〗五枚以上同色棋子在一条阳线或阴线上相邻成一排。 五连也是五子棋的胜利条件。 此题要求同学们编写程序,判断在给定点放给定颜色的子后是否会有五连这种棋型出现。输入:对于本题,首先读入的是当前棋盘的状态,共15行,每行15个数字,1代表白棋,2代表黑棋,0代表为空格(未下子)。第16行有3个数字R,C,N代表给定点的行、列和放 阅读全文

posted @ 2012-07-10 13:05 IThinktan 阅读(890) 评论(0) 推荐(0) 编辑

导航