博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018春招头条第一批
阅读量:7041 次
发布时间:2019-06-28

本文共 4243 字,大约阅读时间需要 14 分钟。

  • 自己做的一塌糊涂,现在仔细想想至少应该AC2道,关于bfs和递归的自己也刷了不少,思路都类似,应该多复习一下了
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//accmulate#include
#include
//setprecision() setw()using namespace std;//#define cin infile//C++文件输入ifstream infile("in.txt", ifstream::in);//#define test01//#define test02#define test03// 第一题#if 0int main(){ // test char str[] = "hello world!"; char str1[12]; //str1 = "hello"; //bug char *p = "hello"; char*q; q = "hello"; //数组去重 vector
array = { 1,2,2,3,4,4,4,5,6,7,7,9}; int s = 0, t = 1; for (; t < array.size();6) { if (array[s]==array[t]) { t++; } else { array[++s] = array[t++]; } } copy(array.begin(), array.end(), ostream_iterator
(cout, " ")); int n, k; cin >> n >> k; vector
vec; int temp = 0; for (int i = 0; i < n; i++) { cin >> temp; vec.push_back(temp); } sort(vec.begin(), vec.end()); int len = unique(vec.begin(), vec.end()) - vec.begin(); //unique去重原理 int ret = 0; int low = 0, high = 1; for (int i = 0; i < len;i++) { while (high
> n >> k;//// set
vec; //unodered_map// int temp = 0;// for (int i = 0; i < n;i++)// {// cin >> temp;// vec.insert(temp);// }//// int ret = 0;//// for (auto it = vec.begin(); it != vec.end();it++)// {// int t = *it + k;// auto end = vec.end();// end--;// if (t>*end)// {// break;// }// //int t1 = *it - k;``// if (vec.find(t)!=vec.end()/*||vec.find(t1)!=vec.end()*/)// {// ret++;// }// }//// cout << ret << endl;//// return 0;//}#endif// 第二题#if 0int dfs(string&s, string &m, string ans, int ret){ if (s == ans) { return ret; } if (s.size() > ans.size()) { return 0xFFFF; } else { return min(dfs(s + s, s, ans, ret + 1), dfs(s + m, m, ans, ret + 1)); }}int main(){ //C++文件输入 ifstream infile("in.txt", ifstream::in); int n = 6; //字符串长度 //cin >> n; string s = "a"; string m = s; string ans(n, 'a'); int ret = 0; ret = dfs(s, m, ans, ret); cout << ret << endl; return 0;}//bfs//typedef pair
pii;int main(){ int n = 6; //字符串长度 //cin >> n; string s = "a"; string m = s; string ans(n, 'a'); //初始化 pair
pa(s,m); map
, int> mp;// 实际就是求bfs的层数 queue
> que; que.push(pa); mp[pa] = 0; while (!que.empty()) { pair
temp; temp=que.front(); que.pop(); if (temp.first==ans) { cout << mp[temp] << endl; break; //exit(0); } pair
t; t = temp; t.second = t.first; t.second = t.second + t.second; //方式一 if (!mp.count(t)) { que.push(t); mp[t] = mp[temp] + 1; } t = temp; t.first = t.first + t.second; if (!mp.count(t)) { que.push(t); mp[t] = mp[temp] + 1; } } return 0;}#endif//第三题#if 0//int main()//{// int n, m;// cin >> n >> m;// vector
a;// vector
b;// int temp = 0;// for (int i = 0; i < n;i++)// {// cin >> temp;// a.push_back(temp);// }// for (int i = 0; i < m;i++)// {// cin >> temp;// b.push_back(temp);// }//// double ave1 = double(accumulate(a.begin(), a.end(), 0))/n;// double ave2 = double(accumulate(b.begin(), b.end(), 0)) / m;//// int cnt1 = 0;// for (int i = 0; i < n;i++)// {// if ((a[i]>=ave1&&a[i]<=ave2)||(a[i]<=ave1&&a[i]>=ave2))// {// cnt1++;// }// }//// int cnt2 = 0;// for (int i = 0; i < m; i++)// {// if ((b[i]>=ave1&&b[i] <= ave2) || (b[i]<=ave1&&b[i]>=ave2))// {// cnt2++;// }// }// cout << cnt1 + cnt2 << endl;//// return 0;//}#endif//第五题#if 1int main(){ int n, k, h,temp; cin >> n >> k >> h; //n表示跳板的个数,k为最多跳k次,h最大的高度差 vector
vec; for (int i = 0; i < n;i++) { cin >> temp; vec.push_back(temp); } sort(vec.begin(), vec.end()); queue
que; //里面装每一层的所能达到的高度 int j = 0; while (vec[j]
using namespace std;const int N = 1e5 + 1000;typedef pair
pii;bool vis[N];int a[N];int main(){ int n, k, h; scanf("%d%d%d", &n, &k, &h); for (int i = 0; i < n; ++i) { int t; scanf("%d", &t); a[t] = 1; } queue
q; q.push({ 0, 0 }); int ans = 0; while (!q.empty()) { pii p = q.front(); q.pop(); if (p.second > k) break; ans = max(ans, p.first); for (int i = 1; i <= h; ++i) { if (a[p.first + i] && !vis[p.first + 2 * i]) { vis[p.first + 2 * i] = true; q.push(make_pair(p.first + 2 * i, p.second + 1)); } if (p.first - 2 * i > 0 && a[p.first - i] && !vis[p.first - 2 * i]) { vis[p.first - 2 * i] = true; q.push(make_pair(p.first - 2 * i, p.second + 1)); } } } printf("%d\n", ans); return 0;}#endif
  • Reference:

转载地址:http://bkxal.baihongyu.com/

你可能感兴趣的文章
20180417PLSQL中sql语句格式化与注解问题
查看>>
Java 基础 之 while 循环
查看>>
顺丰今天上市了,王卫又成了民营快递业的首富
查看>>
前端和云端性能分析工具分析报告
查看>>
Jim Zemlin:加速开源创新,Linux 基金会超越 Linux
查看>>
.NET零基础入门05:委托与事件
查看>>
【阿里云MVP公益共创项目】服务数万爱心教师支教,推动中国渔业生态保护
查看>>
Linux命令复习和练习_03
查看>>
使用 github pages, 快速部署你的静态网页
查看>>
react 之 state 对象
查看>>
Java中的锁原理、锁优化、CAS、AQS
查看>>
“智能厨电+渠道精耕”,华帝迈出“关键一步”
查看>>
Scrapy爬虫(2)爬取新浪旅游图片
查看>>
Nginx反向代理以及负载均衡配置
查看>>
巨头抢滩视频云 金山云稳坐头把交椅
查看>>
索尼富士康领投,AR显示技术厂商Digilens获得2200万美元融资
查看>>
Qt5 GUI 开发的应用易受远程代码执行漏洞的影响
查看>>
搞懂Java动态代理
查看>>
「镁客·请讲」NXROBO林天麟:我们分三步走,首先要做的就是打通机器人行业的产业链...
查看>>
Zcan无线扫描鼠标,滑哪扫哪
查看>>