time limit: 1 sec
memory limit: 162 mb
submit: 2427
solved: 1333 [
submit][
status]
給定n(n<=100),程式設計計算有多少個不同的n輪狀病毒。
第一行有1個正整數n。
將程式設計計算出的不同的n輪狀病毒數輸出
316
題意:rt
思路:dp[n]表示為n的方案數
打表可知規律為:dp[n]=3*dp[n-1] - dp[n-2] + 2
其中dp[1]=1 dp[2]=5
要用大數
#include
#include
#include
#include
#include
using namespace std; #define maxn 9999 #define maxsize 10 #define dlen 4 class bignum //建構函式 bignum(const int); //將乙個int型別的變數轉化為大數 bignum(const char*); //將乙個字串型別的變數轉化為大數 bignum(const bignum &); //拷貝建構函式 bignum &operator=(const bignum &); //過載賦值運算子,大數之間進行賦值運算 friend istream& operator>>(istream&, bignum&); //過載輸入運算子 friend ostream& operator(istream & in, bignum & b) //過載輸入運算子 b.a[count]=sum; count++; } b.len =count++; return in; } ostream& operator< 1) if(flag) t1.a[big-1]=0-t1.a[big-1]; return t1; } bignum bignum::operator*(const bignum & t) const //兩個大數之間的相乘運算 else } if(up != 0) ret.a[i + j] = up; } ret.len = i + j; while(ret.a[ret.len - 1] == 0 && ret.len > 1) ret.len--; return ret; } bignum bignum::operator/(const int & b) const //大數對乙個整數進行相除運算 ret.len = len; while(ret.a[ret.len - 1] == 0 && ret.len > 1) ret.len--; return ret; } int bignum::operator %(const int & b) const //大數對乙個int型別的變數進行取模運算 return d; } bignum bignum::operator^(const int & n) const //大數的n次方運算 m-=i; ret=ret*t; if(m==1) ret=ret*(*this); } return ret; } bool bignum::operator>(const bignum & t) const //大數和另乙個大數的大小比較 else return false; } bool bignum::operator >(const int & t) const //大數和乙個int型別的變數的大小比較 void bignum::print() //輸出大數 puts(""); } bignum dp[101]; int main() dp[n].print(); return 0; }
BZOJ 1002 輪狀病毒
time limit 1 sec memory limit 162 mb submit status 給定n n 100 程式設計計算有多少個不同的n輪狀病毒。第一行有1個正整數n。將程式設計計算出的不同的n輪狀病毒數輸出 3 16 第一眼看上去,n 100 不錯 打表 於是就寫了乙個暴力搜尋 可是...
動態規劃 BZOJ 1002 輪狀病毒
time limit 1 sec memory limit 162 mb submit 1947 solved 1056 submit status 第一行有1個正整數n。將程式設計計算出的不同的n輪狀病毒數輸出 3 16題意 給出乙個n各節點的 輪子 圖,中間的節點不算入n中,你要選取一些邊,使得...
bzoj 1002 輪狀病毒 打表
一眼看到資料範圍,輸入只有1個n,n 100果斷打表。然而好像跑錶的複雜度不茲磁啊,要跑幾年。所以要打表找規律。include 這是小資料打表 include using namespace std struct eb 100005 int cnt,n int use 100005 int fa 1...