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...