无聊的会议

【题目描述】

   有一张正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,就是底边异色的个数。即为三角形的个数。
 
 

 

 
posted @ 2016-10-30 17:06  外婆桥  阅读(266)  评论(0编辑  收藏  举报