树数学公式UVA

时间:2017-01-13 04:14:11

标签: math tree onlinejudge

当且仅当猫的帽子中有N只猫时,它才会戴帽子。 只有一只猫不在任何其他猫的帽子里面。 如果有没有帽子的M只猫,那里有多少只猫?

我试过这个问题以下是我的代码片段如下。

LL dfs(int n,int m,LL sum){
    if(m<n){
        return -1; // If not possible
    }
    if(m==n){
        return sum+n+1;
    }
    return  dfs(n,(m/n)+m%n,sum+n*(LL)floor(m*1.0/n));
}

我明确地处理了案例n == 1和m == 1。

在我出错的地方无法得到它。

链接:catsproblem

2 个答案:

答案 0 :(得分:1)

我错过了一个案例,如果m == 1答案应为1,我明确处理它。

Dim Sht As Worksheet
Dim ChtObj  As ChartObject

Set Sht = Worksheets("YourSheetName") '<-- set the worksheet your charts are in
Set ChtObj = Sht.ChartObjects(1) '<-- set the chart object to the specific chart object you want to modify

' now modify the chartobject properties
With ChtObj
    .Chart.Axes(xlValue).MaximumScale = Application.WorksheetFunction.Max(Sht.Range("D26:D100")) '<-- when defining the range, also fully qualify it with the worksheet name
End With

答案 1 :(得分:0)

您的计算不必要地复杂 - 答案有一个简单的公式,不需要您的递归。

你是对的,如果N = 1(每只帽子有一只猫),那么M = 1(只有一只没有帽子的猫),猫的总数是未知的。

在一般情况下,N> 1,如果没有带帽子的猫,则必须只有#34;正好一只猫&#34;没戴帽子因此,在一开始,这使得一只猫没有帽子。每当我们在猫身上添加一顶帽子时,就会在帽子里面添加N只新的无帽猫,但是将那只老猫从无帽子中移除,所以每只帽子都会给无帽猫增加N-1的数量。因此,如果H是带帽子的猫的数量,那么没有帽子的猫的数量是

    CREATE TRIGGER `test1` AFTER INSERT ON `campaign_place`
       FOR EACH ROW INSERT INTO campaignplacedenom (id, campaign_id,
       campaignName, place_id, placeName) 

       select new.id, new.campaign_id, campaignName, new.place_id, placeName 

       from campaign pd join place pm on pm.id = new.place_id 

       where pd.id = new.campaign_id

解决H,

M = 1 + H * (N - 1)

所以猫的总数是

H = (M - 1) / (N - 1)

请注意,这不依赖于cat-tree的结构。如果最后一个表达式是整数,那么这是一个可行的答案,否则是不可行的。

这是简单的Python 3.x代码打印猫的总数 - 我将离开解析和其他打印给你。如果你不喜欢T = M + H = M + (M - 1) / (N - 1) 的双层,我的代码很容易被重组为更平坦。

if