2019.10.10題解


A. 神炎皇

考場思路:

分塊打表,復雜度O(k*n),k開500拿掉40分溜了

 


 

60分:

$$ \sum_{i=1}^{n}\sum_{j=1}^{i-1}[((i-j)*j)mod(i)==0] $$

$$ \sum_{i=1}^{n}\sum_{j=1}^{i-1}[(j*j)mod(i)==0] $$

設j*j/i=k,改為枚舉i,k,則有:

$$ \sum_{i=1}^{n}\sum_{k=1}^{i-1}[i*k==sqrt(i*k)*sqrt(i*k)] $$

即i*k為平方因子

考慮處理第二個$ \sum $的前綴和,首先要求出i去除平方因子后的x,那么$ k=x*y^2 $,O(1)求出即可

 


 

80分:

DeepinC寫了快去%他

 


 

100分:

設d=(a,b),x=a/d,y=b/d,(x,y)==1

所以有x+y|x*y*d

由更相減損術(x,y)=(x+y,x)=(x+y,y)=1,那么便有x+y|d

考慮枚舉k=x+y<=sqrt(n),x,y的點對數便有phi(x)個

d有n/(k*k)個(k*k*d'<=n),復雜度$ O(sqrt(n)) $

 

 

B. 降雷皇

簡單DP+樹狀數組即可

C. 幻魔皇

性質1:每層的黑白點的貢獻分別相同

性質2:每層黑點白點的個數也是Fibonacci數列

設g[i],f[i],h[i]分別為黑根白點,白根黑點,白根黑點的個數,根據性質2可以O(n)預處理

1>lca為白點

$$ ans[i]+=f[i]*\sum_{j=0}^{n-i-1}f[j] $$

2>lca為黑點

$$ ans[i]+=\sum_{j=i-n-2}^{min(n,i)}f[j-1]*g[i-j-1]*\sum_{k=1}^{min(n-i+j-1,n-j-1)}h[k] $$

感謝猿小鯤大嬸助我頹懂題解

ps:以后文章的心路歷程越來越少了,所以改叫題解吧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM