标题:积分之迷

小明开了个网上商店,卖风铃。共有3个品牌:A,B,C。
为了促销,每件商品都会返固定的积分。

小明开业第一天收到了三笔订单:
第一笔:3个A + 7个B + 1个C,共返积分:315
第二笔:4个A + 10个B + 1个C,共返积分:420
第三笔:A + B + C,共返积分....

你能算出第三笔订单需要返积分多少吗?

请提交该整数,不要填写任何多余的内容。

105

标题:完美正方形

如果一些边长互不相同的正方形,可以恰好拼出一个更大的正方形,则称其为完美正方形。

历史上,人们花了很久才找到了若干完美正方形。比如:如下边长的22个正方形
2 3 4 6 7 8 12 13 14 15 16 17 18 21 22 23 24 26 27 28 50 60
如【图1.png】那样组合,就是一种解法。此时,
紧贴上边沿的是:60 50
紧贴下边沿的是:26 28 17 21 18

22阶完美正方形一共有8种。下面的组合是另一种:
2 5 9 11 16 17 19 21 22 24 26 30 31 33 35 36 41 46 47 50 52 61
如果告诉你该方案紧贴着上边沿的是从左到右依次为:47 46 61,
你能计算出紧贴着下边沿的是哪几个正方形吗?

请提交紧贴着下边沿的正方形的边长,从左到右,用空格分开。

不要填写任何多余的内容或说明文字。

代码:

#include<bits/stdc++.h>
using namespace std;
int maze[160][160];
int a[19]= {2,5,9,11,16,17,19,21,22,24,26,30,31,33,35,36,41,50,52};
int book[25];
void init()
{for(int i =1;i<=47;i++)for(int j = 1;j<= 47;j++)maze[i][j] = 47;for(int i =1;i<=46;i++)for(int j = 48;j<=47+46;j++)maze[i][j] = 46;for(int i = 1;i<=61;i++)for(int j = 46+47+1;j<=46+47+61;j++)maze[i][j] = 61;
}//初始化这个矩阵上面的表示已经被填充了
bool check(int x,int y,int k)
{for(int i=x;i<=x+k-1;i++)for(int j = y;j<=y+k-1;j++)if(maze[i][j]!=0)return false;return true;
}//判断下这些地方是否都是0 这样子才能用
void output()
{for(int i =1;i<=154;i++){for(int j = 1;j<=154;j++)printf("%2d ",maze[i][j]);putchar('\n');}
}//输出
void DFS(int x,int y)
{if(x>154){output();return;}if(maze[x][y]!=0){if(y==154)DFS(x+1,1);else DFS(x,y+1);}else //这个地方没有东西,可以填充东西 {for(int i = 0;i<19;i++){if(book[i]==1)continue;//这个正方形已经被使用过了if(x+a[i]-1>154||y+a[i]-1>154||check(x,y,a[i])==false)continue; for(int k = x;k<x+a[i];k++){for(int l = y;l<y+a[i];l++)maze[k][l] =a[i];}  book[i] = 1;if(y==154)DFS(x+1,1);else DFS(x,y+1);book[i] = 0; for(int k = x;k<x+a[i];k++){for(int l = y;l<y+a[i];l++)maze[k][l] = 0;}  }}return ;
}
int main()
{freopen("C:\\Users\\DELL\\Desktop\\b.txt","w",stdout); init();DFS(47,48);return 0;
}

标题:关联账户

为增大反腐力度,某地警方专门支队,对若干银行账户展开调查。

如果两个账户间发生过转账,则认为有关联。如果a,b间有关联, b,c间有关联,则认为a,c间也有关联。

对于调查范围内的n个账户(编号0到n-1),警方已知道m条因转账引起的直接关联。

现在希望知道任意给定的两个账户,求出它们间是否有关联。有关联的输出1,没有关联输出0

小明给出了如下的解决方案:

#include <stdio.h>
#define N 100

int connected(int* m, int p, int q)
{
    return m[p]==m[q]? 1 : 0;
}

void link(int* m, int p, int q)
{
    int i;
    if(connected(m,p,q)) return;
    int pID = m[p];
    int qID = m[q];
    for(i=0; i<N; i++) _____________________________________;  //填空位置
}

