1、逆时针遍历+报数

M*N的矩阵,从(0,0)开始,先从顺时针从最外围走到原点,再从里面一层继续顺时针兜圈,直至走完
//
// ->->->->->->
// | |
// ^ v
// | |
// <-<-<-<-<-<-v
//
每个元素从1开始编号,若编号的个位数为7,十位数为奇数,则被挑选出来,按顺序输出挑选的编号列表


代码:

#include<iostream>
using namespace std;
int main()
{int M, N;cin >> M >> N;int count = 1;int i = 0, j = 0, cycle = 0;while (count < M*N){for (; j < N - cycle - 1; j++){if (count % 10 == 7 && count/10%2 == 1){cout << i << "," << j << endl;}count++;}for (; i < M - cycle - 1; i++){if (count % 10 == 7 && count/10%2 == 1){cout << i << "," << j << endl;}count++;}for (; j > cycle; j--){if (count % 10 == 7 && count/10% 2 == 1){cout << i << "," << j << endl;}count++;}for (; i > cycle+1; i--){if (count % 10 == 7 && count/10 % 2 == 1){cout << i << "," << j << endl;}count++;}cycle++;}return 0;
}

2、合法的二叉树

//2021/8/19华为笔试
//
//给出二叉树每个节点深度,计算符合条件的二叉树有多少种
//
//输入:
//第一行,一个整数N。表示有多少个节点,(1<=N<=1000)
//第二行,N个整数,d1,d2,…,dn。表示每个节点的深度,(0<=di<=N-1)。
//
//输出:
//满足条件的二叉树个数,数目可能很大,需要mod(10^9+7)。
//


