// problem: p1045 [noip2003 普及組] 麥森數
// contest: luogu
// url:
// memory limit: 125 mb
// time limit: 1000 ms
// user: pannnn
#include using namespace std;
/* 2^p與2^p-1有相同的位數,2的次方滿足了最後一位不為0的要求,所以減1後位數不會改變。
令k = 2^p,由於10^n的位數為n+1,將k改寫為以10為底的數。
10^(log(10)2) = 2
k = ( 10 ^ (log(10)2) ) ^ p
位數就是log(10)2 * p + 1
在算乘法時,不能完全告警,資料太長會超時
*/vectoradd(vectora, vectorb)
if (i < b.size())
res.push_back(pre % 10);
pre /= 10;
}if (pre)
return res;
}vectormulbyint(vectora, int b, int i)
while (pre)
return res;
}vectormul(vectora, vectorb)
return res;
}vectorgetvalue(int p)
tmp = mul(tmp, tmp);
tmp.resize(500);
res.resize(500);
p >>= 1;
}return res;
}vectorsubbyone(vectora) else
}return a;
}int main()
}return 0;
}
P1045 NOIP2003 普及組 麥森數
p1045 noip2003 普及組 麥森數 直接純模擬,然後想辦法優化 一般來說高精度原理,是把讓陣列的每一位表示數的位數,所以只要第一位大於10,就直接進製 如果每一次都這樣進製的話,那麼時間的開銷會很大 那麼就可以考慮當第乙個數為10位數時再進製 這樣會大大減少時間 注意細節 include ...
P1042 NOIP2003 普及組 桌球
華華通過以下方式進行分析,首先將比賽每個球的勝負列成一張表,然後分別計算在1111分制和2121分制下,雙方的比賽結果 截至記錄末尾 比如現在有這麼乙份記錄,其中w表示華華獲得一分,l表示華華對手獲得一分 wwwwwwwwwwwwwwwwwwwwwwlw在1111分制下,此時比賽的結果是華華第一局1...
P1044 NOIP2003 普及組 棧
棧是計算機中經典的資料結構,簡單的說,棧就是限制在一端進行插入刪除操作的線性表。棧有兩種最重要的操作,即 pop 從棧頂彈出乙個元素 和 push 將乙個元素進棧 棧的重要性不言自明,任何一門資料結構的課程都會介紹棧。寧寧同學在複習棧的基本概念時,想到了乙個書上沒有講過的問題,而他自己無法給出答案,...