zoukankan      html  css  js  c++  java
  • Codeforce500C New Year Book Reading

    题意:给你n本书的重量,m天读书的顺序,书是一堆在一起的,每次拿一本书要把去其他书搬下来,拿出这本书, 然后把这些书搬上去,读完这本书要把书放在最上面,问按照读书顺序最少要搬多重的书

    题解:直接贪心就可以了,尽量靠前的书要放在上面,模拟一遍就可以,。。写错了一个地方,调了好久。

    #include <bits/stdc++.h>
    #define ll long long
    #define maxn 100100
    using namespace std;
    stack<int>s;
    map<int ,int >mp;
    int w[maxn], d[maxn], temp[maxn];
    int main(){
        int n, m, ans = 0, to, num = 0;
        cin>>n>>m;
        for(int i=1;i<=n;i++) cin>>w[i];
        for(int i=1;i<=m;i++) cin>>d[i];
        for(int i=1;i<=m;i++)
            if(mp[d[i]] == 0) temp[num++] = d[i],mp[d[i]]=1;
        for(int i=num-1;i>=0;i--) s.push(temp[i]);
        n = s.size();
        num = 0;
        for(int i=1;i<=m;i++){
            while(1){
                to = s.top();s.pop();
                if(to == d[i]) break;
                temp[num++] = to;
                ans += w[to];
            }
            for(int j=num-1;j>=0;j--)
                s.push(temp[j]);
            num = 0;
            s.push(d[i]);
        }
        cout<<ans<<endl;
        return 0;
    }
  • 相关阅读:
    华科机考:特殊排序
    华科机考:排序
    华科机考:字符串连接
    华科机考:a+b
    华科机考:IP地址
    华科机考:统计单词
    iOS 应用评分
    jQuery Custom PopUp Window
    Csharp:字符串操作
    Css:Conditional comments 条件注释
  • 原文地址:https://www.cnblogs.com/Noevon/p/7277224.html
Copyright © 2011-2022 走看看