1、题目标题: 猜年龄
美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。
一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:
“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”
请你推算一下,他当时到底有多年轻。
通过浏览器,直接提交他那时的年龄数字。
注意:不要提交解答过程,或其它的说明文字。

能偷懒绝不写代码,打开WINDOWS自带的计算器从11开始试就是了

2、题目标题: 排它平方数
小明正看着 203879 这个数字发呆。
原来,203879 * 203879 = 41566646641
这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。
具有这样特点的6位数还有一个,请你找出它!
再归纳一下筛选要求:
1. 6位正整数
2. 每个数位上的数字不同
3. 其平方数的每个数位不含原数字的任何组成数位
答案是一个6位的正整数。
请通过浏览器提交答案。
注意:只提交另一6位数,题中已经给出的这个不要提交。
注意:不要书写其它的内容(比如:说明性的文字)。

反正暴力就是了,写好程序让机器跑着,过会看结果就是了,也可以先试一下给出的203879是不是能运行出来再继续跑,答案639172

#include<bits/stdc++.h>
using namespace std;
int num[10];
int main()
{int flag;unsigned long long  temp,i;for(i=203880;i<=999999;i++){flag=0;memset(num,0,sizeof(num));cout<<i<<endl;temp=i*i;int t=i;while(t>0){int tt=t%10;t/=10;if(num[tt]==0)num[tt]++;elseflag=1;if(flag)break;}if(flag) continue;while(temp>0){int tt=temp%10;if(num[tt]==1){flag=1;break;}temp/=10;}if(flag)continue;else {cout<<i<<endl;getchar();return 0;} }}

3、标题: 振兴中华
小明参加了学校的趣味运动会,其中的一个项目是:跳格子。
地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg)
从我做起振
我做起振兴
做起振兴中
起振兴中华

比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。
要求跳过的路线刚好构成“从我做起振兴中华”这句话。
请你帮助小明算一算他一共有多少种可能的跳跃路线呢?
答案是一个整数,请通过浏览器直接提交该数字。
注意:不要提交解答过程,或其它辅助说明类的内容。

写成汉字都是迷惑的,把汉字化成数字然后DFS求方案数就可以了,答案35

#include<bits/stdc++.h>
using namespace std;
int Map[4][5]={0,1,2,3,4,1,2,3,4,5,2,3,4,5,6,3,4,5,6,7};
int dir[4][2]={1,0,0,1,};
int vis[4][5];
int ans=0;
void dfs(int x,int y)
{if(x==3&&y==4){ans++;return;}for(int i=0;i<2;i++){int xx=x+dir[i][0];int yy=y+dir[i][1];if(xx<0||yy<0||xx>3||yy>4)continue;if(vis[xx][yy])continue;vis[xx][yy]=1;dfs(xx,yy);vis[xx][yy]=0;}}
int main()
{memset(vis,0,sizeof(vis));vis[0][0]=1;dfs(0,0);cout<<ans<<endl;return 0;
}

4、标题: 幻方填空
幻方是把一些数字填写在方阵中,使得行、列、两条对角线的数字之和都相等。
欧洲最著名的幻方是德国数学家、画家迪勒创作的版画《忧郁》中给出的一个4阶幻方。
他把1,2,3,…16 这16个数字填写在4 x 4的方格中。
如图p1.jpg所示,即:

16 ? ? 13
? ? 11 ?
9 ? ? *
? 15 ? 1
表中有些数字已经显露出来,还有些用?和*代替。
请你计算出? 和 * 所代表的数字。并把 * 所代表的数字作为本题答案提交。

答案是一个整数,请通过浏览器直接提交该数字。
注意:不要提交解答过程,或其它辅助说明类的内容。

这题没有写代码,猜着手写的,想要填出幻方,一定要尽量让一个横行或者竖列或者对角线处于一个平均的大小,
也就是尽可能往34上凑,本着这个原则填就好了,答案是12

