题目链接:Codeforces Round #367 (Div. 2) C. Hard problem
题意:
给你一些字符串,字符串可以倒置,如果要倒置,就会消耗vi的能量,问你花最少的能量将这些字符串排成字典序
题解:
当时1点过头太晕了,看错题了,然后感觉全世界都会,就我不会,- -!结果就是一个简单的DP,
设dp[i][0]表示第i个字符串不反转的情况,dp[i][1]表示第i个字符串反转的情况
状态转移方程看代码
1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;i++) 3 using namespace std; 4 typedef long long ll; 5 6 const int N=1e5+7; 7 ll dp[N][2],inf=(1ll<<62)-1; 8 int n,v[N],lena,lenb; 9 char a[N],b[N],c[N],d[N]; 10 11 inline void up(ll &a,ll b){if(a>b)a=b;} 12 13 int main() 14 { 15 scanf("%d",&n); 16 F(i,1,n)scanf("%d",v+i); 17 scanf("%s",a),lena=strlen(a); 18 for(int i=0,j=lena-1;i<lena;i++,j--)c[j]=a[i]; 19 dp[1][0]=0,dp[1][1]=v[1],c[lena]='