時間限制: 1000 ms 記憶體限制: 524288 kb
sol:這題應該挺水的吧,就像個板子一樣
1 0 0
1 1 0 * 1 1 1 (第一位是到i的和,第二位是fi-1,第三位是fi-2),每次乘右邊這個矩陣就是轉移一次
1 1 0
/*view code1 0 0
1 1 1
1 1 0
*/#include
using
namespace
std;
typedef
long
long
ll;inline ll read()
while
(isdigit(ch))
return (f)?(-s):(s);
}#define r(x) x=read()inline
void
write(ll x)
if(x<10
)
write(x/10
); putchar((x%10)+'0'
);
return;}
#define w(x) write(x),putchar(' ')
#define wl(x) write(x),putchar('\n')
intn;
ll mod;
ll power[
5][5],a[5][5],c[5][5
];ll ans[
5][5
];inline
void ad(ll &x,ll y)
intmain()
memmove(power,c,
sizeof
power);
}memset(c,
0,sizeof
c);
for(i=1;i<=3;i++) for(j=1;j<=3;j++) for(k=1;k<=3;k++)
memmove(a,c,
sizeof
a); n>>=1
; }
memset(c,
0,sizeof
c);
for(i=1;i<=1;i++) for(j=1;j<=3;j++) for(k=1;k<=3;k++)
memmove(ans,c,
sizeof
ans);
wl(ans[
1][1
]);
return0;
}/*input
5 1000
output
12hint
1 1 2 3 5 8
*/
1643 線段覆蓋 3
時間限制 2 s 空間限制 256000 kb 題目等級 gold 在乙個數軸上有n條線段,現要選取其中k條線段使得這k條線段兩兩沒有重合部分 端點可以重合 問最大的k為多少。輸入描述 input description 輸入格式 輸入檔案的第1行為乙個正整數n,下面n行每行2個數字ai,bi,描述...
codevs 1643 線段覆蓋 3
資料大到nlogn沒法做。然而我做1的時候用的就是貪心演算法。所以無影響。並且到這個地步。基本上就是卡io操作了 輸入輸出 cin cout會比較慢 關閉流同步後能快一倍 再快就只能用scanf printf 或者手寫讀入函式 讀入優化技巧 includeusing namespace std de...
codevs 1643 線段覆蓋 3 貪心 快排
題目描述 description 在乙個數軸上有n條線段,現要選取其中k條線段使得這k條線段兩兩沒有重合部分 端點可以重合 問最大的k為多少。輸入描述 input description 輸入格式 輸入檔案的第1行為乙個正整數n,下面n行每行2個數字ai,bi,描述每條線段。輸出描述 output ...