5、题目标题:公约数公倍数
我们经常会用到求两个整数的最大公约数和最小公倍数的功能。
下面的程序给出了一种算法。
函数 myfunc 接受两个正整数a,b
经过运算后打印出 它们的最大公约数和最小公倍数。
此时,调用 myfunc(15,20)
将会输出:
5
60

// 交换数值
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}

void myfunc(int a, int b)
{
int m,n,r;
if(a<b) swap(&a,&b);
m=a;n=b;r=a%b;
while(r!=0)
{
a=b;b=r;
r=a%b;
}
printf("%d\n",b); // 最大公约数
printf("%d\n", ____________________________________); // 最小公倍数
}

请分析代码逻辑,并推测划线处的代码,通过网页提交。
注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号或说明文字!!

读懂代码就能写出来,答案是m*n/b

6、标题:逆波兰表达式
正常的表达式称为中缀表达式,运算符在中间,主要是给人阅读的,机器求解并不方便。
例如:3 + 5 * (2 + 6) - 1
而且,常常需要用括号来改变运算次序。
相反,如果使用逆波兰表达式(前缀表达式)表示,上面的算式则表示为:
- + 3 * 5 + 2 6 1
不再需要括号,机器可以用递归的方法很方便地求解。
为了简便,我们假设:

  1. 只有 + - * 三种运算符
  2. 每个运算数都是一个小于10的非负整数

下面的程序对一个逆波兰表示串进行求值。
其返回值为一个结构:其中第一元素表示求值结果,第二个元素表示它已解析的字符数。

struct EV
{
int result; //计算结果
int n; //消耗掉的字符数
};

struct EV evaluate(char* x)
{
struct EV ev = {0,0};
struct EV v1;
struct EV v2;

if(*x==0) return ev;

if(x[0]>=‘0’ && x[0]<=‘9’){
ev.result = x[0]-‘0’;
ev.n = 1;
return ev;
}

v1 = evaluate(x+1);
v2 = _____________________________; //填空位置

if(x[0]’+’) ev.result = v1.result + v2.result;
if(x[0]’*’) ev.result = v1.result * v2.result;
if(x[0]==’-’) ev.result = v1.result - v2.result;
ev.n = 1+v1.n+v2.n;

return ev;
}

请分析代码逻辑,并推测划线处的代码,通过网页提交。
注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号或说明文字!!

读代码可以看出来,代码的意思是说递归到读到数字为止,这时记录占用的字符数,再找下一个数
也就是说V1就是找到的第一个数,第二个数要在V1后继续寻找,那么就容易知道答案为evaluate(x+v1.n+1)

7、标题:核桃的数量

小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:

  1. 各组的核桃数量必须相同
  2. 各组内必须能平分核桃(当然是不能打碎的)
  3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)

程序从标准输入读入:
a b c
a,b,c都是正整数,表示每个组正在加班的人数,用空格分开(a,b,c<30)

程序输出:
一个正整数,表示每袋核桃的数量。

例如:
用户输入:
2 4 5

程序输出:
20

再例如:
用户输入:
3 1 1

程序输出:
3

资源约定:
峰值内存消耗(含虚拟机) < 64M
CPU消耗 < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include , 不能通过工程设置而省略常用头文件。

提交时,注意选择所期望的编译器类型。

看着麻烦,就是找输入的三个数的最小公倍数,直接把上个填空题的代码改动一下就好了

#include<bits/stdc++.h>
using namespace std;
void swap(int *a,int *b)
{int temp;temp=*a;*a=*b;*b=temp;
}void myfunc(int a, int b,int c)
{int m,n,r;  if(a<b) swap(&a,&b);m=a;n=b;r=a%b;while(r!=0){a=b;b=r;r=a%b;}int d=m*n/b;if(d<c) swap(&d,&c);m=d;n=c;r=d%c;while(r!=0){d=c;c=r;r=d%c;} printf("%d\n", m*n/c);
}
int main()
{int a,b,c;cin>>a>>b>>c;myfunc(a,b,c);
}

8、题目标题:打印十字图

