#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #define INF 0x3f3f3f3f using namespace std; int F[20]; void init(){ F[1] = 1; for(int i=2;i<13;i++){ int minn = INF; for(int r=1;r<=i;r++){ minn = min(2*F[i-r]+(1<<r)-1,minn); } F[i] = minn; } } int main(){ init(); for(int i=1;i<=12;i++){ printf("%d\n",F[i]); } } /* F(n)=min(2*F(n-r)+2^r-1),(1≤r≤n)。 */ /* puts("1"); puts("3"); puts("5"); puts("9"); puts("13"); puts("17"); puts("25"); puts("33"); puts("41"); puts("49"); puts("65"); puts("81"); */ |
Double click to view unformatted code.