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

无聊的会议

时间:2016-10-30 20:03:34      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:pos   class   分享   blog   黑点   images   输出   post   style   

【题目描述】

   有一张正n边形的会议桌,n个干部分别坐在这个正n边形的各个顶点上。

   “完全”等腰三角形的定义是,此等腰三角形的三个顶点皆为正n边形的顶点,且三个顶点上的干部性别相同。

   现询问在此正n边形中,共有多少个“完全”等腰三角形。

【输入描述】

   第一行输入一个数T(T <= 1000),表示共有T组数据;

   接下来T行,每行输入一个长度为n的字符串,表示正n边形上的n个顶点,1为男,0为女。

【输出描述】

   对于第i组数据,输出“Case i: Ans”,Ans表示“完全”等腰三角形的数目。

【样例输入】

   5

   0001

   01

   10001

   1101010

   111010

【样例输出】

   Case 1: 1

   Case 2: 0

   Case 3: 1

   Case 4: 3

   Case 5: 2

【数据范围及提示】

   对于40%的数据,n <= 20;

   对于100%的数据,n <= 106

 

 题解:
法一:可以假设男性为黑点,女性为白点。枚举一个等腰三角形的顶点,再枚举一个底边点。这个三角形就确定下来了。求同色三角形的个数。n2做法。
法二: 所有等腰三角形的个数-所有异色等腰三角形的个数=所有同色三角形的个数。
          枚举顶点,然后在枚举任一与他颜色不同的底边点(即为多边形上所有与它颜色不同的点的个数O(1)),求出异色边的数量。这样子有一种三角形(顶点与两底边点一个为同色,一个为异色)数了一次,有一种三角形(顶点与两底边点均为异色)数了两次。可以使其都计算两次。
         计算顶点与一底边点一个为同色,一个为异色的三角行的个数:枚举两个底端点,保证其颜色不一样。n为奇数时,任意两个点都能形成底边。n为偶数时,奇偶性相同的点能形成底边。异色边都计算了两次,除以2,就是底边异色的个数。即为三角形的个数。
 
技术分享
 

 

 

无聊的会议

标签:pos   class   分享   blog   黑点   images   输出   post   style   

原文地址:http://www.cnblogs.com/sjymj/p/6013483.html

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