小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示(可参见p1.jpg)$$$$$$$$$$$$$$           $$$$ $$$$$$$$$ $$$$   $       $   $$ $$$ $$$$$ $$$ $$ $   $   $   $ $$ $ $$$ $ $$$ $ $$ $ $   $   $ $ $$ $ $ $$$$$ $ $ $$ $ $   $   $ $ $$ $ $$$ $ $$$ $ $$ $   $   $   $ $$ $$$ $$$$$ $$$ $$   $       $   $$$$ $$$$$$$$$ $$$$           $$$$$$$$$$$$$$对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。为了能准确比对空白的数量,程序要求对行中的空白以句点(.)代替。

输入格式:
一个正整数 n (n<30) 表示要求打印图形的层数

输出:
对应包围层数的该标志。

例如:
用户输入:
1
程序应该输出:

..$$$$$..
..$...$..
$$$.$.$$$
$...$...$
$.$$$$$.$
$...$...$
$$$.$.$$$
..$...$..
..$$$$$..

再例如:
用户输入:
3
程序应该输出:

..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..

请仔细观察样例,尤其要注意句点的数量和输出位置。

资源约定:
峰值内存消耗 < 64M
CPU消耗 < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include , 不能通过工程设置而省略常用头文件。

提交时,注意选择所期望的编译器类型。

想打死出题人系列,不难,就是单纯的麻烦,考这种题有什么意思

#include<bits/stdc++.h>
using namespace std;
int main()
{int n;scanf("%d",&n);char Map[5+4*n][5+4*n];for(int i=0;i<5+4*n;i++)for(int j=0;j<5+4*n;j++)Map[i][j]='.';//画框for(int i=0;i<n;i++){for(int j=2*(n-i-1)+2;j<=2*(n-i+1)+2+4*i;j++){Map[2*(n-i)-2][j]='$';   Map[2*(n-i)+2+4*(i+1)][j]='$';Map[j][2*(n-i)-2]='$';Map[j][2*(n-i)+2+4*(i+1)]='$';Map[2*(n-i)][2*(n-i)]='$';Map[2*(n-i)-1][2*(n-i)]='$';Map[2*(n-i)][2*(n-i)-1]='$';Map[2*(n+i+1)+2][2*(n+i+1)+2]='$';Map[2*(n+i+1)+3][2*(n+i+1)+2]='$';Map[2*(n+i+1)+2][2*(n+i+1)+3]='$';Map[2*(n-i)][2*(n+i+1)+2]='$';Map[2*(n-i)-1][2*(n+i+1)+2]='$';Map[2*(n-i)][2*(n+i+1)+3]='$';Map[2*(n+i+1)+2][2*(n-i)]='$';Map[2*(n+i+1)+3][2*(n-i)]='$';Map[2*(n+i+1)+2][2*(n-i)-1]='$';}   }      //划十字       for(int i=2*n;i<2*n+5;i++)Map[2*n+2][i]='$';for(int i=2*n;i<2*n+5;i++)Map[i][2*n+2]='$';//输出 for(int i=0;i<5+4*n;i++){for(int j=0;j<5+4*n;j++)printf("%c",Map[i][j]); printf("\n");}return 0;
}

9、标题:剪格子

如图p1.jpg所示,3 x 3 的格子中填写了一些整数。

我们沿着图中的红色线剪开,得到两个部分,每个部分的数字和都是60。

本题的要求就是请你编程判定:对给定的m x n 的格子中的整数,是否可以分割为两个部分,使得这两个区域的数字和相等。
如果存在多种解答,请输出包含左上角格子的那个区域包含的格子的最小数目。
如果无法分割,则输出 0

程序输入输出格式要求:

程序先读入两个整数 m n 用空格分割 (m,n<10)
表示表格的宽度和高度
接下来是n行,每行m个正整数,用空格分开。每个整数不大于10000
程序输出:在所有解中,包含左上角的分割区可能包含的最小的格子数目。

