zoukankan      html  css  js  c++  java
  • 【hihocoder1251】Today is a rainy day

    #include<bits/stdc++.h>
    const int N=120;
    const int M=5e4+5;
    const int inf=0x3f3f3f3f;
    using namespace std;
    char s1[N],s2[N];
    int c[6],f[6][6],dis[M];
    inline int Index(int *a){
        int ans=0;
        for(int i=0;i<6;i++)ans=ans*6+a[i];
        return ans;
    }
    inline void hs(int x,int *a){
        for(int i=5;i>=0;i--)a[i]=x%6,x/=6;
    }
    inline void bfs(){
        memset(dis,127,sizeof(dis));int b[6];
        for(int i=0;i<6;i++)b[i]=i;
        int x=Index(b);dis[x]=0;
        static queue<int> q;q.push(x);
        while(!q.empty()){
            int u=q.front();q.pop();
            hs(u,b);
            for(int i=0;i<6;i++)for(int j=0;j<6;j++){
                int t[6];memcpy(t,b,sizeof(t));
                for(int k=0;k<6;k++)if(t[k]==i)t[k]=j;
                int v=Index(t);
                if(dis[v]>dis[u]+1)dis[v]=dis[u]+1,q.push(v);
            }
        }
    }
    int main(){
        freopen("ff.in","r",stdin);
        freopen("dick.out","w",stdout);
        bfs();
        while(~scanf("%s%s",s1,s2)){
            int len=strlen(s1);
            memset(c,0,sizeof(c));memset(f,0,sizeof(f));
            for(int i=0;i<len;i++){
                int x=s2[i]-'1',y=s1[i]-'1';c[x]++;f[x][y]++;
            }
            int ans=inf,b[6];
            for(int i=0;i<M;i++){
                hs(i,b);int tmp=dis[i];
                for(int j=0;j<6;j++)tmp+=c[j]-f[j][b[j]];
                ans=min(ans,tmp);
            }
            printf("%d
    ",ans);
        }
    }

  • 相关阅读:
    Redis线程模型理解
    策略模式
    Spring Cloud 5大组件介绍
    单例模式
    hotspot虚拟机的调试
    编译虚拟机jvm——openjdk的编译
    mybatis的搭建和注入spring的方式
    springMvc+hibernate的web application的构建
    关于本博客
    本博客已停更
  • 原文地址:https://www.cnblogs.com/zcysky/p/7590910.html
Copyright © 2011-2022 走看看