int main()
{
    int m[N];
    int i;
    for(i=0; i<N; i++) m[i] = i; //初始状态,每个节点自成一个连通域
    link(m,0,1); //添加两个账户间的转账关联
    link(m,1,2);
    link(m,3,4);
    link(m,5,6);
    link(m,6,7);
    link(m,8,9);
    link(m,3,7);
    
    printf("%d ", connected(m,4,7));
    printf("%d ", connected(m,4,5));
    printf("%d ", connected(m,7,9));
    printf("%d ", connected(m,9,2));
    return 0;
}

请分析源代码,并提交划线部分缺少的代码。不要填写已有代码或任何多余内容。

if(m[i]==pID)m[i]=qID

标题:密文搜索

福尔摩斯从X星收到一份资料,全部是小写字母组成。
他的助手提供了另一份资料:许多长度为8的密码列表。
福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的。

请你编写一个程序,从第一份资料中搜索可能隐藏密码的位置。要考虑密码的所有排列可能性。

数据格式:

输入第一行:一个字符串s,全部由小写字母组成,长度小于1024*1024
紧接着一行是一个整数n,表示以下有n行密码,1<=n<=1000
紧接着是n行字符串,都是小写字母组成,长度都为8

要求输出:
一个整数, 表示每行密码的所有排列在s中匹配次数的总和。

例如:
用户输入:
aaaabbbbaabbcccc
2
aaaabbbb
abcabccc

则程序应该输出:
4

这是因为:第一个密码匹配了3次,第二个密码匹配了1次,一共4次。

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

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

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

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

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

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1024*1024+10;
char str[maxn];
struct node
{char ch;int cnt;
}gg[15];
map<char,int>hh;
map<string,int>mp;
bool cmp(node a,node b){return a.ch<b.ch;//从小到大的字符
}
int main()
{scanf("%s",str+1);int len = strlen(str+1);int n; scanf("%d",&n);char xixi[10];if(len<8){printf("0\n");return 0;}int now=0;for(int i=1;i<=8;i++)hh[str[i]]++;map<char ,int >::iterator it=hh.begin();while(it!=hh.end()){gg[++now].ch=it->first;gg[now].cnt=it->second;it++;}sort(gg+1,gg+1+now,cmp);string a;for(int i=1;i<=now;i++){a+=gg[i].ch;a+=(gg[i].cnt+'0');}   //ok  初始条件已经完成 mp[a]++; for(int i=2;i<=len;i++){ if(i+7<=len){hh[str[i-1]]--;hh[str[i+7]]++;    int now=0;map<char,int >::iterator iter=hh.begin();while(iter!=hh.end()){gg[++now].ch=iter->first;gg[now].cnt=iter->second;iter++;    }sort(gg+1,gg+1+now,cmp);string b;for(int j=1;j<=now;j++){if(gg[j].cnt==0) continue;b+=gg[j].ch;b+=(gg[j].cnt+'0');} mp[b]++;}else break;  }ll sum=0;map<char,int>kk;for(int i=1;i<=n;i++){kk.clear();int now=0;scanf("%s",xixi);for(int j=0;j<8;j++)kk[xixi[j]]++;map<char,int >::iterator iter=kk.begin();while(iter!=kk.end()){gg[++now].ch=iter->first;gg[now].cnt=iter->second;iter++;   }sort(gg+1,gg+1+now,cmp);string b;for(int j=1;j<=now;j++){if(gg[j].cnt==0) continue;b+=gg[j].ch;b+=(gg[j].cnt+'0');}sum=sum+mp[b];}cout<<sum<<endl;return 0;
}

