【扇形涂色问题】某里内推在线笔试,一个圆分成N个扇形,有M中颜色,求领域不同色的所有涂色方案数
2018-03-16 16:05
633 查看
设F(N,M)为满足的所有方案
N=1时,有M种
N=2时,有M*(M-1)种
N=3时,有M*(M-1)*(M-2)种
当N>=4时:
先考虑所有可以重色的方案:即M*(M-1)*(M-1)*(M-1)
其中包括第一块和最后一块重色的方案,只要减去即可。把第一块和最后一块作为同一个颜色块考虑的话,问题变为3区域不同色,即F(4,M) = M*(M-1)*(M-1)*(M-1) - F(3,M)。所以方案的递推公式是:
![](http://img-blog.csdn.net/20180316160242104?watermark/2/text/Ly9ibG9nLmNzZG4ubmV0L0JCc2hhb1Q=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
用C实现代码:
#include "stdio.h"
#include "math.h"
double recurve(int n,int m){
double kinds;
if(n==1){
kinds = m;
}
if (n==2){
kinds = m*(m-1);
}
if (n==3){
kinds = m*(m-1)*(m-2);
}
if (n>3){
kinds = m*pow(m-1,n-1) - recurve(n-1,m);
}
return kinds;
}
void main()
{
int n,m;
double kind;
scanf("%d %d",&n,&m);
kind = recurve(n,m);
printf("%f",kind);
}
N=1时,有M种
N=2时,有M*(M-1)种
N=3时,有M*(M-1)*(M-2)种
当N>=4时:
先考虑所有可以重色的方案:即M*(M-1)*(M-1)*(M-1)
其中包括第一块和最后一块重色的方案,只要减去即可。把第一块和最后一块作为同一个颜色块考虑的话,问题变为3区域不同色,即F(4,M) = M*(M-1)*(M-1)*(M-1) - F(3,M)。所以方案的递推公式是:
用C实现代码:
#include "stdio.h"
#include "math.h"
double recurve(int n,int m){
double kinds;
if(n==1){
kinds = m;
}
if (n==2){
kinds = m*(m-1);
}
if (n==3){
kinds = m*(m-1)*(m-2);
}
if (n>3){
kinds = m*pow(m-1,n-1) - recurve(n-1,m);
}
return kinds;
}
void main()
{
int n,m;
double kind;
scanf("%d %d",&n,&m);
kind = recurve(n,m);
printf("%f",kind);
}
相关文章推荐
- 有如图所示的七巧板,试设计算法,使用至多4种不同颜色对七巧板进行涂色(每块七巧板一种颜色),要求相邻区域的颜色互补相同,打印输出所有可能的涂色方案。
- 你就是一个画家!你现在想绘制一幅画,但是你现在没有足够颜色的颜料。为了让问题简单,我们用正整数表示不同颜色的颜料。你知道这幅画需要的n种颜色的颜料,你现在可以去商店购买一些颜料,但是商店不能保证能供应所有颜色的颜料,所以你需要自己混合一些颜料。混合两种不一样的颜色A和颜色B颜料可以产生(A XOR B)这种颜色的颜料(新产生的颜料也可以用作继续混合产生新的颜色,XOR表示异或操作)。本着勤俭节约的
- 着色问题 一个圆分成N个扇形,M种颜色,相邻区块重色 总工的着色方法数
- 该公司笔试题就1个,要求在10分钟内作完。 题目如下:用1、2、2、3、4、5这六个数字,写一个main函数,打印出所有不同的排列, 如:512234、412325等,要求:"4"不能在第三位,"3"与"5"不能相连。
- 【笔试】57、确定一个字符串的所有字符是否都不同
- 大疆笔试题目:长度为n的方格,刷3种颜色,相邻方格颜色不同,首尾颜色不同,共多少种涂色方式
- 领域建模有很多种方法,对于同样的问题域使用不同的建模手段得到的模型可能也不尽相同。于是我经常听到这样一个问题:怎么才能保证建模的正确性?
- 字符串匹配之通配符问题------一串首尾相连的珠子(m个),有N种颜色(N《=10),设计一个算法,取出其中一段,要求包含所有N中颜色,并使长度最短。
- NFL原则告诉我们做决策的时候,试图找到一个能解决所有问题,“大而全”的方案是不存在的。我们应当找到最关心的问题,因地制宜做出选择。——聚焦目标,取舍有道!
- 【小米笔试题】实现一个算法,确定一个字符串的所有字符是否全部不同
- 字符串匹配之通配符问题------一串首尾相连的珠子(m个),有N种颜色(N《=10),设计一个算法,取出其中一段,要求包含所有N中颜色,并使长度最短。
- Android 自定义View 慢慢画一个不同颜色扇形的圆,点击圆上不同颜色扇形区域返回不同颜色
- 给定一个字符数组,求由这些字符组成的所有不同的排序问题.
- hdu6035 Colorful Tree 树形dp 给定一棵树,每个节点有一个颜色值。定义每条路径的值为经过的节点的不同颜色数。求所有路径的值和。
- 纠结了一晚上的问题---点击导航栏的一个文本链接后所有导航栏文本链接颜色都变成访问过的颜色了
- 在线笔试中遇到的简单图像内容识别问题
- 笔试题目1:写一个函数,返回一个数组中所有元素被第一个元素除的结果
- android 一个 textview 设置不同的字体大小和颜色
- 网站免费在线客服源代码(powertalk系统,修改版,修改客服端由于XP不同不能登录问题)
- 在一个UILabel中实现不同的字体和颜色