上一页 1 2 3 4 5 6 7 8 9 10 ··· 66 下一页
摘要: "传送门" 解题思路 首先分块预处理,设$sum[i][j]$为第$i$块到第$j$块的逆序对数量,$g[i][j]$表示前$i$块数值$ include include include include using namespace std; const int N=50005; const in 阅读全文
posted @ 2019-02-12 19:55 Monster_Qi 阅读(164) 评论(0) 推荐(0) 编辑
摘要: "传送门" 解题思路 感觉自己设的状态非常$SB$。设$f[i][j]$表示$i,j$作为这个等差数列的末尾时的最大值,那么$f[i][j]=f[k][i]+1(a[i] a[j]=a[k] a[i])$。发现这样是$O(n^3)$的,发现这样做有用状态很少,可以拿个$map$记录一下第$i$个数差 阅读全文
posted @ 2019-02-11 19:58 Monster_Qi 阅读(192) 评论(0) 推荐(0) 编辑
摘要: "传送门" 解题思路 $trie$的一个比较经典的应用,首先把每个点到根的异或和算出,然后建一棵$trie$把所有权值插入到$Trie$中,之后枚举所有结点,在$Trie$上贪心的跑统计答案,时间复杂度$O(nlogn)$ 代码 cpp include include include using n 阅读全文
posted @ 2019-02-10 20:57 Monster_Qi 阅读(118) 评论(0) 推荐(0) 编辑
摘要: "传送门" 解题思路 出题人真会玩。。操作$2$线段树合并,然后每棵线段树维护元素个数和。对于$6$这个询问,因为乘积太大,所以要用对数。时间复杂度$O(nlogn)$ 代码 阅读全文
posted @ 2019-02-08 18:13 Monster_Qi 阅读(254) 评论(0) 推荐(0) 编辑
摘要: "传送门" 解题思路 直接按奇偶层染色是错的,$WA$了好几次,所以要树形$dp$,感觉最多$log$种颜色,不太会证。 代码 cpp include include include include include using namespace std; const int N=10005; in 阅读全文
posted @ 2019-02-08 18:10 Monster_Qi 阅读(161) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-02-03 16:17 Monster_Qi 阅读(3) 评论(0) 推荐(0) 编辑
摘要: "传送门" 解题思路 线段树合并,考虑交换两个子树时,对除这两棵子树外的其余点的逆序对不会造成影响,所以我们只需要贪心的使这两棵子树产生的逆序对最小。而考虑时我们也只需要考虑两棵子树间的逆序对数,不需要考虑每棵子树内部逆序对数,这样就非常好算了,可以线段树合并,合并的同时统计一下交换前和后的逆序对数 阅读全文
posted @ 2019-02-03 15:37 Monster_Qi 阅读(98) 评论(0) 推荐(0) 编辑
摘要: "传送门" 解题思路 首先最大值很好求,直接造出来线性基贪心即可。次大值的话就枚举哪一位跟最大值不同,然后异或上即可。 代码 cpp include include include include using namespace std; const int N=100005; inline int 阅读全文
posted @ 2019-02-02 19:50 Monster_Qi 阅读(163) 评论(0) 推荐(0) 编辑
摘要: "传送门" 解题思路 首先一定不可能有$ 1$的情况,因为新产生的黑点不会造成任何贡献,它的各个方面都是不优的。那么只需要统计一遍答案,首先要将横坐标相同的两个点看成一条竖线,纵坐标相同的点看成一条横线,然后从下往上扫描,遇到竖线的下端点时,在树状数组里$+1$,遇到竖线上端点时,$ 1$,然后遇到 阅读全文
posted @ 2019-02-01 11:22 Monster_Qi 阅读(196) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-01-30 23:42 Monster_Qi 阅读(452) 评论(1) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 66 下一页