zoukankan      html  css  js  c++  java
  • xmu 1353: 攻占城堡

    这题是厦门大学第一届程序设计大赛上的一题,这题我用的是prim算法.稍微有一点变形;

    说实话,可能不和我说是最小生成树解法,我可能想不到,搞不好要去暴力..

    虽然最后还是想出来了...其实不难..

    将读入的每个城堡的分值读入,读入以后计算城堡i到城堡j的分值,平方并且记录.

    最后将最小生成树改成最大生成树..随便叫= =反正是这个意思..

    其实感觉有点像以前做过的一道DP题,不知道可不可行..hdu 的 搬寝室.

     1 #include <iostream>
     2 #include <string.h>
     3 using namespace std;
     4 #define maxn 1005
     5 #define  INF 0x3f3f3f3f
     6 int mincost[maxn],value[maxn];
     7 int cost[maxn][maxn];
     8 bool visit[maxn];
     9 int n;
    10 int prim()
    11 {
    12     int res = 0, index = 1 , max_cost ;
    13     for(int i = 1;i <= n;i++)
    14         mincost[i] = cost[i][1];
    15     mincost[1] = 0;
    16     memset(visit,false,sizeof(visit));
    17     visit[1] = true;
    18     for(int i = 1 ; i <= n; i++)
    19     {
    20         max_cost = 0;
    21         for(int j = 1; j <= n; j++)
    22         {
    23             if(mincost[j]>max_cost && !visit[j])
    24             {
    25                 max_cost = mincost[j];
    26                 index = j;
    27             }
    28         }
    29         visit[index] = true;
    30         for(int k = 1; k <= n; k++)
    31         {
    32             if(!visit[k] && cost[k][index] > mincost[k])
    33                 mincost[k] = cost[k][index] ;
    34 
    35         }
    36 
    37     }
    38     for(int i = 1 ;i <=n;i++)
    39         res += mincost[i];
    40     return res;
    41 }
    42 int main()
    43 {
    44     while(~scanf("%d",&n))
    45     {
    46         memset(cost,0,sizeof(cost));
    47         for(int i = 1 ; i <= n ; i ++)
    48         {
    49             scanf("%d",&value[i]);
    50             for(int j = 1 ; j <= i ;j++)
    51             {
    52                 cost[i][j] = cost[j][i] = (value[i] - value[j])*(value[i]-value[j]); 
    53             }
    54         }
    55         printf("%d
    ",prim());
    56     }
    57     return 0 ;
    58 }
    View Code
  • 相关阅读:
    qrcode在手机上不显示的问题
    css 文本溢出省略号
    css解决字段不换行
    vue小程序ref和v-for结合使用得到ref数组的一些问题
    Nginx CORS 跨域资源共享问题
    基于k8s使用helm安装Jenkins
    nginx通过自定义http header 进行服务转发
    基于Kubernetes部署nacos配置中心
    基于Centos 7.8 和Kubeadm部署k8s高可用集群
    Jenkins学习以及配置
  • 原文地址:https://www.cnblogs.com/xiaoniuniu/p/4402440.html
Copyright © 2011-2022 走看看