During the early stages of the Manhattan Project, the dangers of the new radioctive materials were not widely known. Vast new factory cities were built to manufacture uranium and plu- tonium in bulk. Compounds and solutions of these substances were accumulating in metal barrels, glass bottles and cardboard box piles on the cement floors of store rooms. Workers did not know that the substances they were handling could result in sickness, or worse, an explosion. The officials who new the danger assumed that they could ensure safety by never assembling any amount close to the critical mass estimated by the physicists. But mistakes were made. The workers, ignorant of the the dangers, often did not track these materials care- fully, and in some cases, too much material was stored together - an accident was waiting to happen.
Fortunately, the dangers were taken seriously by a few knowledgeable physicists. They drew up guidelines for how to store the materials to eliminate the danger of critical mass accumulations. The system for handling uranium was simple. Each uranium cube was marked ``U''. It was to be stacked with lead cubes (marked ``L'') interspersed. No more than two uranium cubes could be next to each other on a stack. With this simple system, a potential for the uranium reaching critical mass (three stacked next to each other) was avoided. The second constraint is that no more than thirty cubes can be stacked on top of each other, since the height of the storage room can only accommodate that many.
One of the physicists was still not completely satisfied with this solution. He felt that a worker, not paying attention or not trained with the new system, could easily cause a chain reaction. He posed the question: consider a worker stacking the radioactive cubes and non radioactive cubes at random on top of each other to a height of n cubes; how many possible combinations are there for a disaster to happen?
For example, say the stack is of size 3. There is one way for the stack to reach critical mass - if all three cubes are radioactive.
1: UUU
However, if the size of the stack is 4, then there are three ways:
1: UUUL
2: LUUU
3: UUUU
4 5 0
3 8
从最基础的3个u入手,对于f(n)来说,有n个位置,如果前n-1个位置是危险的,则在f(n-1)的后面加一个u,或l,就行了,如果前n-1个位置是安全的,则必没有连续3个u连续那么要使前n个位置 为危险状态,那么第n个,n-1个,n-2必为u,则第n-3位置为L,那么前n-3个位置为安全,则有2^n-4-f(n-3)种可能,因此f(n)=2*f(n-1)+2^(n-4)-f(n-3)得递推公式
#include<iostream>
#include<cmath>
using namespace std;
long long a[31];
int main(){
a[1]=a[2]=0;
a[3]=1;
a[4]=3;
for(int i=5;i<31;i++){
a[i]=2*a[i-1]+pow(2,i-4)-a[i-4];
}
int n;
while(cin>>n){
if(n==0) break;
cout<<a[n]<<endl;
}
}