2015年第六届(C/C++)B组蓝桥国赛题相关推荐

  1. 小唐开始刷蓝桥(六)2015年第六届C/C++ B组蓝桥杯省赛真题

    文章目录 前言 一.奖券数目 二.星系炸弹 三.三羊献瑞 四.格子中输出 五.九数组分数 六.加法变乘法 七.牌型种数 八.移动距离 九.垒骰子 十.生命之树 上一篇: 小唐开始刷蓝桥(五)2016年 ...

  2. 蓝桥杯2015年第六届C/C++ B组省赛习题题解

    目录 第一题:奖券数目 第二题:星系炸弹(日期计算) 第三题:三羊献瑞(全排列) 第四题:格子中输出 第五题:九数组分数(dfs) 第六题:加法变乘法(枚举) 第七题:牌型种数(dfs+dp) 第八题 ...

  3. 征战蓝桥 —— 2015年第六届 —— C/C++A组第10题——灾后重建

    题目 Pear市一共有N(<=50000)个居民点,居民点之间有M(<=200000)条双向道路相连.这些居民点两两之间都可以通过双向道路到达. 这种情况一直持续到最近,一次严重的地震毁坏 ...

  4. 征战蓝桥 —— 2015年第六届 —— C/C++A组第5题——九数组分数

    九数组分数 1,2,3-9 这九个数字组成一个分数,其值恰好为1/3,如何组法? 下面的程序实现了该功能,请填写划线部分缺失的代码. #include <stdio.h>void test ...

  5. 征战蓝桥 —— 2015年第六届 —— C/C++A组第4题——格子中输出

    格子中输出 StringInGrid函数会在一个指定大小的格子中打印指定的字符串. 要求字符串在水平.垂直两个方向上都居中. 如果字符串太长,就截断. 如果不能恰好居中,可以稍稍偏左或者偏上一点. 下 ...

  6. 第六届中国软件开源创新大赛——飞桨赛题新鲜出炉,速来pick!

    最近想要充个电

  7. 小唐开始刷蓝桥(五)2016年第七届C/C++ B组蓝桥杯省赛真题

    文章目录 前言 一.煤球数目 二.生日蜡烛 三.凑算式 四.快速排序 五.抽签 六.方格填数 七.剪邮票 八.四平方和 九.交换瓶子 十.最大比例 上一篇: 小唐开始刷蓝桥(四)2017年第八届C/C ...

  8. 2015年第六届蓝桥杯C/C++B组省赛题目解析

    1.奖券数目 有些人很迷信数字,比如带"4"的数字,认为和"死"谐音,就觉得不吉利. 虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求.某抽奖活动的奖券号码是 ...

  9. 问题 1825: [蓝桥杯][2015年第六届真题]穿越雷区

    问题 1825: [蓝桥杯][2015年第六届真题]穿越雷区 时间限制: 1Sec 内存限制: 128MB 提交: 310 解决: 211 题目描述 X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区 ...

  10. 第十五届全国大学生智能汽车竞赛中小学生赛题组获奖队伍信息

    第十五届全国大学生智能汽车竞赛 中小学生赛题组获奖信息 序号 学校 队伍 组别 奖项 姓名 类别 1 青岛创新学校 - 高中 一等奖 孙彬航 参赛学生 2 国科大(青岛)附属学校 - 高中 一等奖 侯 ...

最新文章

  1. eclipse--各类型版本包含插件比较
  2. openfiler 搭建虚拟存储 并 配置服务端 (转载)
  3. 认房又认贷 政策的真正意图——限购令如果没有同时增加土地供应,只是在变相加剧未来房价的上涨...
  4. 数据结构--二叉树、满二叉树、完全二叉树
  5. 虽然有索引,但没有用上
  6. 数据结构(一)线性表链式存储实现
  7. Unity Application Block 3月12 发布的版本
  8. DIV+CSS布局总结
  9. *第八周*数据结构实践项目二【建设链串算法库】
  10. Windows虚拟机忘记操作系统密码
  11. linux shc shell脚本_用shc加密shell脚本
  12. 豆瓣电影详情数据爬取
  13. android xcl charts,我写的Android图表库XCL-Charts,整理好现在开源了!!!
  14. no matching function for call to ‘cv2eigen‘
  15. 线下广告投放方案_线下推广方案
  16. 调用微信接口上传图片总结
  17. Open vSwitch(OVS)相关问题
  18. 向量的加减(输出重载)
  19. 七段数码管26字母对照表(附带映射表以及映射数组)
  20. Java中的强制类型转换

热门文章

  1. PHP程序的常见漏洞攻击分析
  2. hadoop之MapReducer作业的提交执行过程
  3. [转] Windows Server 2012 Beta (Hyper-V 3.0) VM Replica與Live Migration Winout Shared Storage
  4. Spring 读取配置文件中的配置
  5. js中的this详解
  6. ubuntu下iptables的用法
  7. JEECG支付服务窗平台与服务窗接口对接文档
  8. android中页面跳转以及数据在Activity之间的传递
  9. 大型门户网站架构分析[转]
  10. Java创建Zip文件示例