題目描述
乙個正整數有可能可以被表示為n(109>=n>=2)個連續正整數之和,如:
15=1+2+3+4+5
15=4+5+6
15=7+8
根據輸入的任何乙個正整數,找出符合這種要求的所有連續正整數序列。
輸入格式
乙個正整數。
輸出格式
輸出符合題目描述的全部正整數序列,每行乙個序列,每個序列都從該序列的最小正整數開始、以從小到大的順序列印。如果結 果有多個序列,按各序列的最小正整數的大小從小到大列印各序列。此外,序列不允許重複,序列內的整數用乙個空格分隔。如果沒有符合要求的序列,輸出 「none」。
樣例資料
input1
15output1
1 2 3 4 5
4 5 6
7 8input2
16output2
none
必然有一串數等於n,設這串數字頭為a,尾為b;
則根據等差數列公式:和=(首項+末項)*項數/2;
因此可得,(a+b)(b-a+1)/2=n
化簡,得:(a+b)(b-a+1)=2n
顯然,a+b 和 b-a+1 都為整數且是2n的因數
因此我們便只要列舉2n的因數i即可
接著,我們設xy=2n,就可以得到方程組:
【a+b=x
b-a+1=y】
解這個方程組,得:b=(x+y-1)/2,a=x-b(當x,y為引數時)
然後列舉i是,1.設x=i;2.設y=i 則進行兩次操作求合法的a和b就可以了
參考**:
#include
using
namespace
std;
int n,t,flag,tmp=0;
struct sans[100000]={};
inline
bool cmp(s x,s y)
}int main()
if (flag==0) cout
<<"none";
sort(ans+1,ans+tmp+1,cmp);
for (int i=1;i<=tmp;i++)
題目描述
監獄有連續編號為1..n的n個房間,每個房間關押乙個犯人。有m種宗教,每個犯人可能信仰其中一種。如果相鄰房間的犯人信仰的宗教相同,就可能發生越獄。求有多少種狀態可能發生越獄。
輸入格式
輸入兩個整數m和n,1≤m≤10 8
108
,1≤n≤10 12
1012
。輸出格式
可能越獄的狀態數,模100003取餘。
樣例資料
input
2 3output
6樣例說明
6 種狀態為:(000)(001)(011)(100)(110)(111)
資料規模與約定
時間限制:1s
1s空間限制:256mb
256mb
求可能發生越獄,再根據:可能發生數+不可能發生數=總數,得:所求答案=總數-不可能發生數
總數=m^n
不可能發生數=m*(m-1)^(n-1)
即,ans=m^n-m*(m-1)^(n-1)
由於資料過大,需要快速冪
有序減法取模,請及時加上mod,且即使取模即可
參考**:
#include
using
namespace
std;
const
long
long mod=100003;
long
long n,m;
long
long qpower(long
long a,long
long b)
return ans;
}int main()
《演算法筆記》5 1小節 數學問題 簡單數學
題目描述 用小於等於n元去買100隻雞,大雞5元 只,小雞3元 只,還有1 3元每只的一種小雞,分別記為x只,y只,z只。程式設計求解x,y,z所有可能解。輸入 測試資料有多組,輸入n。輸出 對於每組輸入,請輸出x,y,z所有可行解,按照x,y,z依次增大的順序輸出。樣例輸入 copy 45 樣例輸...
《演算法筆記》5 1小節 數學問題 簡單數學
題目描述 計算兩個矩陣的乘積,第乙個是23矩陣,第二個是32矩陣,結果為乙個22矩陣。輸入輸入包含多組資料,先輸入乙個23矩陣,再輸入乙個3 2矩陣。輸出輸出兩個矩陣的乘積。樣例輸入 copy 1 1 1 1 1 1 1 11 1 1 1樣例輸出 copy 3 33 3 思路分析 主要就是明白矩陣乘...
演算法筆記練習 5 1 簡單數學 問題 B 反序數
演算法筆記練習 題解合集 題目鏈結 題目描述 設n是乙個四位數,它的9倍恰好是其反序數 例如 1234的反序數是4321 求n的值 輸入程式無任何輸入資料。輸出輸出題目要求的四位數,如果結果有多組,則每組結果之間以回車隔開。用i遍歷 1000 到 1111 的範圍,若有符合條件的,輸出 把四位數i的...