zoukankan      html  css  js  c++  java
  • HDU 2625 Say love to you once again

    http://acm.hdu.edu.cn/showproblem.php?pid=2625

    随便写出一个dfs然后猥琐随机化法剪枝,第一次AC的战绩是1/18,还跑了700+ms,随机50w次成功率还这么低。。。最近rp真是太烂了有木有。。。

    View Code
    #include <iostream>
    #include <cstdlib>
    #include <ctime>
    using namespace std ;
    int map[30][30] ;
    int n ;
    int ans ;
    int vis[30] ;
    void dfs(int d)
    {
        if(d==n)
        {
            int temp=0 ;
            for(int i=0;i<n;i++)
                if(vis[i])
                    for(int j=0;j<n;j++)
                        if(!vis[j])
                            temp+=map[i][j] ;
            if(ans<temp)
                ans=temp ;
            return ;
        }
        vis[d]=1 ;
        dfs(d+1) ;
        vis[d]=0 ;
        dfs(d+1) ;
    }
    int main()
    {
        while(~scanf("%d",&n))
        {
            for(int i=0;i<n;i++)
                for(int j=0;j<n;j++)
                    scanf("%d",&map[i][j]) ;
            memset(vis,0,sizeof(vis)) ;
            ans=0 ;
            if(n<20)
                dfs(0) ;
            else
            {
                int times=500000 ;
                srand(time(0)) ;
                while(times--)
                {
                    vis[rand()%n]^=1 ;
                    int temp=0 ;
                    for(int i=0;i<n;i++)
                        if(vis[i])
                            for(int j=0;j<n;j++)
                                if(!vis[j])
                                temp+=map[i][j] ;
                    if(ans<temp)
                        ans=temp ;
                }
            }
            printf("%d.\n",ans) ;
        }
        return 0 ;
    }
  • 相关阅读:
    iOS刨根问底-深入理解RunLoop
    深入理解RunLoop
    Core Graphics框架 利用Quartz 2D绘图
    经济
    次贷危机的原因
    次级抵押贷款
    信用评级
    信用
    理解UIView的绘制-孙亚洲
    二级域名
  • 原文地址:https://www.cnblogs.com/xiaohongmao/p/2539860.html
Copyright © 2011-2022 走看看