您当前的位置: 首页 > 

不牌不改

暂无认证

  • 0浏览

    0关注

    422博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

1055 集体照 (25 分)

不牌不改 发布时间:2022-03-31 22:13:12 ,浏览量:0

题目

题目链接

题解

模拟。

之所以样例输出如此,是因为第一行其实是排队的最后一排,样例的输出更像是一张俯视图,我们站在最后一行的下一行去给他们拍照,他们面朝下,我们面朝上。

至于题目中说的“这里假设你面对拍照者,所以你的左边是中间人的右边”,就理解成每行都是按照先选出最高的人,队伍的最左端(我们的视角)插入一个次高的,再向队伍右端插入一个次次高的……

先排序。

我是以步长为2分别从右向左、从左向右遍历排好序的每个人,直接输出就行了;但是要注意分该行的人数是奇数还是偶数,奇数和偶数对应的遍历边界不一样。

为什么我实现代码这么慢?脑子太笨,沃日。

代码
#include
using namespace std;

int n, k, m, l;
struct node {
	string name;
	int h;
} a[10010];

bool cmp (node a, node b) {
	if (a.h != b.h) return a.h > b.h;
	return a.name > n >> k;
	for (int i = 0;i > a[i].name >> a[i].h;
	sort (a, a+n, cmp);
	
	for (int t = 0;t             
关注
打赏
1662186765
查看更多评论
0.0402s