例如:
用户输入:
3 3
10 1 52
20 30 1
1 2 3

则程序输出:
3

再例如:
用户输入:
4 3
1 1 1 1
1 30 80 2
1 1 1 100

则程序输出:
10

(参见p2.jpg)


资源约定:
峰值内存消耗 < 64M
CPU消耗 < 5000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include , 不能通过工程设置而省略常用头文件。

提交时,注意选择所期望的编译器类型。

一道DFS,需要注意的是如果方案不为一时要选择左上角的那个,这种情况需要在DFS的递归终点处做一下修改,如果方案数不唯一了,就优先选择左上角走过的,就是VIS[0][0]=1的那个

#include<stdio.h>
#include<iostream>
#include<memory.h>
using namespace std;
int Map[15][15];
int vis[15][15];
int m,n,flag=0;
long long int cnt1=0,cnt2=0;
int ans=0,A=9999999;
int dir[4][2]={1,0,-1,0,0,1,0,-1};
void dfs(int x,int y)
{if(cnt1==cnt2){if(ans<A&&flag==0)A=ans,flag=1;if(flag==1&&ans<A){if(vis[0][0])A=ans;}}for(int i=0;i<4;i++){int tx=x+dir[i][0];int ty=y+dir[i][1];if(tx<0||ty<0||tx>=m||ty>=n)continue;if(vis[tx][ty])continue;vis[tx][ty]=1;cnt1-=Map[tx][ty];cnt2+=Map[tx][ty];ans++;dfs(tx,ty);ans--;cnt1+=Map[tx][ty];cnt2-=Map[tx][ty];vis[tx][ty]=0;}
}
int main()
{cin>>n>>m;for(int i=0;i<m;i++)for(int j=0;j<n;j++)cin>>Map[i][j],cnt1+=Map[i][j];for(int i=0;i<m;i++){for(int j=0;j<n;j++){vis[i][j]=1;cnt2=Map[i][j];cnt1-=Map[i][j];ans++;dfs(i,j);ans--;vis[i][j]=0;cnt1+=Map[i][j];}}cout<<A<<endl;return 0;
}

10、还有一道不会的,先挂上,像极了牛客网寒假算法训练营2里的一道题

标题:买不到的数目

小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。

小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。

你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。

本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。
输入:
两个正整数,表示每种包装中糖的颗数(都不多于1000)

要求输出:
一个正整数,表示最大不能买到的糖数

例如:
用户输入:
4 7
程序应该输出:
17

再例如:
用户输入:
3 5
程序应该输出:
7

资源约定:
峰值内存消耗 < 64M
CPU消耗 < 3000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include , 不能通过工程设置而省略常用头文件。

提交时,注意选择所期望的编译器类型。

