1055. 集体照 (25)
来源:互联网 发布:电脑绘画卡通人物软件 编辑:程序博客网 时间:2024/06/01 14:11
挺好的一道题。题目虽小,考察的知识点挺多,字符串处理,自定义排序,双端队列。
语法积累:
1.自定义排序:
bool mysort(node a, node b){ if (a.high!=b.high) return a.high>b.high; int t = strcmp(a.name, b.name); return t<0;//按字典顺组升序}
2.双端队列deque:
Constructors 创建一个新双向队列
Operators 比较和赋值双向队列
assign() 设置双向队列的值
at() 返回指定的元素
back() 返回最后一个元素
begin() 返回指向第一个元素的迭代器
clear() 删除所有元素
empty() 返回真如果双向队列为空
end() 返回指向尾部的迭代器
erase() 删除一个元素
front() 返回第一个元素
get_allocator() 返回双向队列的配置器
insert() 插入一个元素到双向队列中
max_size() 返回双向队列能容纳的最大元素个数
pop_back() 删除尾部的元素
pop_front() 删除头部的元素
push_back() 在尾部加入一个元素
push_front() 在头部加入一个元素
rbegin() 返回指向尾部的逆向迭代器
rend() 返回指向头部的逆向迭代器
resize() 改变双向队列的大小
size() 返回双向队列中元素的个数
swap() 和另一个双向队列交换元素
// 2017/10/14 NCU // PAT-B 1055// scienceZ#include <cstdio>#include <cstring>#include <deque>#include <iostream>#include <algorithm>using namespace std;struct node{ char name[10]; int high;};node arr[10010];int n, k, p, q, z;deque<char*> ans;bool mysort(node a, node b){ if (a.high!=b.high) return a.high>b.high; int t = strcmp(a.name, b.name); return t<0;}void read(){ for (int i = 0; i<n; i++){ cin >> arr[i].name >> arr[i].high; } return;}int main(){ cin >> n >> k; read(); sort(arr, arr+n, mysort); p = n/k; for (int i = 0; i<k; i++){ if (i == 0) q = p + n%k; else q = p; for (int j = 0; j<q; j++){ if (j%2) ans.push_front(arr[z].name); else ans.push_back(arr[z].name); z++; } while(!ans.empty()){ if (ans.size() == 1) printf("%s\n", ans.front()); else printf("%s ", ans.front()); ans.pop_front(); } } return 0;}
阅读全文
0 0
- 1055. 集体照 (25)
- 1055. 集体照 (25)
- 1055. 集体照 (25)
- 1055. 集体照 (25)
- 1055. 集体照 (25)
- 1055. 集体照 (25)
- 1055. 集体照 (25)
- 1055. 集体照 (25)
- 1055. 集体照 (25)
- 1055. 集体照 (25)
- 1055. 集体照 (25)
- 1055. 集体照 (25)
- 1055. 集体照 (25)
- 1055. 集体照 (25) PAT
- 1055. 集体照 (25)
- 1055. 集体照 (25)
- 1055. 集体照 (25)
- 1055. 集体照 (25)
- Linux 将一般的用户加入sudo组is_not_in_the_sudoers_file._This_incident_will_be_reported解决方法
- 火狐浏览器Firefox 如何下载网页的SWF视频,硅谷动力的网站视频怎么下载
- Partition Array by Odd and Even
- 洛谷 1731 生日蛋糕 dfs+剪枝
- Solidworks drwdot文件如何打开,如何制作Solidworks工程图模板
- 1055. 集体照 (25)
- Office EXCEL 2010如何取消宏密码保护
- Office EXCEL 2010如何启用宏编辑器,打开VB编辑器
- Office EXCEL 表格如何设置某个单元格是选择项,如何设置二级下拉菜单 MS Office版
- Error:Tag <uses-permission> attribute name has invalid character ' '.
- 每天一道LeetCode-----最长回文子串/序列,从头开始的最长回文子串长度
- Office EXCEL 表格如何设置某个单元格是选择项,如何设置二级下拉菜单 WPS版
- Office EXCEL 创建图片超链接打不开怎么办 Excel打开图片提示发生了意外错误怎么办
- python学习笔记(一)爬虫实战:图片自动下载器