#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;const int MOD = pow(10, 9) + 7;int Comb(int n, int k)
{if (k == 0 || k == n)return 1;k = min(k, n - k);long long top = 1;for (int i = n; i > n - k; i--){top *= i;}long long down = 1;for (int i = 1; i <= k; i++){down *= i;}return (top / down) % MOD;
}int main()
{int N;while (cin >> N){vector<int> d(1001);         //存储每个度的数目int count = 0;               //记录最大深度for (int i = 0; i < N; i++){int tmp_d;cin >> tmp_d;count = max(count, tmp_d);d[tmp_d]++;}       if (d[0] != 1)return 0;vector<int > dp(1001);dp[0] = 1;for (int i = 1; i <= count; i++){int max_num = pow(2, i);          //该层理论最多产生的节点数if (d[i] > max_num)return 0;int act_num = 2 * d[i - 1];       //该层实际最多产生的节点数if (d[i] > act_num)return 0;     //Comb为计算组合,即act_num中挑出d[i]个来,有多少组合                               dp[i] = dp[i - 1] * Comb(act_num, d[i]);  dp[i] %= MOD;}cout << dp[count] << endl;}return 0;
}

3、俄罗斯方块

#include<iostream>
#include<vector>
#include<algorithm>
#include<string>using namespace std;int helper(vector<int>& frame, vector<int>& brick)
{int frame_n = frame.size(), brick_n = brick.size();int res = 1000000;for (int i = 0; i < frame_n - brick_n + 1; i++){int max_h = 0, total_max_h;for (int j = 0; j < brick_n; j++)max_h = max(max_h, brick[j] + frame[i + j]);       //重合部分最大高度total_max_h = max_h;int r = 100000;for (int j = 0; j < frame_n; j++){total_max_h = max(total_max_h, frame[j]);      //当前组合的最大高度if (j < i)                                     //r能消除的高度r = min(r, frame[j]);                    else if (j >= (i + brick_n))r = min(r, frame[j]);else{int tmp1 = frame[j], tmp2 = brick[j - i];if (tmp1 + tmp2 == max_h)    //关键点,用于处理下落块被杠在了空中,max_h地方即为frame与brick联通的地方,因此和max_h(frame+brick)比较r = min(r, max_h);else                      //其他地方,有可能是悬空的,因此只能和frame比较r = min(r, tmp1);}}res = min(res, total_max_h - r);}return res;
}int main()
{string s1, s2;cin >> s1 >> s2;vector<int> frame(s1.size()), brick(s2.size());for (int i = 0; i < s1.size(); i++) frame[i] = s1[i] - '0';for (int i = 0; i < s2.size(); i++) brick[i] = s2[i] - '0';cout << helper(frame, brick);return 0;
}

[C/C++]华为8-19笔试题相关推荐

  1. 华为校招java笔试题库_华为校招Java笔试题库,看你会不会做

    1.在java中如果声明一个类为final,表示什么意思? 答:final是最终的意思,final可用于定义变量.方法和类但含义不同,声明为final的类不能被继承. 2.父类的构造方法是否可以被子类 ...

  2. 华为C语言笔试题集合

    ①华为笔试题搜集 1.static有什么用途?(请至少说明两种)     1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变.     2) 在模块内(但在函数体外),一个被声明为 ...

  3. 华为2011上机笔试题2+参考程序

    编程题(共2题,第一题40分,第二题60分,共100分.请上机编写程序,按题目要求提交文件.[详见考试说明] 本试题采用自动测试用例进行评分,测试用例不对考生公开,凡不满足提交要求导致不能运行或用例不 ...

  4. 2014年实习生招聘之华为实习生招聘笔试题(上机完成)—2014/04/02

    作者:Bryant Lei 出处:http://blog.csdn.net/bryantlei 华为(武汉)今年的实习生招聘的第一轮选拔是上机测试,其平台类似于常见的编程网站,即用户提交程序,由系统测 ...

  5. 阿里P8亲自教你!熬夜整理华为最新Java笔试题

    前言 Mysql的锁机制确实非常重要,所以在这里做一个全面的总结整理,便于以后的查阅,也分享给大家. Mysql的锁机制还是有点难理解的,所以这篇文章采用图文结合的方式讲解难点,帮助大家理解,讲解的主 ...

  6. 华为校园招聘笔试题(机考题目)

     01. 第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,  则最小数和最大数都是该数,例如只输入1,则输出为2:另外数组的长度 ...

  7. 华为笔试题 linux c,华为C/C++笔试题 2

    1.static有什么用途?(请至少说明两种)1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变.2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不 ...

  8. 华为C/C++笔试题(附答案,华为面试题系列)

    1.static有什么用途?(请至少说明两种)     1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变.     2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模 ...

  9. Servlet(一,熬夜整理华为最新Java笔试题

    5.再次访问服务器时,客户端请求中就携带着之前保存的Cookie中保存的值,服务器就根据Cookie就能够知道客户端的身份是什么了. 在HttpServletRequest中也可以获取到Cookie的 ...

  10. 华为java 优招面试题_2017华为优招笔试题

    哎,没有接到笔试通知,不知道为啥就错过了. 之后见到题目,前两道编程题.其实都见过类似的题目,有点思路,但是直接快速完整实现出来,水平还是达不到. 这样的题目,也不算难,三道编程题至少AC两道才算可以 ...

最新文章

  1. 常见问题摘要(生活篇)
  2. 《精通Python设计模式》学习之原型模式
  3. #ifndef #define #endif 和#pragma once的区别
  4. nlp中bpe_缓冲池扩展(BPE)–内存中OLTP:内存挑战
  5. activemq之netcore调用
  6. 固定资产分类(仅供参考 2005年),
  7. DB2 SQL执行计划
  8. 【咸鱼教程】虚拟摇杆
  9. 软件工程之软件质量管理(SQA)
  10. Common Digester学习
  11. 2019年安徽省学业水平考试计算机,2019年安徽省初中学业水平考试
  12. 天地波超视距雷达在远洋无人航运中的运用
  13. 十年之痛解读日本房地产泡沫
  14. 支持Apple Music无损音频的耳机型号以及iPhone、iPad
  15. PCB应力应变测试-ICT、FCT治具应力把控标准
  16. 线性代数学习笔记3-4:描述线性变换的空间压缩情况(列空间、秩)
  17. python音频转数组_python音频处理的示例详解
  18. get请求400神坑
  19. 德云社怒怼信息泄露 300元买600多明星证件号
  20. 如何构建一个成功的期权交易系统?

热门文章

  1. 微信分享网页链接自定义图片和文字描述
  2. Excel实战小技巧——批量操作
  3. 41、基于51单片机手机无线充电器系统锂电池存电系统设计
  4. Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported
  5. Twitter Inc.(TWTR)2020年第三季度收益电话会议记录
  6. Android---ADB工具连接真实手机(有线连接与无线连接)
  7. ADB调试关闭荣耀手机的系统更新(烦人的推送)
  8. python itchat实现调用微信接口的第三方模块方法
  9. 局域网聊天软件源代码(包括语音聊天)
  10. **最新2018手机号码正则表达式**