L2-040 哲哲打游戏

L2-040 哲哲打游戏 ,第1张



题目链接

**思路:**本次就是个简单的模拟,store数组存储存档信息,但是N为1e5,无法用二维数组存储跳转信息,刚开始用map,int>存储剧情点之间的跳转信息,TLE了两个点,改用unordered_maphash存储跳转信息,WA了一个点,最后想起来可以用vector存储,AC了此题。

学到的知识点:
1.简单对比 map 和 unordered _ map 的性能。

map 内部是红黑树,在插入元素时会自动排序,而无序容器 unordered _ map 内部是散列表,通过哈希而不是排序来快速 *** 作元素,使得 效率 更高。

当你不需要排序时选择 unordered _ map 的 效率 更高。

#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
typedef long long LL;
const int N =10010;
int n, m;
int store[100010];
vector <int> v[100010];
int main ()
{
    scanf("%d%d", &n, &m);
    for (int i = 1; i <= n; i ++)
    {
        int k; scanf ("%d", &k);
        for (int j = 1; j <= k; j ++)
        {
            int x; cin >> x;
            v[i].push_back (x);
        }
    }
    int cur = 1;
    while (m --)
    {
        int op, pos;
        scanf("%d%d", &op, &pos);
        if (op == 0)
        {
            cur = v[cur][pos - 1];
        }
        else if (op == 1)
        {
            store[pos] = cur;
            cout << cur << "\n";
        }
        else
            cur = store[pos];
    }
    cout << cur;
    return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/674344.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存