第qc七大手法试题题

& 1 / 62 页
用户等级:高中一年级
注册时间:
在线时长:477 小时
金币:13305
等级:高中一年级
<em id="authorposton13-10-9 19:36
查看: 41722&
本帖最后由 毛毛老師 于
16:34 编辑 & &&&
2013年幼升小硝烟已过去。。。。& && && && & 随即而来的2014年幼小衔接,你们开始准备了吗?& && && && && & 孩子幼小衔接,应该具备哪些能力?又该储备哪些知识和习惯呢?& && &众多一流小学千变万化的面试题目到底在考察什么呢?& && && && && && & 15:24 上传& & &&幼升小面试在苏州越来越普遍,面试题目千变万化,然纵观历年题目,幼升小面试万变不离其宗,知识+能力+习惯是孩子在人生第一次竞争中占据优势的三个方面。& && &知识的考察体现了对孩子能力的要求,主要包含7大方面:观察、逻辑推理、运算、动手操作、记忆力、空间想象、表达能力。 一、为什么要培养孩子的七大能力 &&& &&&[一流面试] 幼升小面试已成为众多一流小学公开选拔优秀学生的方式,各种面试题目层出不穷,七大能力从& && && && && && && &&&容应对; & &
[培养思维] 充分开发、培养数学思维,激发孩子数学学习兴趣;& &[领跑小学] 步入小学之后,七大能力将会继续陪伴孩子顺利领跑小学六年; 二、七大能力是什么?【观察能力】:决定学习潜力& && & 【逻辑推理】:思维能力高低的体现& && &【运算能力】:二十以内加减法,出题形式多样& && &【动手操作】:手巧有助于心灵的开发& && &&&【记忆能力】:知识能否存留并发展的基础& & 【空间想象】:几何、逻辑发展的基石& && && & 【表达能力】:锻炼逻辑,提高沟通& && && && &
三、毛毛老师带你练习七大能力----每日一题&&择校、面试……无论形式如何,现在正是孩子思维能力发展的关键期,为了帮助激发孩子的数学兴趣,提升各方面的能力,让孩子今后的学习更加快乐,我们推出【2014幼升小七大能力真题训练】,让我们一起努力!【更新频率】每个工作日更新,不同能力分类、逐步练习!【题目形式】真题+拓展练习,详情请点击附件查看!观察能力更新时间最新试题答案详解更新时间最新试题答案详解更新时间最新试题答案详解10月9日11月8日12月9日10月21日11月19日12月18日略&&10月30日11月28日12月27日1月7日1月16日2月17日2月26日逻辑推理10月10日10月31日11月29日10月11日11月11日12月10日&&10月22日 11月20日12月19日12月30日1月8日1月17日2月18日2月27日运算能力10月14日11月12日12月11日10月23日11月21日12月20日11月1日12月2日12月31日1月9日1月20日2月19日2月28日动手操作10月15日略11月13日12月12日10月24日略11月22日略12月23日11月4日略12月3日1月1日1月10日1月21日2月20日3月3日记忆能力10月16日略11月14日略12月13日10月25日略11月25日略12月24日11月5日略12月4日略1月2日1月13日略1月22日略2月21日略3月4日略空间想象10月17日11月15日12月16日10月28日11月26日12月25日11月6日12月5日1月3日1月14日1月23日2月24日3月5日表达能力10月18日略11月18日略12月17日略10月29日略11月27日略12月26日11月7日略12月6日略1月6日略1月15日略1月24日2月25日略3月6日& && &
让我们一起备战幼升小,储备能量现在开始啦!积硅步方能至千里,积小流方能成江海!加油哈!!!& && &&&&& 有任何意见建议,欢迎跟帖回复,我会在第一时间解答您的疑问,采纳您宝贵的意见~~~& && && &&& 精彩推荐:& && && && && && && && && && && && && && && & &&============================= 华丽丽的分割线 ================================【2014幼升小】学前7大能力-课前预热+课后答案+课堂笔记更新第十三讲【逻辑:比较推理篇】每日一题往下翻哈学而思幼升小的各位家长,大家好!新春伊始,学而思春季班已经开课。欢迎大家走进学而思的课堂,期待小伙伴们的快乐和进步!为了更好的帮助小朋友们学习,我们推出这个帖子。它的目的:提前发放下一讲次的热身题,做好课前必要的衔接准备;& && && && && & 课后更新上一讲次家庭作业的电子版答案,配合孩子的检查复习。& && && && && && & 课堂笔记,帮助孩子们在课后整理思路。它的形式:每周二中午前更新,请在相关链接处下载使用;它的团队:幼升小的毛小波老师(毛毛老师)、皮慧娟老师(皮皮老师)------------------------【2014幼升小】学前7大能力-课前预热+课后答案+课堂笔记 ------------------------讲次内容课前预习课后作业答案课堂笔记<font color="#观察力:常识<font color="#观察力:数列<font color="#观察力:图形<font color="#&&运算:计算略<font color="#运算:应用<font color="#表达:想象力略<font color="#空间:方位角度<font color="#空间:图形感知<font color="#空间:立体空间<font color="#记忆:图像略略<font color="#记忆:应用略略略<font color="#逻辑:代换推理略<font color="#逻辑:比较推理略略
+ 102014年继续支持毛毛老师
+ 5内什么,我懂你
+ 102014幼升小的家长,建议收藏关注。.总评分:&金币 + 25&&
支持: 5 很好!支持!
支持: 5 感谢毛毛老师给14届宝贝们带来的福利~
用户等级:幼儿园大班
注册时间:
在线时长:49 小时
<em id="authorposton13-11-5 10:39
附上19题,孩子的内心比我丰富!(487.71 KB, 下载次数: 4) 10:38 上传点击文件名下载附件
骏茜太赞了,整个让人物复活了。人物的眼睛、嘴巴跟表情一一对应,衔接的非常到位。这也说明了孩子平时接触的信息面较广,且都能内化为自己的东西。非常不错!
用户等级:小学六年级
注册时间:
在线时长:377 小时
<em id="authorposton13-11-6 19:49
补上这两天的作业 (301.81 KB, 下载次数: 4) 19:49 上传点击文件名下载附件(354.11 KB, 下载次数: 3) 19:49 上传点击文件名下载附件(287.87 KB, 下载次数: 5) 19:49 上传点击文件名下载附件
悦悦妈,19和20题是完全正确的哈从19题看来,悦悦的想象力很丰富,不仅给画中的小朋友画上了正确的表情,还帮他们补全了鼻子,说明孩子善于观察。从20题可以看出,悦悦的记忆能力非常好,而且还有做标记的好习惯,
用户等级:高中一年级
注册时间:
在线时长:477 小时
金币:13305
<em id="authorposton14-2-26 09:53
2014幼升小七大能力真题训练----【第八十六题】【观察力】小美在窗户上贴上了漂亮的窗纸,如果把两扇窗子推合起来,你知道会组成什么样的图形吗?请把正确的圈出来。........【完整版试题,请登陆论坛后下载附件。】 & &注:若已登录,可直接点击附件下载 (623.53 KB, 下载次数: 111) 09:53 上传点击文件名下载附件下载积分: 金币 -1
这个窗应该是移来移去的那种窗吧?
用户等级:初中二年级
注册时间:
在线时长:413 小时
金币:1147
<em id="authorposton14-3-7 11:26
毛毛老師 发表于
14:32 2014春季班-学前七大能力-第一讲-热身题+课后作业答案【所有资料,请登陆论坛后查看、下载】请教毛毛老师,学前七大能力-第一讲 课后作业答案里,为什么不能是这样? 11:18 上传我的体会:如果题目是问“两图哪里不一样?”,就应该是我的答案如果题目是问“那些表情不一样?”,就应该是您的答案可是对于学前的孩子来说,这些细微的题意,太难了更有可能的是,孩子第一次做这种题的时候按照了某个思路,就会一直套用下去,而不会审题后变通。就算要求仔细审题的话,只怕也要多耽搁一些时间,从而在实际的笔试面试中不利。
+ 10谢谢!总评分:&金币 + 10&&
淘淘妈妈,很细心。这个正确答案是五个圈,还有个圈没有显示。谢谢指出,奖励10个金币。欢迎多提建议!
用户等级:高中一年级
注册时间:
在线时长:477 小时
金币:13305
<em id="authorposton13-10-9 19:36
本帖最后由 毛毛老師 于
11:19 编辑 今天毛毛老师带大家一起看第一道题----观察力,以后每天更新一种能力,让宝贝们每天注入新的血液,让我们一起沸腾吧!1、【观察力】看一看,下面图形“?”里应该填什么?(这是选择题哦~下划线下面是答案,宝贝选一个吧)& && && && && && &……..& &【完整版试题,请登陆论坛后下载附件。】 & & (357.36 KB, 下载次数: 532) 10:23 上传点击文件名下载附件下载积分: 金币 -1 精彩推荐: & && && && && && && &&&& && && && && && && && && && && && && && && && && && && && && && && && && && & & && && && && && && & & && && && && && && && && && && && && & & && && && && && && &
用户等级:幼儿园大班
注册时间:
在线时长:16 小时
<em id="authorposton13-10-10 09:48
欢迎欢迎哈
第一个呀,不错不错!
用户等级:初中三年级
注册时间:
在线时长:452 小时
金币:6055
<em id="authorposton13-10-10 10:29
哈哈,小义老师来啦,谢谢
用户等级:高中一年级
注册时间:
在线时长:477 小时
金币:13305
<em id="authorposton13-10-10 15:49
michellejf 发表于
09:48 第一个呀,不错不错!
用户等级:高中一年级
注册时间:
在线时长:477 小时
金币:13305
<em id="authorposton13-10-10 15:50
秦小义 发表于
10:29 顶顶顶~哈哈,小义老师来啦,谢谢
用户等级:初中二年级
注册时间:
在线时长:397 小时
金币:2469
<em id="authorposton13-10-10 16:03
毛毛老师的每日一题,我也要做~
谢谢捧场哈
用户等级:小学六年级
注册时间:
在线时长:377 小时
<em id="authorposton13-10-10 16:39
<td class="t_f" id="postmessage_月9日悦悦的作业 16:39 上传
悦悦很聪明哈,答案正确!如果能将思路记录下来就更好啦,加油哈,晚上还会继续更新第二题哦。。。
用户等级:高中一年级
注册时间:
在线时长:477 小时
金币:13305
<em id="authorposton13-10-10 17:37
gassie 发表于
16:39 10月9日悦悦的作业悦悦很聪明哈,答案正确!如果能将思路记录下来就更好啦,加油哈,晚上还会继续更新第二题哦。。。
用户等级:高中一年级
注册时间:
在线时长:477 小时
金币:13305
<em id="authorposton13-10-10 17:40
michellejf 发表于
09:48 欢迎欢迎哈
用户等级:高中一年级
注册时间:
在线时长:477 小时
金币:13305
<em id="authorposton13-10-10 20:06
本帖最后由 毛毛老師 于
10:22 编辑 && 第一题属于找规律,这里有两个变化量。可能对有些孩子来说还是有一定难度的,今天我们一起来看一下吧~1、【观察力】看一看,下面图形“?”里应该填什么?(这是选择题哦~下划线下面是答案,宝贝选一个吧)& && &
20:00 上传& &&&& &&&答案详解& &&& 这一题要考虑到三个方面:& &&&1、数字大小,依次加1,但观察答案全是6,所以可以不考虑它。& && && &。。。。。。&&& &【完整版试题答案,请登陆论坛后下载附件。】& &
(377.63 KB, 下载次数: 128) 10:22 上传点击文件名下载附件下载积分: 金币 -1 & &&&
用户等级:高中一年级
注册时间:
在线时长:477 小时
金币:13305
<em id="authorposton13-10-10 20:23
本帖最后由 毛毛老師 于
11:21 编辑 &&第二题以 逻辑推理 为主,宝贝儿,发挥你的想象吧~2、【观察力+逻辑推理+表达+常识】排排顺序,说一说。小乌龟带着礼物去看爷爷,仔细观察,正确的顺序应该是什么呢?(这是排序题哦~把图片下面的数字按照合理的顺序排起来,宝贝们,要说说为什么这么排哦~)& && &.......【完整版试题,请登陆论坛后下载附件。】&&(394.04 KB, 下载次数: 280) 10:21 上传点击文件名下载附件下载积分: 金币 -1 &&& &精彩推荐: & && && && && && && && && && && && && & & && && && && && && && && && && && && & & && && && && && &
用户等级:小学六年级
注册时间:
在线时长:377 小时
<em id="authorposton13-10-11 08:06
毛毛老師 发表于
17:37 悦悦很聪明哈,答案正确!如果能将思路记录下来就更好啦,加油哈,晚上还会继续更新第二题 ...悦悦说了解题过程,可惜妈妈太懒了,没打上去,下次一定要把解题过程写出来
非常棒,期待下次见到悦悦的解题过程哈
用户等级:小学六年级
注册时间:
在线时长:377 小时
<em id="authorposton13-10-11 08:10
毛毛老師 发表于
20:23 第二题以 逻辑推理 为主,宝贝儿,发挥你的想象吧~2、【观察力+逻辑推理+表达+常识】排排顺序,说一说 ...昨天晚上没看到这题,这一题今天要等到幼儿园放学才能做呢
这样不仅可以养成每天做题的好习惯,还可以更大程度的提升孩子自身的能力。当然,这里离不开您对孩子的良苦用心啊,大家都是希望孩子们好,让我们一起朝着这个目标奋斗吧
用户等级:高中一年级
注册时间:
在线时长:477 小时
金币:13305
<em id="authorposton13-10-11 09:06
gassie 发表于
08:06 悦悦说了解题过程,可惜妈妈太懒了,没打上去,下次一定要把解题过程写出来 ...非常棒,期待下次见到悦悦的解题过程哈
浏览过的版块 推荐应用
Powered by第七大题的a第四小题&
舌尖;大脑酸味感应区
能感觉到酸味,不能分泌唾液
为您推荐:
其他类似问题
扫描下载二维码14339人阅读
已经是第二次参加蓝翔杯了,又是凌晨四点半天还没亮就要屁颠屁颠的起来。然后坐着学校大巴车来到成都理工。到了学校提前了2个小时啊。。。瞌睡来忙了没地方睡。和一帮兄弟带着三个大一的绕着理工逛了一圈,说实话,学校风景真不乍地。回到考场基本就要到比赛时间了。好了不多说了开始看题吧。
有一堆煤球,堆成三角棱锥形。具体:
第一层放1个,
第二层3个(排列成三角形),
第三层6个(排列成三角形),
第四层10个(排列成三角形),
如果一共有100层,共有多少个煤球?
请填表示煤球总数目的数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
这道题坑死了,第一次看堆成三角棱锥形,草稿本画半天都没画出个三角棱锥。后来单独看每句话才知道每层一个三角形叠起来就是三角棱锥。我去。
看懂题目这个题目就很简单了,每层的个数是上层的个数加上层数,意思就是An = An-1 &#43; n,然而题目是求的前100层一共多少煤球。所以是Sn.代码双重for循环就出来了。答案是:171700
#include&stdio.h&
int main()
int a[101] ={0};
for(int i = 1 ; i & 101 ; i ++)
a[i] = a[i-1] +
int ans = 0;
for(int j = 1 ; j & 101 ; j ++)
ans += a[j];
printf(&%d\n&,ans);
某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。
现在算起来,他一共吹熄了236根蜡烛。
请问,他从多少岁开始过生日party的?
请填写他开始过生日party的年龄数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
呵呵,水题,但是出题人不严谨啊!!!怎么就不能考虑万一他今年236岁呢....好了不说了强迫症犯了。
蓝桥杯这种不像acm的题目的,能暴力直接暴力。不用想太多。直接从1~236 枚举 start, end 分别表示他开始过生日的年龄和今年的年龄,然后计算之间吹蜡烛的总和如果等于236就输出start ,end. &答案是:26
#include&stdio.h&
int main()
int start,
for(start = 1 ; start & 236 ; start ++)
for( end = end & 236 ; end ++ )
int sum = 0;
for(int i = i &= i ++)
if( sum == 236)
printf(&start : %d end : %d\n&,start,end);
& & & &B & & &DEF
A &#43; — &#43; -——— = 10
& & & &C & & & GHI
(如果显示有问题,可以参见【图1.jpg】)
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
6&#43;8/3&#43;952/714 就是一种解法,
5&#43;3/1&#43;972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
这个题不多说了,直接暴力生成9的全排列然后去验证等式是否成立,只是验证的时候如果防止精度问题可以通分把除法变成乘法。
答案是:29
#include&stdio.h&
int ans = 0;
int num[10];
bool visit[10];
void Solve()
double sum = num[0] + (double)num[1] / num[2] + (double)(num[3]*100+num[4]*10+num[5])/(num[6]*100+num[7]*10+num[8]);
if(sum == 10)
void dfs(int index)
if(index == 9)
for(int i = 1 ; i & 10 ; i ++)
if(!visit[i])
visit[i] =
num[index] =
dfs(index+1);
visit[i] =
int main()
printf(&%d\n&,ans);
排序在各种场合经常被用到。
快速排序是十分常用的高效率的算法。
其思想是:先选一个“标尺”,
用它把整个队列过一遍筛子,
以保证:其左边的元素都不大于它,其右边的元素都不小于它。
这样,排序问题就被分割为两个子区间。
再分别对子区间排序就可以了。
下面的代码是一种实现,请分析并填写划线部分缺少的代码。
#include &stdio.h&
void swap(int a[], int i, int j)
int t = a[i];
a[i] = a[j];
int partition(int a[], int p, int r)
int j = r &#43; 1;
int x = a[p];
while(i&r && a[&#43;&#43;i]&x);
while(a[--j]&x);
swap(a,i,j);
______________________;
void quicksort(int a[], int p, int r)
int q = partition(a,p,r);
quicksort(a,p,q-1);
quicksort(a,q&#43;1,r);
int main()
int a[] = {5,13,6,24,2,8,19,27,6,12,1,17};
int N = 12;
quicksort(a, 0, N-1);
for(i=0; i&N; i&#43;&#43;) printf(&%d &, a[i]);
printf(&\n&);
注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。
这个题目如果接触过快排,了解过快速排序的原理的应该是送分题目,只不过快排单步(就是将一堆数按照某个数作为基准数分成左右两堆)这个实现方式有几种代码表现。在这里答案是swap(a,p,j).
X星球要派出一个5人组成的观察团前往W星。
A国最多可以派出4人。
B国最多可以派出2人。
C国最多可以派出2人。
那么最终派往W星的观察团会有多少种国别的不同组合呢?
下面的程序解决了这个问题。
数组a[] 中既是每个国家可以派出的最多的名额。
程序执行结果为:
(以下省略,总共101行)
#include &stdio.h&
#define N 6
#define M 5
#define BUF 1024
void f(int a[], int k, int m, char b[])
if(k==N){&
if(m==0) printf(&%s\n&,b);
for(i=0; i&=a[k]; i&#43;&#43;){
for(j=0; j&i; j&#43;&#43;) b[M-m&#43;j] = k&#43;'A';
______________________; //填空位置
int main()
int a[N] = {4,2,2,1,1,3};
char b[BUF];
f(a,0,M,b);
仔细阅读代码,填写划线部分缺少的内容。
注意:不要填写任何已有内容或说明性文字。
这个题目是这样的,对于f(int
a[],int k,int m,char b[]).a[] 是每个国家的最多指派人数,k表示当前是哪个国家,m表示还需要派送几个人(可以为负数).b表示已经派送的人的字符串。
所以这个题目在递归中间的的
第一个循环表示从0~a[i]中让i国选择指派人数,内循环只是向b[]记录的过程。
所以答案是f(a,k&#43;1,m-i,b).
& & 因为这里I = j .应该 f(a,k&#43;1,m-j,b)也可以。
方&#26684;填数
如下的10个&#26684;子
(如果显示有问题,也可以参看【图1.jpg】)
填入0~9的数字。要求:连续的两个数字不能相邻。
(左右、上下、对角都算相邻)
一共有多少种可能的填数方案?
请填写表示方案数目的整数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
这个题目题目有点表述不明,不知道0~9 可不可以重复使用。我当时做的时候是当作不可以重复使用来处理的。那么这里我就先当作不可重复使用来讲解。
这里题目还是一样先往里面填数。用生成排列的形式。填写完了之后再判断是否可行。答案是:1580
#include &stdio.h&
#include &math.h&
int flag[3][4]; //表示哪些可以填数
int mpt[3][4]; //填数
bool visit[10];
int ans = 0;
void init()
for(i = 0 ; i & 3 ; i ++)
for(j = 0 ; j & 4 ; j ++)
flag[i][j] = 1;
flag[0][0] = 0;
flag[2][3] = 0;
void Solve()
int dir[8][2] = { 0,1,0,-1,1,0,-1,0,1,1,1,-1,-1,1,-1,-1};
int book =
for(int i = 0 ; i & 3 ; i ++)
for(int j = 0 ; j & 4; j ++)
//判断每个数周围是否满足
if(flag[i][j] == 0)
for( int k = 0 ; k & 8 ; k ++)
x = i + dir[k][0];
y = j + dir[k][1];
if(x & 0 || x &= 3 || y & 0 || y &= 4 || flag[x][y] == 0)
if(abs(mpt[x][y] - mpt[i][j]) == 1)
if(book) ans ++;
void dfs(int index)
x = index / 4;
y = index % 4;
if( x == 3)
if(flag[x][y])
for(int i = 0 ; i & 10 ; i ++)
if(!visit[i])
visit[i] =
mpt[x][y] =
dfs(index+1);
visit[i] =
dfs(index+1);
int main()
printf(&%d\n&,ans);
如【图1.jpg】, 有12张连在一起的12生肖的邮票。
现在你要从中剪下5张来,要求必须是连着的。
(仅仅连接一个角不算相连)
比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合&#26684;的剪取。
请你计算,一共有多少种不同的剪取方法。
请填写表示方案数目的整数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
其实这个题目还是可前面的一样,先生成,再判断是否可行。这里我们可以先用搜索从12个数里面将所有5个数的组合找出来。然后再用深搜判断这五个是否连在一起。答案是:116
#include &stdio.h&
#include &string.h&
int mpt[3][4];
int mpt_visit[3][4];
int num[6];
int have[13];
int visit[13];
int ans = 0;
int Count = 0;
void init()
int k = 1;
for(int i = 0 ; i & 3 ; i ++)
for(int j = 0 ; j & 4 ; j ++)
mpt[i][j] =
int dir[4][2] = {0,1,0,-1,-1,0,1,0};
//判断五个数是否能连在一起
void dfs_find(int x,int y)
for(int i = 0 ; i & 4 ; i++)
tx = x + dir[i][0];
ty = y + dir[i][1];
if(tx & 0 || tx &= 3 || ty & 0 || ty &= 4)
if(have[mpt[tx][ty]] == 0 || mpt_visit[tx][ty])
mpt_visit[tx][ty] = 1;
dfs_find(tx,ty);
void Solve()
memset(have,0,sizeof(have));
memset(mpt_visit,0,sizeof(mpt_visit));
for(i = 1; i & 6 ; i ++) have[num[i]] = 1;
for(i = 0 ; i & 12 ; i ++)
x = i / 4;
y = i % 4;
if(have[mpt[x][y]])
Count = 1;
mpt_visit[x][y] =1;
dfs_find(x,y);
if(Count == 5)
//创建5个数的组合
void dfs_creat(int index)
if(index == 6)
for(int i = num[index-1] + 1; i & 13 ; i ++)
if(!visit[i])
visit[i] =
num[index] =
dfs_creat(index+1);
visit[i] =
int main()
dfs_creat(1);
printf(&%d\n&,ans);
四平方和定理,又称为拉&#26684;朗日定理:
每个正整数都可以表示为至多4个正整数的平方和。
如果把0包括进去,就正好可以表示为4个数的平方和。
5 = 0^2 &#43; 0^2 &#43; 1^2 &#43; 2^2
7 = 1^2 &#43; 1^2 &#43; 1^2 &#43; 2^2
(^符号表示乘方的意思)
对于一个给定的正整数,可能存在多种平方和的表示法。
要求你对4个数排序:
0 &= a &= b &= c &= d
并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法
程序输入为一个正整数N (N&5000000)
要求输出4个非负整数,按从小到大排序,中间用空&#26684;分开
例如,输入:
则程序应该输出:
再例如,输入:
则程序应该输出:
再例如,输入:
则程序应该输出:
1 1 267 838
资源约定:
峰&#20540;内存消耗 & 256M
CPU消耗 & 3000ms
请严&#26684;按要求输出,不要画蛇添足地打印类&#20284;:“请您输入...” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C&#43;&#43; 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include &xxx&, 不能通过工程设置而省略常用头文件。
提交时,注意选择所期望的编译器类型。
这个题目很水也是搜索能做的。但是有点技巧,这里我贡献两个方法给大家参考。
方法一:O(n^3/2).先暴力枚举前三个数然后做减法判断差是否为一个完全平方数即可。当然虽然这个题目是n^3/2看数据貌&#20284;过不了。但是貌&#20284;我找了几组数据都能秒出结果。应该是绝大多数最外层循环都不会太多。
#include &stdio.h&
#include &math.h&
int main()
int flag =
scanf(&%d&,&n);
for(int i = 0 ; i * i &= i ++)
for(int j = 0 ; j * j &= j ++){
for(int k = 0 ; k * k &= k ++)
int temp = n - i*i - j*j - k*k;
double l = sqrt((double) temp);
if(l == (int)l )
printf(&%d %d %d %d\n&,i,j,k,(int)l);
方法二:O(n) 的方法。这个方法是我在比赛的时候用的。先把两个平方数能相加的到的数字球出来然后记录。这样我们第三层循环就可以先判断再循环了。
#include &stdio.h&
#include &math.h&
int mpt[5000010] ={0};
//mpt[i] = 1表示i 能够用两个完全平方数相加而得。
void init()
for(int i = 0 ; i*i &= i ++)
for(int j = 0 ; j*j &= j ++)
if(i*i+j*j &= n) mpt[i*i+j*j] = 1;
int main()
int flag =
scanf(&%d&,&n);
for(int i = 0 ; i * i &= i ++)
for(int j = 0 ; j * j &= j ++){
if(mpt[n - i*i - j*j] == 0)
//如果剩下的差用两个完全平方数不能组合出来就不继续
for(int k = 0 ; k * k &= k ++)
int temp = n - i*i - j*j - k*k;
double l = sqrt((double) temp);
if(l == (int)l )
printf(&%d %d %d %d\n&,i,j,k,(int)l);
有N个瓶子,编号 1 ~ N,放在架子上。
比如有5个瓶子:
要求每次拿起2个瓶子,交换它们的位置。
经过若干次后,使得瓶子的序号为:
对于这么简单的情况,显然,至少需要交换2次就可以复位。
如果瓶子更多呢?你可以通过编程来解决。
输入&#26684;式为两行:
第一行: 一个正整数N(N&10000), 表示瓶子的数目
第二行:N个正整数,用空&#26684;分开,表示瓶子目前的排列情况。
输出数据为一行一个正整数,表示至少交换多少次,才能完成排序。
例如,输入:
程序应该输出:
再例如,输入:
程序应该输出:
资源约定:
峰&#20540;内存消耗 & 256M
CPU消耗 & 1000ms
请严&#26684;按要求输出,不要画蛇添足地打印类&#20284;:“请您输入...” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C&#43;&#43; 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include &xxx&, 不能通过工程设置而省略常用头文件。
提交时,注意选择所期望的编译器类型。
啊啊这个题目最开始没看到最上面的那句话,以为输入的数字是随意的int.还做了离散化处理。后来看到了编号为1~n就觉得自己傻&#36924;了。
这个题目我用的贪心,从左向右如果当前第i个瓶子编号不是i就把编号为i的瓶子换过来。自己yy几发数据貌&#20284;都能过。不清楚是否对。
因为这里的n规模为10000,如果在交换的时候去用for找编号为i的瓶子在哪儿时间复杂度为O(n^2)会超时。
所以这里要用两个数组,一个数组是记录第i个瓶子编号为多少,一个是记录编号为i的瓶子在哪儿。注意我们在交换的时候要把这两个数组都维护!
#include &stdio.h&
#include &math.h&
int arr[10010];
int flag[10010];
int main()
int ans = 0;
scanf(&%d&,&n);
for(i = 1 ; i &= i ++) scanf(&%d&,&arr[i]);
for(i = 1 ; i &= i ++ )flag[arr[i]] =
for(i = 1 ; i &= i ++)
if( i != arr[i] )
int x = arr[i];
arr[i] ^= arr[flag[i]] ^= arr[i] ^= arr[flag[i]];
flag[i] ^= flag[x] ^= flag[i] ^= flag[x];
printf(&%d\n&,ans);
X星球的某个大奖赛设了M级奖励。每个级别的奖金是一个正整数。
并且,相邻的两个级别间的比例是个固定&#20540;。
也就是说:所有级别的奖金数构成了一个等比数列。比如:
16,24,36,54
其等比&#20540;为:3/2
现在,我们随机调查了一些获奖者的奖金数。
请你据此推算可能的最大的等比&#20540;。
输入&#26684;式:
第一行为数字N,表示接下的一行包含N个正整数
第二行N个正整数Xi(Xi&1 000 000 000 000),用空&#26684;分开。每个整数表示调查到的某人的奖金数额
要求输出:
一个形如A/B的分数,要求A、B互质。表示可能的最大比例系数
测试数据保证了输入&#26684;式正确,并且最大比例是存在的。
例如,输入:
程序应该输出:
再例如,输入:
程序应该输出:
再例如,输入:
程序应该输出:
资源约定:
峰&#20540;内存消耗 & 256M
CPU消耗 & 3000ms
请严&#26684;按要求输出,不要画蛇添足地打印类&#20284;:“请您输入...” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C&#43;&#43; 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include &xxx&, 不能通过工程设置而省略常用头文件。
提交时,注意选择所期望的编译器类型。
这个题目刚开始没准备做后来感觉时间蛮充裕的(上次吃了时间的亏这次自己吧时间卡的比较死,一个小时做完了填空题,一个半小时做完了前面两道大题。所以还剩下一个半小时.)想了一会儿感觉这个题可做。自己YY了一下。不保证一定正确,可以当作一个参考!
这个题目意思是相邻两个等级的奖金比例一定是一个相同的分数P(P = A/B, A/B为最简分数).题目告诉了你n个人分别领取了多少奖金。让你算这个P最大为多少。
我是这么处理的,我们先把n个人的奖金从大到小排序。剔除掉相同的(相同的奖金只保留一个)。然后前后做除用分数的形式保留前后两个数的比例。如何用分数表示两个数的最简分数呢。例如 A / B = (A/Gcd(A,B)) / (B/Gcd(A,B))。只要把A,B最大公约数去除掉就可以了。
现在得到了一堆堆分数Fs[i]然后怎么处理呢?我们知道 这些分数一定都满足一个条件就是 &Fs[i] = P^ki &这里的ki是不定的。但是要使得 求得P最大,那么一定是 所有 ki 求 最大公约数 得到k' .结果就是 P*k'. 然而这道题数据太大了,并不容易求出这些分数对应的底数以及各自的指数。那么这个方案就不可取了。所以我们要的到结果并不能先求出k‘.但是我们看我们能不能直接求出P^k'. &这里我们先把分子分母分开处理。因为A/B是最简分数。 P^k' = A^k' / B^k'.
我们先求A^k' .&
不知道大家还记不记得欧几里得游戏。这个游戏是这样的。黑板上有两个不同的正整数n,m。现在两个人轮流在黑板上写一个正整数要求这个正整数必须为黑板上某两个数的差并且没有在黑板上出现过。当某人无法再写下一个数的时候游戏结束。其实最后这个游戏本质就是看黑板上最多能写多少个数。事实上我们知道黑板上能写的数都是最开始两个数的最大公约数的倍数。所以黑板上最小的数也就是m,n的最大公约数。
这里我们来看,假如我们先求A^k1,A^k2 指数对应的最大公约数。我们吧这个两个数做除法。发现为 A^(k1-k2)。发现是不是这个题目就转化为欧几里得游戏的填数游戏了。只不过加法改成了除法。所以当出发找到一个没有出现过的商的时候这些数种最小的就是当前的A^k'.然后依次对剩下的A^ki做相同操作就可以得到最终的A^ki,同样可以得到B^ki.最后输出 A^ki/B^ki即可。
#include &stdio.h&
#include &algorithm&
#include &queue&
#define LL long long
LL arr[110];
fs Fs[110];
bool cmp(LL a,LL b)
return a &
LL Gcd(LL a,LL b)
if( b == 0 )
return Gcd(b,a%b);
LL Get(LL a, LL b)
if( a & b) a ^= b ^= a ^=
if( a == b || a / b == a)
v[0] = a, v[1] =
v[2] = a /
int top = 3,i,j;
team.push(a/b);
while(team.size())
LL now = team.front();
team.pop();
for(i = 0 ; i & i ++)
LL temp = (v[i] & now) ? v[i] / now : now / v[i];
bool find =
for(j = 0 ; j & j ++)
if( v[j] == temp) find =
if(find == true)
team.push(temp);
v[top++] =
LL ans = v[0];
for(i = 0 ; i & i ++)
if(v[i] != 1)
ans = v[i];
for(i = 0 ; i & i ++)
if( v[i] & ans && v[i] != 1) ans = v[i];
int main()
scanf(&%d&,&n);
for(i = 0 ; i & i ++) scanf(&%lld&,&arr[i]);
sort(arr,arr+n,cmp);
int top = 1;
for(i = 1; i & i ++)
if(arr[i] != arr[i-1]) arr[top++] = arr[i];
for(i = 0 ; i & n - 1; i ++)
LL gcd = Gcd(arr[i],arr[i+1]);
Fs[i].up = arr[i] /
Fs[i].down = arr[i+1] /
LL x = Fs[0].
for(i = 0 ; i & n - 1 ; i ++)
x = Get(x,Fs[i].up);
LL y = Fs[0].
for(i = 0 ; i & n - 1; i ++)
y = Get(y,Fs[i].down);
printf(&%lld/%lld\n&,x,y);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:73960次
积分:1738
积分:1738
排名:第15991名
原创:107篇
评论:28条
(1)(12)(9)(2)(2)(2)(12)(1)(1)(11)(1)(15)(1)(13)(25)

我要回帖

更多关于 qc七大手法考试题 的文章

 

随机推荐