給你乙個數n
,然後找到乙個連續的序列,使得這個序列中的數的平方和等於n
。
輸出需要注意的是第一行為解的個數,剩下的每行先輸出序列的長度,然後輸出序列。按照序列的長度進行降序輸出。
沒啥好說的,使用尺度法,進行列舉各個區間上的數。
需要注意的是數字1
的答案為:
1
1 1
#include#include#include#include#include#include#include#include#includetypedef long long ll;
using namespace std;
const double esp=1e-6;
const int inf=0x3f3f3f3f;
const int maxn=1e6+7;
ll n;
struct node
};node nod[maxn];
int main()
if(sum < n) break;
if(sum==n)
sum-=lt*lt;
lt++;
}// sort(nod, nod+cnt);
cout
}
POJ 2100(尺取法 巢狀pair)
題意 結界給出乙個數n。你要求一段連續的數,這些數的平方和等於n。input 輸入乙個整數n,1 n 10 14 output 輸出乙個數k,k為解的個數。接下來的k行為解,每一行的解要先輸出這個解中包含的數字個數,然後從小到大輸出解中包含的數字。解的輸出順序要按照所包含的數字個數降序排列。samp...
poj 2100 尺取法連續平方和
題意 給乙個數 n 1e14 求一段連續的數的數字,使得其平方和等於n。輸出的時候,先輸出有多少組,然後每組的開頭輸出有多少個元素,然後輸出這些元素。解析 尺取法。需要注意的地方是s和t要從1開始,否則wa。include include include include include includ...
尺取法還是蚯蚓法
尺取法,顧名思義,像尺子一樣,一塊一塊的擷取。是不是感覺從字面很難理解?我們直接看例題 poj 3061 題目翻譯 給定長度為n的數列整數a0,a1,a2,a3 an 1以及整數s。求出綜合不小於s的連續子串行的長度的最小值。如果解不存在,則輸出0。限制條件 10 n 10 5,s 10 8,a 1...