fzu 2197

来源:互联网 发布:火炬之光2 mac 编辑:程序博客网 时间:2024/06/05 23:53

比赛的时候居然没看出来是贪心..

就是让最前面的0和最后面的1交换

#include<stdio.h>#include<algorithm>#include<string.h>#define inf 10000000;using namespace std;char ss[100001];int pos[100001];int main(){    int t;    scanf("%d",&t);    while(t--)    {        int x,y;        scanf("%d%d",&x,&y);        scanf("%s",ss);        int b=strlen(ss);        int zz=0;        for(int i=0; i<b; i++)        {            if(ss[i]=='1')                pos[zz++]=i;        }        zz--;        int sum=0;        for(int i=0; i<b; i++)        {            if(ss[i]=='0')            {                if(pos[zz]<i)                {                    break;                }                //printf("%d..\n",pos[zz]);                sum+=min(y,x*(pos[zz--]-i));            }        }        printf("%d\n",sum);    }}

0 0
原创粉丝点击