printf 统计 世界 条件 要花 羽毛 任务 syn
众所周知,潘帕斯草原是雄鹰翱翔的地方,那里有很多的鹰,@潘帕斯雄鹰为了展示自己的与众不同将自己的羽毛进行了染色,由此给自己引来了麻烦
在潘帕斯草原上牛甚多,他们统治着草原的中心部分,鹰的领地环绕着牛所在的地方,[email protected]/* */��羽毛进行染色后,其他的鹰纷纷效仿,也想把自己的羽毛染成五颜六色。但是问题随之而来,相邻的两个鹰(1 和 2 相邻,1 和 n 也是相邻的)如果发现对方身上有和自己有一样颜色的羽毛就会和对方进行一场你死我活的空中战斗。为了避免这 [email protected]/* */��第一个将羽毛进行染色的鹰,他被鹰们指派去买颜料 (自费 T_T),[email protected]/* */��颜料。他发现由于各个鹰的喜好不同,他们想在身上染的颜色种类的个数也是不一样的,有些鹰喜欢把自己的羽毛涂的颜色多些,有些则少。通过统计得出了第 i 个鹰想在自己身上涂 Ai 种颜色。你现在的任务是维护世界和平找到最少的颜色种类使得每个相邻的鹰身上的羽毛颜色都可以没有相同的。
第一行 n(1<=n<=20000)
第二行开始每行有一个数 ai(1<=ai<=100000) 表示第 i 个鹰要在身上涂 ai 种颜色
一个数,即最少的满足条件的颜色种类
- 4
- 2
- 2
- 1
- 1
- 4
@潘帕斯雄鹰改编
如果只输出相邻两个的最大值的话,wa7
- #include<cstdio>
- #include<cmath>
- #include<algorithm>
- using namespace std;
- const int N=20005;
- long long a[N],maxn=0,sum=0;
- int main()
- {
- int n,i,j;
- scanf("%d",&n);
- for(i=1; i<=n; i++)
- scanf("%lld",&a[i]);
- a[n+1]=a[1];
- for(i=1; i<=n; i++)
- {
- sum+=a[i];
- maxn=max(maxn,a[i]+a[i+1]);
- }
- sum=(sum+(n/2)-1)/(n/2);//并不十分明白
- maxn=max(maxn,sum);
- printf("%lld",maxn);
- return 0;
- }
vijos 羽毛
来源: http://www.bubuko.com/infodetail-2148290.html