摘要: 题目链接 题目思路 设$dp[i][j]$表示$a[i]$走到二进制第$j$位为$1$的数的最近点的在哪里 然后转移求解即可,比较巧妙 代码 #include<bits/stdc++.h> #define fi first #define se second #define debug cout<< 阅读全文
posted @ 2021-08-06 21:01 hunxuewangzi 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 一个重要结论就是$x$的因子个数最多$\sqrt[ 3]{x }$ 然后再随便容斥下即可 代码 #include<bits/stdc++.h> #define fi first #define se second #define debug cout<<"I AM HERE"<< 阅读全文
posted @ 2021-08-06 17:10 hunxuewangzi 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 设$dp[i][j]$表示由$i$个$1$和$j$个$-1$组成的前缀和总和 这样可以成立的原因是我们固定地认为每当新加入一个数的时候将该数插入序列的最前方,这种设定仍然保证了动 规涵盖所有可能的排列。 $dp[i][j]=dp[i-1][j]+C(i+j-1,i-1)+dp[i 阅读全文
posted @ 2021-08-06 15:54 hunxuewangzi 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 比较经典的求贡献问题 求出每个点子树内和子树外和他相距奇数和偶数的点 子数外的有点小细节 然后分类讨论讨论求贡献 代码 #include<bits/stdc++.h> #define fi first #define se second #define debug cout<<" 阅读全文
posted @ 2021-08-06 10:31 hunxuewangzi 阅读(38) 评论(0) 推荐(0) 编辑