塔子哥是一个不那么严谨的经验主义者,他在使用Stable Diffusion“图生图”功能来画好康的图片时总想要选出上一轮最好看的那几张图片作为下一次“图生图”绘画的参考。
更一般的,“图生图”功能绘画的结果是若干张好康的图片,按照生成的先后顺序由1开始向后编号;同时,塔子哥在心里给它们打了一个分数(不同图片分数可能相同),由于AI绘图实在是不稳定,塔子哥决定删掉分数不大于20分的图片;随后塔子哥会根据他阅图无数的经验得到一个经验值,然后选择图片分数排名等于该经验值的图片作为下一次“图生图”绘画的参考。(注意,这里排名采用dense_rank的方式,即分数从大到小排序,相同分数排名相同)。如果不存在排名恰好经验值的,按最大的排名。
塔子哥希望你帮他找出可以作为“图生图”绘画参考的图片,以便于设置绘图的其他参数。
塔子哥使用Stable Diffusion的“图生图”功能生成了一些图片,并为每张图片打了分数。他希望根据自己的经验值选择出分数排名相应的图片作为下一次绘图的参考。输入包括图片的总数、塔子哥的经验值以及每张图片的评分。输出应为符合条件的图片分数和对应的编号,所有信息以空格分隔。
1.我们使用一个集合 st 来记录已经出现的有效分数,和一个向量 items 来存储这些分数以便后续排序。
2.筛选:对于每一张照片的分数 x,我们首先检查它是否大于 20 分。如果不大于 20 分,则不予考虑,直接跳过。对于大于 20 分的分数,我们检查它是否已经在集合 st 中。如果在,则将其出现的下标记录到一个映射 mp 中;如果不在,则将其加入集合和 items 向量,并在映射中初始化它的下标。