UVA 11255 Necklace
带颜色数限制的polya计数。
其实感觉一样了。。。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 50
using namespace std;
long long t,col[],c[maxn][maxn],n;
long long gcd(long long a,long long b)
{
if (!b) return a;
return gcd(b,a%b);
}
void get_table()
{
c[][]=;
for (long long i=;i<=;i++)
{
c[i][]=;
for (long long j=;j<=;j++)
c[i][j]=c[i-][j-]+c[i-][j];
}
}
long long circ()
{
long long ret=;
for (long long i=;i<n;i++)
{
long long d=gcd(i,n),x=n/d,base=;
if ((col[]%(n/d)) || (col[]%(n/d)) || (col[]%(n/d))) continue;
for (long long j=;j<=;j++)
{
base*=c[d][col[j]/x];
d-=col[j]/x;
}
ret+=base;
}
return ret;
}
long long reflect()
{
long long ret=,ret1=,ret2=;
if (n&)
{
long long cols[];
if ((col[]&) && (col[]&) && (col[]&)) return ;
for (long long i=;i<=;i++) {cols[i]=col[i];if (cols[i]&) cols[i]--;}
long long sum=n/;
for (long long i=;i<=;i++)
{
ret*=c[sum][cols[i]/];
sum-=cols[i]/;
}
return ret*n;
}
else
{
long long cnt=,cols[];
for (long long i=;i<=;i++) {cnt+=(col[i]&);cols[i]=col[i];}
if (cnt==)
{
for (long long i=;i<=;i++) if (cols[i]&) cols[i]--;
long long sum=(n-)/;
for (long long i=;i<=;i++)
{
ret1*=c[sum][cols[i]/];
sum-=cols[i]/;
}
ret1*=(n/);ret1*=;
}
else
{
ret1=;
for (long long i=;i<=;i++)
{
long long base=,cols[],sum=(n-)/;
for (long long j=;j<=;j++) cols[j]=col[j];
cols[i]-=;
for (long long j=;j<=;j++)
{
base*=c[sum][cols[j]/];
sum-=cols[j]/;
}
ret1+=base;
}
ret1*=(n/);
}
if (!cnt)
{
long long sum=n/;
for (long long i=;i<=;i++)
{
ret2*=c[sum][cols[i]/];
sum-=cols[i]/;
}
ret2*=(n/);
}
else ret2=;
return ret1+ret2;
}
}
void work()
{
scanf("%lld%lld%lld",&col[],&col[],&col[]);
n=col[]+col[]+col[];
printf("%lld\n",(circ()+reflect())/(*(col[]+col[]+col[])));
}
int main()
{
get_table();
scanf("%lld",&t);
for (long long i=;i<=t;i++) work();
return ;
}
UVA 11255 Necklace的更多相关文章
- polya burnside 专题
polya题目:uva 11077 Find the Permutationsuva 10294 Arif in DhakaLA 3641 Leonardo's Notebookuva 11077 F ...
- Burnside&Polya总结
这里就算是一个小总结吧- 附参考的网址: http://blog.sina.com.cn/s/blog_6a46cc3f0100s2qf.html http://www.cnblogs.com/han ...
- Burnside&Polya总结
这里就算是一个小总结吧- 附参考的网址: http://blog.sina.com.cn/s/blog_6a46cc3f0100s2qf.html http://www.cnblogs.com/han ...
- UVA 10054 The Necklace(欧拉回路,打印路径)
题目链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- uva 10054 The Necklace(欧拉回路)
The Necklace My little sister had a beautiful necklace made of colorful beads. Two successive beads ...
- UVa 10054 The Necklace(无向图欧拉回路)
My little sister had a beautiful necklace made of colorful beads. Two successive beads in the neckla ...
- UVA 10054 the necklace 欧拉回路
有n个珠子,每颗珠子有左右两边两种颜色,颜色有1~50种,问你能不能把这些珠子按照相接的地方颜色相同串成一个环. 可以认为有50个点,用n条边它们相连,问你能不能找出包含所有边的欧拉回路 首先判断是否 ...
- UVA 10054 (欧拉回路) The Necklace
题目:这里 题意:有一种由彩色珠子连接而成的项链,每个珠子两半由不同颜色(由1到50的数字表示颜色)组成,相邻的两个珠子在接触的地方颜色相同,现在有一些零碎的珠子,确认它是否能 复原成完整的项链. 把 ...
- UVa 10054 (打印欧拉回路) The Necklace
将每个颜色看成一个顶点,对于每个珠子在两个颜色之间连一条无向边,然后求欧拉回路. #include <cstdio> #include <cstring> + ; int G[ ...
随机推荐
- sql server字段是逗号分割的id,关联明细表查询
有时候一张表的一个字段是以逗号分割的一个字符串,分割的数字是明细表的主键id. 关联明细表查询可以这样做: ) ) --这是把areanos字段赋值给@areanos变量 set @areanos=' ...
- Android Skia和2D图形系统 .
Android Skia 和 2D 图形系统 1 Skia 概述 Skia 是 Google 一个底层的图形.图像.动画. SVG .文本等多方面的图形库,是 Android 中图形系统的引擎. Sk ...
- Hibernate 系列教程14-继承-PerTable策略
Employee public class Employee { private Long id; private String name; HourlyEmployee public class H ...
- 动态链接库dll,导入库lib,静态链接库lib
目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库” ...
- openURL in APP Extension
var responder = self as UIResponder? while (responder != nil){ if responder!.respondsToSelector(Sele ...
- encodeURIComponent与URLDecoder.decode用法
在输入地址栏时有时一些信息需要在地址栏看不见,我们就需要对其信息在前台转码后台解码 js:encodeURIComponent编码与解码 今天在js往jsp和servlet传参的时候出现:JavaSc ...
- lucene的多种搜索2-SpanQuery
SpanQuery按照词在文章中的距离或者查询几个相邻词的查询 SpanQuery包括以下几种: SpanTermQuery:词距查询的基础,结果和TermQuery相似,只不过是增加了查询结果中单词 ...
- excel转化为Json
Sheet sheet; Workbook book; Cell cell1,cell2,cell3,cell4; JSONArray jsonArray = ...
- UVA 796 Critical Links (tarjan算法求割边)
这是在kuangbin的题目里看到的,不得不吐槽一下,题目中居然没给出数据范围,还是我自己猜的-本来是一道挺裸的题,但是我wa了好多次,原因就是这里面有两个坑点,1重边特判,2输出时左边必须比右边小. ...
- fzu Problem - 2232 炉石传说(二分匹配)
题目链接:http://acm.fzu.edu.cn/problem.php?pid=2232 Description GG学长虽然并不打炉石传说,但是由于题面需要他便学会了打炉石传说.但是传统的炉石 ...