zoukankan      html  css  js  c++  java
  • UESTC--1655

    原题链接:http://acm.uestc.edu.cn/problem.php?pid=1655

    分析:注意可能会反向。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cstring>
     5 #include<cmath>
     6 #define maxn 1005
     7 #define inf 0x7fffffff
     8 using namespace std;
     9 int l[maxn],r[maxn];
    10 int dis1[maxn];//clockwise
    11 int dis2[maxn];//ante-clockwise
    12 int ans[maxn];
    13 int main()
    14 {
    15     int T,n,cas=1,d;
    16     cin>>T;
    17     while(T--)
    18     {
    19         scanf("%d",&n);
    20         for(int i=1;i<=n;i++)
    21         {
    22             scanf("%d",&d);
    23              r[i]=d;
    24              if(i>=2)l[i]=r[i-1];
    25         }
    26         l[1]=r[n];
    27         for(int i=1;i<=n;i++)
    28         ans[i]=inf;
    29         int s=1;
    30         while(s<=n)
    31         {
    32             dis1[s]=dis2[s]=0;
    33             int temp=0;
    34             for(int i=1;i<n;i++)
    35             {
    36                 int j=s+i;
    37                 if(j>n)j-=n;
    38                 temp+=l[j];
    39                 dis1[j]=temp;
    40             }
    41             ans[s]=min(ans[s],temp);
    42              temp=0;
    43              for(int i=1;i<n;i++)
    44              {
    45                  int j=s-i;
    46                  if(j<=0)j+=n;
    47                  temp+=r[j];
    48                  dis2[j]=temp;
    49              }
    50              ans[s]=min(ans[s],temp);
    51              for(int i=1;i<=n;i++)
    52              if(i!=s)
    53              {
    54                  int j=i+1;
    55                  if(j>n)j-=n;
    56                  ans[s]=min(ans[s],dis1[i]*2+dis2[j]);
    57                  j=i-1;
    58                  if(j<=0)j+=n;
    59                  ans[s]=min(ans[s],dis2[i]*2+dis1[j]);
    60              }
    61              s++;
    62         }
    63          printf("Case #%d:",cas++);
    64         for(int i=1;i<=n;i++)
    65         printf(" %d",ans[i]);
    66         printf("
    ");    
    67     }
    68     return 0;
    69 }
    View Code
  • 相关阅读:
    综合日语第一册第十课
    综合日语第一册第九课
    荒木毬菜 小情歌日文版
    c# 匿名函数
    字典取KEY,占位符,延迟刷新
    flash GC
    自定义滤镜 ColorMatrixFilter
    sql join
    NSLog Release
    Windows 运行中的命令
  • 原文地址:https://www.cnblogs.com/i-love-acm/p/3308628.html
Copyright © 2011-2022 走看看