摘要: 解题报告:水题,直接附上代码,只是觉得这题的作者是不是吃饱了饭撑的,反素数的概念跟这题一点关系都没有。 1 #include 2 int judge1(int k) { 3 int tot = 0; 4 for(int i = 1;ijudge1(MIN))17 MIN = i;18 printf("%d\n",MIN);19 }20 return 0;21 }View Code 阅读全文
posted @ 2013-07-19 17:15 xiaxiaosheng 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 题目描述:输入一个偶数,判断这个偶数可以由哪两个差值最小的素数相加,输出这两个素数。题目分析:模拟题,注意的是为了提高效率,在逐个进行判断时,只要从2判断到n/2就可以了,并且最好用打表法判断素数。代码附上。。。 1 #include 2 #include 3 #include 4 const int MAX = 10005; 5 bool prim[MAX]; 6 void dabiao() { //先打素数表 7 memset(prim,0,sizeof(prim)); 8 for(int i = 4;i<=MAX;i+=2) 9 prim[i... 阅读全文
posted @ 2013-07-19 16:44 xiaxiaosheng 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 题目描述:给定一个区间,将这个区间里所有既是素数又是回文数的数输出来。题目分析:这题的这个数据范围比较大,达到了10^8级别,而且输入的数据有多组,又因为判断一个数是否是回文数貌似只有暴力判断,时间限制是1000ms,所以如果对于每组数据输入都暴力判断的话,应该就TLE了,那么我们该怎么办呢。我们想到回文数本来就不多,再加上还必须要是素数,猜想数据范围虽然非常大,但是在这个区间里面满足条件的数应该不多,我算了一下,只有700多个,所以我们很自然地想到用离线打表,将这个区间内所有的满足条件的数存到一个数组里面去,然后输出的时候判断每一个数是否在输入的这个区间里面就可以了。先给出本地打表代码: 1 阅读全文
posted @ 2013-07-19 16:12 xiaxiaosheng 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 题目描述:给你一个N,表示有一个N*N的棋盘,现在要在棋盘上摆放N个皇后,为了使这N个皇后不互相攻击,要求是这N个皇后中任意两个皇后不能在同一行也不能在同一列,也不能在同一个45度角的斜线上,输入一个N,问,一共有多少中排列的方法。解题报告:要判断有多少中方法,我们可以有几种选择,第一种,列出N*N的所有子集,然后逐一判断每个子集是否满足条件,然而这样的计算量显然太大,第二种,在N*N个格子里面选N个格子,也就是选N个格子出来进行排列,这样计算量还是太大,第三种,很显然,每一行或者每一列都只有一个皇后,现在我们确定每一行只有一个皇后,所以接下来我们只要确定每一行中的皇后排在那一列,这样,我们只 阅读全文
posted @ 2013-07-19 14:28 xiaxiaosheng 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 解题报告:题目描述:写一个程序给一个编程考试C++实时提交系统排名,给你的数据是题目的总数,每次错误提交罚的时间分,每位用户的姓名,然后是输入用户每题的完成情况,有一下几种情况,第一,输入只有一个正值,表示该题只有一次提价记录,且已经AC了,第二,有一个正值,并且,正值后面有一个括号,括号里面有一个数字,前面的正值表示AC该题所用的时间,后面括号里面的数表示总共有多少次错误的提交记录,第三,只有一个负数,表示该题提交了这个负数的绝对值次,但还没有AC,第四,只有一个0,表示该题没有提交记录,对于每一题,如果已经AC了,但是有错误的提交记录,就要将每一次错误的提交记录都罚一定的时间,并且算进总的 阅读全文
posted @ 2013-07-19 10:36 xiaxiaosheng 阅读(401) 评论(0) 推荐(0) 编辑