前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >noip模拟-确定的位置(map + vector)

noip模拟-确定的位置(map + vector)

作者头像
wenzhuan
发布2022-08-15 12:36:11
3520
发布2022-08-15 12:36:11
举报
文章被收录于专栏:你会烧尽还是结冰

想清楚了就不难 这题还是在c程上机课的时候a掉的

还是aaa和vv的命名,本家独创 还是只会举例论证,wztcl

题目:确定的位置

描述 hzy很喜欢了解歌曲的排行榜,他每次都从XX网站获知。 由于这个网站想对这个歌曲的排行榜含蓄的告诉大家,组织了一个“猜榜大赛”。 这个网站宣布一些歌曲的信息,那些歌曲在歌曲榜上的前几名,例如: ·”qianlizhiwai” 是在榜上的前三名 ·”qianlizhiwai”,”dachengxiaoai” 是在歌曲榜的前两名 网站不会把歌曲的名次十分明确的告诉你,他就是想让你通过这些信息,推出一部分歌曲的名次,现在困惑的hzy找您帮忙,想让您推出所有确定名次的歌曲。 输入 第一行包括一个整数n, 1≤n≤500,表示网站给你的信息的条数。 下面n行包括一条信息,形式为”A and B song1 song2 song3 … songA”,1≤A≤B≤100,表示”song1”,”song2”,…,”songA”是在歌曲榜的前B位。 每一首歌都是一个string,由最多25个小写字母组成。 输出 输出可以知道的所有的歌的排名,形式:”Position Song”位置必须有序。 输入样例 1 2 1 and 3 lonely 2 and 2 trebami jasekonja 输出样例 1 3 lonely 输入样例 2 3 2 and 2 pjesma1 pjesma2 3 and 4 pjesma1 pjesma3 pjesma4 1 and 3 pjesma4 输出样例 2 3 pjesma4 4 pjesma3

AC代码

代码语言:javascript
复制
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<iostream>
#include<map>
#include<string>
#include<vector>
#include<sstream>
#define INF 0xfffffff
using namespace std;
int n, m, k;
int a, b, c, d;
int sum, ans, num, cnt[105];
string s, sa, sb;
map<string, int>aaa;
vector<string>vv[105];
vector<string>::iterator it;
int main() {
    num = 0;
    aaa.clear();
    for (int i = 1; i < 105; i++)
        vv[i].clear();
    cin >> n;
    int tmp = INF;
    while (n--) {
        cin >> k >> s >> m;
        while (k--) {
            cin >> s;
            if (!aaa[s])
                aaa[s] = m, vv[m].push_back(s);
            else if (aaa[s] > m){
                for(it=vv[aaa[s]].begin();it!=vv[aaa[s]].end();)
                    if(*it==s) it=vv[aaa[s]].erase(it);
                    else it++;
                vv[m].push_back(s);
                aaa[s] = m;
            }
        }
    }
    for (int i = 1; i < 105; i++){
        num+=vv[i].size();
        //没有num遇到1 1 and 3 lonely这种情况会输出3 lonely(正确是没有输出)
        if (vv[i].size() == 1&&num==i)
        cout << i << " " << vv[i][0] << endl;
    }
    return 0;
}

感觉没什么太难理解的不必要打什么注释= =

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目:确定的位置
  • AC代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档