Wannafly挑戰賽5A 珂朵莉與宇宙

2021-08-21 09:25:12 字數 839 閱讀 2265

時間限制:c/c++ 2秒,其他語言4秒

空間限制:c/c++ 65536k,其他語言131072k

64bit io format: %lld

星神是來自宇宙的

所以珂朵莉也是吧

所以我就出了個題

給你乙個長為n的序列a,有n*(n+1)/2個子區間,問這些子區間裡面和為完全平方數的子區間個數

第一行乙個數n

第二行n個數表示序列a

輸出乙個數表示答案
思路:

兩個點:

1.子區間必然連續

2.整數的平方都是完全平方數,所以負數也是

乙個字首和,必然能通過減另乙個字首和來求出,也就是當前字首和為a,減了了b,等於c,c是乙個完全平方數,也就是a-b = c;

法諾來也就是a-c = b,我們只需要找這個減的b是否存在於之前的字首和中.

然後這裡有乙個我才知道的問題是陣列的訪問速度比map快...

map快在插入和刪除,但是改變值比起陣列慢...畢竟有下標...

#includeusing namespace std;

const int maxn = 100003;

typedef long long ll;

int num[maxn];

int ditu[maxn*10];

int main()

ditu[0] = 1;

ll ans = 0;

for(int i=0; iditu[num[i]]++;

}cout

}

Wannafly挑戰賽5 A 字首和 暴力

時間限制 c c 2秒,其他語言4秒 空間限制 c c 65536k,其他語言131072k 64bit io format lld 星神是來自宇宙的 所以珂朵莉也是吧 所以我就出了個題 給你乙個長為n的序列a,有n n 1 2個子區間,問這些子區間裡面和為完全平方數的子區間個數 第一行乙個數n 第...

Wannafly挑戰賽5 補題

a 珂朵莉與宇宙 思路 科學暴力 列舉字首和,同時計算字首和裡面可能出現的完全平方數,匹配字首和 與完全平方數的差值是否在之前的字首和出現,出現了幾次就是存在多少個區間,利用的是連續的性質。include using namespace std typedef long long ll const ...

Wannafly挑戰賽5 子串行

解題思路 若t字串第一次出現在1 i中,那麼i n的字元就可以隨便取了,1 i沒有被t字串中字母佔據的每個字母只能有25種取法,即在t中字母出現之前不能出現這個字母。那麼求排列組合我們在求乙個逆元就可以了。include include include includeusing namespace ...