首页 > 其他分享 >Facetook Priority Wall 题解

Facetook Priority Wall 题解

时间:2023-07-12 13:22:06浏览次数:42  
标签:const Wall 题解 long Priority int second

题目传送门

一道模拟题。

用一个 map 存储每个人的优先级因子,然后存进 vector 里进行排序。难点在于分辨 \(X\) 和 \(Y\) 与当前是什么操作。

不过需要注意,只要出现了名字就需要输出,且我们认为与你没关系的人不加分。

Code

#include <bits/stdc++.h>
#define ll long long
#define INF 1e9
using namespace std;
string name;
int n, cnt;
map <string, int> mp;
vector <pair <string, int>> ans; 
bool cmp(const pair <string, int> &x, const pair <string, int> &y) { // 排序
    if (x.second != y.second) return x.second > y.second;
    return x.first < y.first; 
}
signed main() {
    ios :: sync_with_stdio(0);
    cin >> name >> n;
    cin.get(); // 接下来要 getline
    for (int i = 1; i <= n; i++) {
        int j;
        string s, x, y, op;
        getline(cin, s);
        for (j = s.size() - 8; s[j] != ' '; j--) y += s[j]; 
        reverse(y.begin(), y.end()); // 判断 Y
        for (j = 0; s[j] != ' '; j++) x += s[j]; // 判断 X
        for (j++; s[j] != ' '; j++) op += s[j]; // 判断是什么操作
        if (x != name and mp.find(x) == mp.end()) mp[x] = 0; 
        if (y != name and mp.find(y) == mp.end()) mp[y] = 0;
        // 只要出现了就要输出
        if (y == name) {
            if (op == "posted") mp[x] += 15;
            else if (op == "commented") mp[x] += 10;
            else mp[x] += 5;
        }
        if (x == name) {
            if (op == "posted") mp[y] += 15;
            else if (op == "commented") mp[y] += 10;
            else mp[y] += 5;
        }
    }
    for (auto v : mp) ans.push_back(make_pair(v.first, v.second));
    sort(ans.begin(), ans.end(), cmp);
    for (auto v : ans) cout << v.first  << "\n";
    return 0;
}

标签:const,Wall,题解,long,Priority,int,second
From: https://www.cnblogs.com/xvl-/p/17547249.html

相关文章

  • centos7ping不通主机却能够上网时的问题解决方案
       ......
  • Codeforeces #1844 A~D题解
    Codeforeces#1844A~D题解ASubtractionGame博弈论A+Bproblem由于只有两种数字可选,若石子数量为a+b,先手选完之后必然为a或b,因此后手可以直接选完BPermutations&Primes构造构造方法:35791108642,这样把1放中间可以让最多的区间拿到1,接下来避免同时拿......
  • firewall防火墙服务
    使用firewall防火墙命令,查看系统提供了哪些模板1.列出所有的区域模板列出区域模板,以及具体的信息[root@yuchao-linux01~]#firewall-cmd--list-all-zones列出所有的区域的名字[root@yuchao-linux01~]#firewall-cmd--get-zonesblockdmzdropexternalhomeinternal......
  • 「Network」题解
    「CEOI2012」NetworkSolutiontoQuestionⅠ首先缩点(当然也可以不缩?),然后跑一遍DFS即可。//w为联通分量里的节点个数inlinevoiddfs(constint&u){ ans1[u]=w[u]; for(intv:G_scc[u]) dfs(v),ans1[u]+=ans1[v];}SolutiontoQuestionⅡ观察缩完点后......
  • 正方形鱼池题解
    首先这道题\(T\)的范围很小,而\(N\)的范围却很大,所以我们只能枚举树那么我们如何枚举呢,树有上下左右之分,看起来十分难枚举,现在让我们仔细分析一下:水池的边长就等于\(min(上下界的距离,左右界的距离)\)这时我们就可以开始枚举了,我枚举的是左右界那么我们此时就可以发现上下界的两......
  • 题解 [NOIP2011 提高组] 聪明的质监员
    题目链接不难发现,\(W\)越大,\(y_i\)以及\(y\)就越小,\(W\)越小,\(y_i,y\)就越大。所以这是一个二分答案。考虑如何\(check\)。观察\[y_i=\sum\limits_{j=l_i}^{r_i}[w_j\geW]\times\sum\limits_{j=l_i}^{r_i}[w_j\geW]v_j\]不难发现,乘号的前后都是区间和的形式,有......
  • 【开机10】解决出现问题,你的PIN不可用,单击以重新设置PIN 无法打开相机 设置我的PIN 登
    \(弄了1.5个小时,找到这个视频,终于弄好了!!!!!!\)\(如果各位基友出现这种问题,可以参考。\)【开机10】解决出现问题,你的PIN不可用,单击以重新设置PIN无法打开相机设置我的PIN登录选项诊断启动禁用服务后问题解决......
  • 洛谷 P4869 albus就是要第一个出场 题解
    洛谷P4869albus就是要第一个出场题意给定一个长度为\(n\)的序列\(A\),设可重集合\(S=\left\{\operatorname{xor}_{i=1}^nA_ix_i\midx_i\in\{0,1\}\right\}\),即\(S\)为\(A\)的所有子集的异或和构成的集合。给定一个数\(k\),求\(k\)在\(S\)中的排名。如果\(S\)中......
  • AT_abc306_h 题解
    AT_abc306_hBalanceScale题解Links洛谷AtCoderDescription有\(N\)个编号为\(1,2,\dots,N\)的砝码。有\(M\)次比较操作,每次比较砝码\(A_{i}\)和\(B_{i}\),\(A_{i}\)在左侧。分为三种情况:左边的砝码更重。右边的砝码更重。两边的砝码重量相同。将每次比较的......
  • CF878E 题解
    CF878ENumbersontheblackboard题解Links洛谷CodeforcesDescription给出\(n\)个数字,每次询问一个区间\([l,r]\),对这个区间内部的点进行如下操作。每次操作可以合并相邻两个数\(x,y\),用\(x+2y\)替换它们。对于每次询问,输出当最后只剩下一个数字时,这个数字的最大......