蓝桥杯2013年省赛C/C++大学组 C/C++相关推荐

  1. 蓝桥杯2013年国赛A组——网络寻路(DFS和中转边巧解)

    蓝桥杯2013年国赛A组--网络寻路 1.题目描述 2.输入输出 3.样例输入和输出 4.题目分析 1.首先明确,题目中的目的地有两种,一种是回到原点,一种是到达没有到达的地方 2.在路径中经过的点不 ...

  2. 2022年第十三届蓝桥杯大赛软件省赛Java学B组试题

    第十三届蓝桥杯大赛软件省赛Java学B组试题 一.试题截图 1. 星期计算 这道题是可以直接用笔算起来的,我算出来的答案是5,(2022整除7 余6,六天后就是星期五)但目前官方答案还不知道是什么? ...

  3. 砝码称重【第十二届蓝桥杯】【省赛】【B组】

    砝码称重[第十二届蓝桥杯][省赛][B组] Description 你有一架天平和N个砝码,这N个砝码重量依次是W1.W2,-WN 请你计算一共可以称出多少种不同的重量? 注意砝码可以放在天平两边. ...

  4. 第十四届蓝桥杯第三期模拟赛 C/C++ B组 原题与详解

    本篇文章对第十四届蓝桥杯第三期模拟赛所有的题目进行了详细解析.如果大家还想刷题的话,我给大家整理出了第十二届的省赛真题:第十二届省赛C/C++ B组真题.推荐大家可以去做一下. 文章目录 一.填空题 ...

  5. 使用JavaScript解答2018第九届蓝桥杯C/C++省赛A组试题

    大三时参加过第七届蓝桥杯个人赛及团队赛,转眼已经两年,最近看了看第九届蓝桥杯试题,打算用JavaScript实现一下. 题目1 标题:分数 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + ...

  6. 2013蓝桥杯java试题_蓝桥杯2013决赛java本科b组试题.doc

    蓝桥杯2013决赛java本科b组试题.doc 试题一:公式求值问题描述输入n,m,k,输出下面公式的值.其中C_n^m是组合数,表示在n个人的集合中选出m个人组成一个集合的方案数.组合数的计算公式如 ...

  7. 蓝桥杯2020山西省省赛太原理工大获丰收

    2020年10月18日,太原理工大学在明向校区软件学院实验室举行了蓝桥杯软件类A组的山西省省赛(分赛场比赛).太原理工学子共获得"C/C++程序设计大学A组"一等奖32枚(一等奖共 ...

  8. 历届蓝桥杯Scratch编程国赛 初级 中级 青少年编程比赛国赛真题解析【持续更新 已更新至27题】

    历届蓝桥杯国赛真题 第十三界.十二届.十一届等历届青少年蓝桥杯Scratch编程比赛国赛真题解析 国赛真题01-河马带球[试看] [蓝桥杯国赛真题01]Scratch河马带球 少儿编程蓝桥杯Scrat ...

  9. 2020第十一届蓝桥杯7月份省赛真题(JavaB组题解)

    2020第十一届蓝桥杯7月份省赛真题(JavaB组题解) 试题 A: 解密 试题 B: 纪念日 试题 C: 合并检测 试题 D: 分配口罩 试题 E: 斐波那契数列最大公约数 试题 F: 分类计数 试 ...

最新文章

  1. 电机测试matlab,基于MATLAB的电机故障诊断模型训练与测试平台
  2. java上传图片报404_ssm框架上传图片成功后跳转jsp页面显示却404访问不到图片
  3. php上个月的最后一天,在PHP中查找上个月的最后一天
  4. java 动态字符串_Java动态编译执行一串字符串,类似于Javascript里的eval函数
  5. Hadoop之内存问题
  6. 二叉树中是否存在节点和为指定值的路径
  7. 用资源管理器右键编译 Visual Studio 解决方案文件
  8. 科大讯飞2019机械核心部件寿命预测,亚军方案
  9. CCNA学习指南第十章
  10. 浅谈I2S协议、PDM麦克风
  11. 《 PHP+H5全栈工程师培训项目实战》
  12. linux mint19内核,aria2的Linux Mint 19安装过程完整总结
  13. 图文详解 | 万用表的使用与口诀!十足干货,不要错过!
  14. Discuznbsp;bbsnbsp;表结构字段含义详细分…
  15. 写给当初的你,现在的我
  16. 喜 欢 和 爱 的 区 别(转)
  17. vue百度地图api 获取小区边界值
  18. 2021-2027全球与中国单级压缩机控制器市场现状及未来发展趋势
  19. 基于matlab数据线性拟合回归
  20. 神经网络滤镜安装教程图,ps神经网络滤镜安装包

热门文章

  1. html 5实用特性之data属性
  2. cocos2dx-lua 批量打包及修改
  3. 【KPC】关于为什么不用Zepto而用JQuery
  4. vi 命令 使用方法
  5. Enterprise Library 中加密数据库连接字符串
  6. VS工程,换电脑后出现的问题
  7. jsp页面从session获取当前用户信息控制页面按钮是否显示
  8. 一款可以安利的MarkDown编辑器
  9. JavaScript判断数组是否有重复值
  10. 做个犀利的码农:如何持续培养/更新自己的开发技能