HDU5551

Problem: Huatuo’s Medicine
Source: The 2015 China Collegiate Programming Contest
Description: 一个人有N种瓶子,他要用这些瓶子形成一个链条,链条上的瓶子种类要形成回文。问最少要多少个瓶子才能构成这样的链条。
Solution: 通过分析我们可以得知,瓶子的个数为奇数是最少的,从左边到终点放 N1 个不同类型的瓶子,中间再放一种类型的瓶子。这样就能满足条件。
Code(C++):

#include 

int main()
{
    int K=1,N;
    for(scanf("%d",&N);N--;){
        int n;
        scanf("%d",&n);
        printf("Case #%d: %d\n",K++,2*n-1);
    }
    return 0;
}

你可能感兴趣的:(OJ,ACM算法竞赛)