QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#789676#9671. Container Schedulingrotcar07RE 0ms0kbC++231.0kb2024-11-27 21:26:132024-11-27 21:26:15

Judging History

你现在查看的是最新测评结果

  • [2024-11-27 21:26:15]
  • 评测
  • 测评结果:RE
  • 用时:0ms
  • 内存:0kb
  • [2024-11-27 21:26:13]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
constexpr int N=1e5+5,B=17;
int n,m,a[N],vv[B][B];
typedef long long ll;
ll f[1<<B];
int main(){
    cin>>m>>n;
    for(int i=0;i<m;i++)
    for(int j=0;j<m;j++) cin>>vv[i][j];
    string s;cin>>s;int M=1<<m;
    for(int i=1;i<=n;i++) a[i]=s[i-1]-'a';
    vector<int> v;
    for(int i=n;i>=1;i--){
        int msk=0;
        const int x=a[i];
        auto it=v.begin();
        for(;it!=v.end();it++){
            const int j=*it;
            const int w=vv[x][j];
            // cout<<msk<<' '<<x<<' '<<j<<'\n';
            f[msk]+=w;
            f[msk|1<<x]-=w;
            f[msk|1<<j]-=w;
            f[msk|1<<x|1<<j]+=w;
            if(j==x)break;
            msk|=1<<j;
        }
        if(it!=v.end()) v.erase(it);
        v.insert(v.begin(),x);
    }
    // for(int i=0;i<M;i++) cout<<f[i]<<' ';cout<<'\n';
    for(int i=0;i<m;i++)
    for(int j=0;j<M;j++) if(j>>i&1) f[j]+=f[j^(1<<i)];
    for(int i=0;i<M;i++) cout<<f[i]<<' ';cout<<'\n';
}

详细

Test #1:

score: 0
Runtime Error

input:

4 10 10
5 5
6 6
4 7
10 2

output:


result: