T1234 2011(資訊學奧賽一本通)(分治)

2021-10-04 09:11:55 字數 1560 閱讀 1521

已知長度最大為200位的正整數n,請求出2011n的後四位。

第一行為乙個正整數k,代表有k組資料(k≤200),接下來的k行,每行都有乙個正整數n,n的位數≤200。

每乙個n的結果為乙個整數佔一行,若不足4位,去除高位多餘的0。

3528

792

1051

815521

肯定用的是分治的思想,關鍵是怎麼用

一開始wa了兩邊是用了整形,畢竟他位數可能是是200位……

正確做法是用了字串→_→

【wa**】

**想法沒錯,就是計算不了太大的數

#include

#include

#include

#include

#include

using

namespace std;

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

#define n 1000001

#define mod 1000000007

#define mod 10000

int n;

intm

(int p)

intmain()

return0;

}

【ac**】

這個參考了學長的**

#include

#include

#include

#include

#include

using

namespace std;

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

#define n 1000001

#define mod 1000000007

#define mod 10000

char a[n]

;int

main()

for(

; i) c=

(c*2011)%

10000

; cout<}return0;

}

資訊學奧賽

排列與組合是常用的數學方法,其中組合就是從n個元素中抽出r個元素 不分順序且r n 我們可以簡單地將n個元素理解為自然數1,2,n,從中任取r個數。現要求你用遞迴的方法輸出所有排列。一行兩個自然數n r 1 include include includeusing namespace std int...

資訊學奧賽

時間限制 1000 ms 記憶體限制 65536 kb 提交數 3478 通過數 2486 給定乙個由不同的小寫字母組成的字串,輸出這個字串的所有全排列。我們假設對於小寫字母有 a b y z 而且給定的字串中的字母已經按照從小到大的順序排列。只有一行,是乙個由不同的小寫字母組成的字串,已知字串的長...

資訊學奧賽 C (一)賦值語句

在c c 中,在語言中的作用並非是數學意義上的 等於號 也不表示判斷。在這裡的意思是賦值 表示把它右邊的值賦給左邊。一般形式為 變數 表示式 有的時候編譯器會提示不是合法的 左值 就是說賦值號左邊不是能被賦值的變數。輸入兩個正整數a和b,試交換a和b的值。分析 這是乙個典型的賦值題目,沒有其他的運算...