码迷,mamicode.com
首页 > 其他好文 > 详细

[2016-05-01][codeforces][667B - Coat of Anticubism]

时间:2016-05-01 14:57:15      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

  • 时间:2016-05-01 14:13:45 星期日

  • 题目编号:[2016-05-01][codeforces][667B - Coat of Anticubism]

  • 题目大意:给定n条边,问至少要增加一条多长的边才能使得这些边能组成一个凸多边形,保证n条边一定不能组成凸多边形,

  • 分析:

    • 增加一条边,使得这些边能组成三角形,这条边的最小值就是答案
    • 假设增加一条边之和,组成的不是三角形,假设是4边行,那么可以把某两条边缩短,使得某相邻的两条边变成一条边,进而使得4边形变成3角形,故不是三角形的情况一定还能把边缩短,所以三角形的情况才是最优的情况
  1. #include<cstdio>
  2. #include<algorithm>
  3. using namespace std;
  4. const int maxn = 1E5 + 10;
  5. int main(){
  6. int n,a,b,tmp;
  7. a = b = 0;
  8. scanf("%d",&n);
  9. for(int i = 0 ; i < n ; ++i){
  10. scanf("%d",&tmp);
  11. if(tmp > a){
  12. b += a;
  13. a = tmp;
  14. }else b += tmp;
  15. }
  16. int ans = a - b + 1;
  17. printf("%d\n",ans);
  18. return 0;
  19. }




[2016-05-01][codeforces][667B - Coat of Anticubism]

标签:

原文地址:http://www.cnblogs.com/qhy285571052/p/259752a20c81eee15fa2d53539f6a06a.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!