模擬測試107

2022-05-06 20:48:08 字數 612 閱讀 3710

t1:

列舉中心所在位置,每次貪心找到左右最近的乙個相同字元移動。

可以用單調指標掃。

時間複雜度$o(n^2)$。

t2:兩個數的乘積為平方數,那麼這兩個數各自去掉平方因子後相等。

去掉平方因子後可以用map統計答案。

對於普通的$o(\sqrt)$試除法,複雜度不允許,就算將所有的質數篩出後列舉質數也會超時。

篩出質數是肯定要的,考慮優化試除。

我們只關心平方因子,所以可以用$o(p^})$的試除。

先用小於$p^}$的質數篩一遍,那麼剩下的數不會含有小於$p^}$的質因子。

然後就只有兩種情況,即乙個大質數和乙個質數的平方。

開根再乘判一下就行。

時間複雜度$o(np^})$。

t3:d維空間中兩點之間的路徑數:

設兩個點每一維的座標差為$a_i$,則$ans=\frac^d a_i)!}^d a_i!}$。

設$dp[i]$表示由起點到$i$的方案數,$s$為能到達$i$的點集。

$dp[1]=-1$

$dp[i]=-\sum \limits_dp[j]*calc(j,i)$

其實就是容斥。

時間複雜度$o(n^2d)$。

機房測試10 7

今天是三體的題目背景,比什麼美好的每一天好理解多了。難得的noip模擬題,滑窗解決。也可以二分區間長度,再進行統計。我的 nlogn 演算法 include include include include include define fn drop const int maxn 2e5 5 int...

NOIP2017提高A組模擬10 7 Adore

小w 偶然間見到了乙個dag。這個dag 有m 層,第一層只有乙個源點,最後一層只有乙個匯點,剩下的每一層都有k 個節點。現在小w 每次可以取反第i 1 i n 1 層和第i 1 層之間的連邊。也就是把原本從 i,k1 連到 i 1,k2 的邊,變成從 i,k2 連到 i 1,k1 請問他有多少種取...

csp模擬 模擬測試16

fdasds include using namespace std define cle a memset a,0,sizeof a inline int read const int mod 1e9 7,maxn 1e3 100 int n,m,ans 0 int f maxn maxn int...