第五届蓝桥杯C/C++本科B组(真题试做)(6~8)
来源:互联网 发布:java中电影院售票系统 编辑:程序博客网 时间:2024/06/05 10:04
终于考完……不过挂科的铁定的了。
还是来做题吧。
前面八道题做起来都很简单。
F:
标题:奇怪的分式 上小学的时候,小明经常自己发明新算法。一次,老师出的题目是: 1/4 乘以 8/5 小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (参见图1.png) 老师刚想批评他,转念一想,这个答案凑巧也对啊,真是见鬼! 对于分子、分母都是 1~9 中的一位数的情况,还有哪些算式可以这样计算呢? 请写出所有不同算式的个数(包括题中举例的)。 显然,交换分子分母后,例如:4/1 乘以 5/8 是满足要求的,这算做不同的算式。 但对于分子分母相同的情况,2/2 乘以 3/3 这样的类型太多了,不在计数之列!注意:答案是个整数(考虑对称性,肯定是偶数)。请通过浏览器提交。不要书写多余的内容。
还是暴力就是了。答案是 14 。
#include<cstdio>#include<cstring>#include<string>#include<queue>#include<algorithm>#include<map>#include<stack>#include<iostream>#include<list>#include<set>#include<bitset>#include<vector>#include<cmath>#define INF 0x7fffffff#define eps 1e-8#define LL long long#define PI 3.141592654#define CLR(a,b) memset(a,b,sizeof(a))#define FOR(i,a,b) for(int i=a;i<b;i++)#define FOR_(i,a,b) for(int i=a;i>=b;i--)#define pub push_back#define puf push_front#define pob pop_back#define pof pop_front#define mp make_pair#define ft first#define sd second#define sf scanf#define pf printf#define sz(v) ((int)(v).size())#define all(v) (v).begin(),(v).end()#define acfun std::ios::sync_with_stdio(false)#define SIZE 10000 +1using namespace std;int main(){ int ans=0; FOR(i1,1,10) { FOR(j1,1,10) { if(i1==j1)continue; FOR(i2,1,10) { FOR(j2,1,10) { if(i2==j2)continue; double tmp1,tmp2; tmp1=i1/(j1*1.0)*(i2/(j2*1.0)); tmp2=(i1*10+i2)*1.0/((j1*10+j2)*1.0); //pf("%.2f %.2f\n",tmp1,tmp2); if(abs(tmp1-tmp2)<=eps)ans++; } } } } pf("%d\n",ans);}
G:
标题:六角填数 如图【1.png】所示六角形中,填入1~12的数字。 使得每条直线上的数字之和都相同。 图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?请通过浏览器提交答案,不要填写多余的内容。
用一个数组表示为 a[12] 。
枚举一下就可以了,还是属于暴力。
答案是 10.
全部的12个数字是 1 8 9 2 7 10 12 6 5 4 11 3
bool vis[13];int a[13];bool cheack(){ int tmp=a[1]+a[3]+a[6]+a[8]; if(a[1]+a[4]+a[7]+a[11]!=tmp)return 0; if(a[2]+a[3]+a[4]+a[5]!=tmp)return 0; if(a[8]+a[9]+a[10]+a[11]!=tmp)return 0; if(a[2]+a[6]+a[9]+a[12]!=tmp)return 0; if(a[5]+a[7]+a[10]+a[12]!=tmp)return 0; return 1;}void dfs(int i){ if(i==12) { if(!cheack())return; FOR(i,1,13) pf("%d ",a[i]); } FOR(j,1,13) { if(vis[j])continue; vis[j]=1; a[i]=j; dfs(i+1); vis[j]=0; }}int main(){ a[1]=1,a[2]=8,a[12]=3; CLR(vis,0); vis[1]=1,vis[8]=1,vis[3]=1; dfs(3);}
H:
标题:蚂蚁感冒 长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。 这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。 请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。【数据格式】 第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。 接着的一行是n个用空格分开的整数 Xi (-100 < Xi < 100), Xi的绝对值,表示蚂蚁离开杆子左边端点的距离。正值表示头朝右,负值表示头朝左,数据中不会出现0值,也不会出现两只蚂蚁占用同一位置。其中,第一个数据代表的蚂蚁感冒了。 要求输出1个整数,表示最后感冒蚂蚁的数目。例如,输入:35 -2 8程序应输出:1再例如,输入:5-10 8 -20 12 25程序应输出:3资源约定:峰值内存消耗 < 256MCPU消耗 < 1000ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意: main函数需要返回0注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #include <xxx>, 不能通过工程设置而省略常用头文件。提交时,注意选择所期望的编译器类型。
把两只蚂蚁相撞当成没有碰过就好了。统计一下 前面相反的,如果有就加上后面相同的。
#include<cstdio>#include<cstring>#include<string>#include<queue>#include<algorithm>#include<map>#include<stack>#include<iostream>#include<list>#include<set>#include<bitset>#include<vector>#include<cmath>#define INF 0x7fffffff#define eps 1e-8#define LL long long#define PI 3.141592654#define CLR(a,b) memset(a,b,sizeof(a))#define FOR(i,a,b) for(int i=a;i<b;i++)#define FOR_(i,a,b) for(int i=a;i>=b;i--)#define pub push_back#define puf push_front#define pob pop_back#define pof pop_front#define mp make_pair#define ft first#define sd second#define sf scanf#define pf printf#define sz(v) ((int)(v).size())#define all(v) (v).begin(),(v).end()#define acfun std::ios::sync_with_stdio(false)#define SIZE 10000 +1using namespace std;bool cheack(int a,int b){ if(a>0&&b<0)return 1; if(a<0&&b>0)return 1; return 0;}int main(){ int n,a[51]; while(~sf("%d",&n)) { FOR(i,0,n) sf("%d",&a[i]); int l=0,r=0; int ans=0; FOR(i,0,n) { if(a[0]>0) { if(abs(a[i])>abs(a[0])&&cheack(a[0],a[i])) ans++; if(abs(a[i])<abs(a[0])&&cheack(-a[0],a[i])) ans++; } else { if(abs(a[i])<abs(a[0])&&cheack(a[0],a[i])) ans++; if(abs(a[i])>abs(a[0])&&cheack(-a[0],a[i])) ans++; } } pf("%d\n",ans+1); }}
至于后面两个题。一个应该是记忆化搜索,还有一个应该是求逆序,归并或者数状数组,先放个元旦,有空就做。
0 1
- 第五届蓝桥杯C/C++本科B组(真题试做)(6~8)
- 第五届蓝桥杯C/C++本科B组(真题试做)(1~5)
- 第五届蓝桥杯C/C++本科B组(真题试做)(9~10)
- 2014年第五届蓝桥杯试题(C/C++本科B组)
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第五题:打印图形 (12' )
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第五题:打印图形 (12' )
- 2014届第五届蓝桥杯 C语言本科B组试题
- 第五届蓝桥杯预赛 本科C/C++ B组 蚂蚁感冒
- 2014第五届蓝桥杯C/C++程序设计本科B组决赛
- 第五届蓝桥杯本科c/c++B组预赛-小朋友排队解法(归并排序求逆序数)
- 第五届蓝桥杯大赛个人赛省赛(软件类)真题 C语言B组 1
- 第五届蓝桥杯C/C++本科b组 第九题 地宫取宝
- 2014年第五届蓝桥杯C/C++程序设计本科B组决赛 生物芯片(编程大题)
- 2014年第五届蓝桥杯C/C++程序设计本科B组决赛 Log大侠(编程大题)
- 2014年第五届蓝桥杯C/C++程序设计本科B组决赛 殖民地(编程大题)
- 2014年第五届蓝桥杯C/C++程序设计本科B组决赛 生物芯片(编程大题)
- 2014年第五届蓝桥杯C/C++程序设计本科B组决赛 Log大侠(编程大题)
- 【2014年第五届蓝桥杯C/C++程序设计本科B组决赛 生物芯片(编程大题) 】
- [leetcode 101] Symmetric Tree
- Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
- Linux中什么时候用包名、什么时候用包全名、以及RPM包的安装、升级与卸载
- 取球游戏-题解
- 深入理解JNI
- 第五届蓝桥杯C/C++本科B组(真题试做)(6~8)
- 95横竖屏切换导致Activity生命周期变化对杀毒的影响
- 创建站点和项目文件
- OpenStack Swift 云存储技术详解
- HTML总结
- 深入理解Binder
- POJ1986 Distance Queries【最近公共祖先】【Tarjan-LCA算法】
- Oracle修改用户密码
- Freemarker模板应用