首先发三个题目,其链接如下:

http://hihocoder.com/contest/mstest2015dec3/problems

解析:

第一个题目是暴力,简单的枚举就可以解决,代码如下所示:

#include <stdlib.h>
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;char Map[300][300];
int Row, Col;
char Sen[3][3];
vector<pair<int, int> > result;bool Handle();
bool Check(int i, int j);
void Rotate();
int main(){while(Handle()){//empty while}
}bool CMP(const pair<int, int>& lhs, const pair<int, int>& rhs);bool Handle(){if(!(cin>>Row>>Col)){return false;}result.clear();for(int i= 0; i< Row; ++i){for(int j= 0; j< Col; ++j){cin>>Map[i][j];}}for(int i= 0; i< 3; ++i){for(int j= 0; j< 3; ++j){cin>>Sen[i][j];}}for(int l= 0; l< 4; ++l){for(int i= 1; i< Row-1; ++i){for(int j= 1; j< Col-1; ++j){if(Check(i,j)){result.push_back(make_pair(i+1,j+1));}}}Rotate();}sort(result.begin(),result.end());result.erase(unique(result.begin(),result.end()),result.end());for(int i= 0; i< result.size(); ++i){cout<<result[i].first<<' '<<result[i].second<<endl;}return true;
}bool Check(int i, int j){for(int x= 0; x< 3; ++x){for(int y= 0; y< 3; ++y){if(Sen[x][y]!= Map[i-1+x][j-1+y])return false;}}return true;
}void Rotate(){for(int i= 0; i< 3; ++i){for(int j= 0; j<= i; ++j){swap(Sen[i][j],Sen[j][i]);}}for(int i= 0; i< 3; ++i){swap(Sen[0][i],Sen[2][i]);}
}bool CMP(const pair<int, int>& lhs, const pair<int, int>& rhs){if(lhs.first!= rhs.first){return lhs.first< rhs.first;}return lhs.second< rhs.second;
}

第二个是二分搜索,代码如下所示:

#include <iostream>
using namespace std;
typedef long long lld;
int N, K;
lld GS[100001];bool Handle();
int main(){while(Handle()){//empty while}
}bool Check(int m);//返回true,Ho赢,否则,Hi赢bool Handle(){if(!(cin>>N>>K))return false;for(int i= 0; i< N; ++i){cin>>GS[i];}int l= 1, r= K+1, m;while(l<= r){m= (l+r)>>1;if(!Check(m)){l= m+1;}else{r= m-1;}}while(Check(l))--l;cout<<l+1<<endl;return true;
}
inline lld MIN(lld x, lld y){return x< y ? x:y;
}
bool Check(int m){//返回true,Ho赢,否则,Hi赢lld Left= 0;int X= 0;for(int i= 0; i< N; ++i){Left+= m;if(GS[i]<Left){++X;}Left-=min(Left, GS[i]);}if(N&1){return X>=(N+1)>>1;}else{return X>(N>>1);}
}

第三个是动态规划,比较简单,代码如下所示:

#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;int dp[101][101][51];
bool Visit[101][101][51];
int GCD[101][101];
int M, N;
const int MOD= 1000000007;
bool Handle();
int gcd(int x, int y);
int main(){for(int i= 1; i< 101; ++i){for(int j= 1; j<=i; ++j){GCD[i][j]=GCD[j][i]= gcd(j,i);}}while(Handle()){//empty while}
}int Fetch(int i, int j, int k);bool Handle(){if(!(cin>>M>>N))return false;memset(Visit,0,sizeof(Visit));memset(dp,0,sizeof(dp));int Sum= 0;cout<<Fetch(M,M,N)<<endl;return true;
}int gcd(int x, int y){return !x ? y:gcd(y%x,x);
}int Fetch(int i, int j, int k){if(Visit[i][j][k]){//have gotreturn dp[i][j][k];}Visit[i][j][k]= true;if(j==1){dp[i][j][k]= (k==1)&&(i<=1);return dp[i][j][k];}else{dp[i][j][k]= 0;dp[i][j][k]+= Fetch(i,j-1,k);if(i>= j)dp[i][j][k]+= Fetch(i-j,j-1,k/GCD[j][k]);dp[i][j][k]%=MOD;return dp[i][j][k];}
}

2015_12_27微软校园招聘笔试题目相关推荐

  1. 九度OJ 1525 子串逆序打印 -- 2012年Google校园招聘笔试题目

    题目地址:http://ac.jobdu.com/problem.php?pid=1525 题目描述: 小明手中有很多字符串卡片,每个字符串中都包含有多个连续的空格,而且这些卡片在印刷的过程中将字符串 ...

  2. 微软实习生招聘笔试题目

    微软实习生招聘笔试题目 您好!以下是本次微软实习生招聘的笔试题目,请仔细阅读并认真答题: 注意:本次测试题目仅限本人阅读,请勿传阅他人.谢谢! 提交材料 1.不超过2页的说明书,包括算法,设计,使用说 ...

  3. 暴风影音2014校园招聘笔试题目-技术D卷

    /*暴风影音2014校园招聘笔试题目-技术D卷.6. m*n的网格从左上角A点走到右下角B点,每次可走一格,只能往右或下走.输出有多少种走法和所有路线数. */ #include <cstrin ...

  4. 深圳深信服科技07年校园招聘笔试题目

      发信人: happyhippy (CS03.Silent Void), 信区: jobservice 标  题: 深圳深信服科技07年校园招聘笔试题目 发信站: 郁金香BBS站 (2006年11月 ...

  5. 阿里巴巴 c语言 笔试题,阿里巴巴校园招聘笔试题目

    笔试时间为2014年8月29日,均为网上答题.第一部分为单选题,共20题,要在40分钟内完成.每个人的选择题都不一样,应该是后台有题库,每个人的试卷都是随机生成的.第二部分为附加题,一般为1道问答题, ...

  6. 2011年恒生电子校园招聘笔试题目

    倒数第二道题: C语言字符串拷贝函数的实现  char   *strcp(char   *dest,   const   char   *source) char *strcp(char *dest, ...

  7. 网易校园招聘笔试题目

    1 两个数组x[].y[],长度为n,而且都经过排序从小到大排列,请编写C/C++程序求出两个数组合并后(仍然从小到大排列)的中位数,要求比较次数少于n. 分析:要求出中间的两个数,只要用一个数组来存 ...

  8. 打印前20个平凡数(某公司校园招聘笔试题目)

    humble数的定义:humber = pow(2, a1) * pow(3, a2) * pow(5, a3) * pow(7, a4); 其中 a1, a2, a3, a4均为非负整数,且不全为0 ...

  9. 百度2014校园招聘笔试面试汇总

    目 录 1. 百度笔试 2 1.1百度2014校园招聘笔试题(成都站,软件研发岗) 2 1.2  2013百度校园招聘-机器学习和数据挖掘工程师-笔试题 7 1.3  百度2014校园招聘 技术研发题 ...

最新文章

  1. 3-flutter 项目结构 资源 依赖
  2. 金蝶API apiEnv.apiSession.Token = GetToken()报错
  3. pytorch 激活函数
  4. boost::describe模块实现枚举转字符串的测试程序
  5. 2005/7/15[随便写写]
  6. php求数组交集的自定义函数,php数组交集函数
  7. Hive中生成随机唯一标识ID的方法
  8. 字典树(Trie树)的实现及应用
  9. 115.不同的子序列
  10. 《Java语言程序设计》✍基础知识整理
  11. STM32F103和STM32F107区别
  12. Java我的世界forge安装失败,我的世界forge安装失败install怎么办
  13. HTML <abbr> 标签
  14. Professor Forcing: A New Algorithm for Training Recurrent Networks翻译
  15. 珍藏的PS技巧(可以尝试一下哦)(转载)
  16. 硬件-ESP32S模块资料介绍
  17. 关于高德地图2.0卡顿问题的解决方案(chrome设置+显卡设置)
  18. 关于剪枝对象的分类(weights剪枝、神经元剪枝、filters剪枝、layers剪枝、channel剪枝、对channel分组剪枝、Stripe剪枝)
  19. 【模拟电路】常用的DC-DC电源电路图
  20. linux打开python文件夹_python 常用对linux系统文件及目录的操作

热门文章

  1. MATLAB--数字图像处理 特征点匹配
  2. 计算器的改良(NOIP2000)
  3. [OHIF-Viewers]医疗数字阅片-医学影像-React/Redux 的好帮手Classnames
  4. 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 8
  5. Poser v7.0 1DVD(3D 角色动画)
  6. 使用Visual Leak Detector工具检测内存泄漏
  7. Requests: 1, Fetched: 0, Skipped: 0, Processed: 0
  8. MFC修改图标简单方法(包括exe图标,任务栏图标,应用程序运行左上角图标)
  9. 日本亚马逊海淘经验-2015
  10. 密码学朋克宣言(1993)