QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#789676 | #9671. Container Scheduling | rotcar07 | RE | 0ms | 0kb | C++23 | 1.0kb | 2024-11-27 21:26:13 | 2024-11-27 21:26:15 |
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