珂朵莉與宇宙 字首和 轉換

2021-10-03 15:17:51 字數 985 閱讀 2060

題目鏈結

一道字首和的題目,以前做過類似的.分享一下思路

看到區間和其實就能想到要用字首和的方法了,不過怎麼用也是值得思考的乙個問題.

直接的做法:列舉所有區間,設t是完全平方數,a[i]-a[j-1] == t ans++.那麼如何判斷完全平方數呢?考察一下題目給的範圍.n<=1e5.a<=10,也就是說,最大的區間和也就是1e6級別的.可以用打表的方法先看看1-1e6裡面到底有多少個完全平方數.測試出來大概是1k個.那我們只需要預處理一下所有1e6以內的完全平方數就可以了.

不過1e5的級別列舉所有子區間代價也是不能接受的.所以要再加分析.觀察一下這個式子 a[i]-a[j-1] == t. 列舉a[j-1]的話不行.可以考慮列舉t 也就是轉換成 a[i]-t == a[j-1]

t最多也就大概1e3個.勉強可以接受.不過這裡就要注意乙個問題了.如果用map來存數的話.速度是不夠的.前面說了區間和最大也就1e6.陣列是可以開的下的.

具體細節看**吧.

#define ll long long

#define pb push_back

#include

#include

#include

using

namespace std;

const

int n =

1e7+10;

int a[n]

;vector<

int> v;

int mp[n]

;bool q[n]

;int

main()

int len = v.

size()

;for

(int i=

1;i<=n;

++i)

else

break;}

mp[a[i]]++

;}cout << ans << endl;

return0;

}

珂朵莉與失憶 SDUT

time limit 1000 ms memory limit 65536 kib submit statistic problem description 珂朵莉由於受到前世記憶的侵蝕會不斷地失憶。但是並不是每天都會失憶。失憶的發生條件是當且僅當這一天的編號為素數的時候,會失去這一天編號的數字之和...

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

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

珂朵莉的約數

珂朵莉給你乙個長為n的序列,有m次查詢 每次查詢給兩個數l,r 設s為區間 l,r 內所有數的乘積 求s的約數個數mod 1000000007 輸入描述 第一行兩個正整數n,m 第二行乙個長為n的序列 之後m行每行兩個數l和r 輸出描述 對於每個詢問,輸出乙個整數表示答案 示例1輸入 複製5564 ...