3874专题

【ZOJ】3874 Permutation Graph 【FFT+CDQ分治】

传送门:【ZOJ】3874 Permutation Graph 题目分析: 容易知道一个个连通块内部的标号都是连续的,否则一定会有另一个连通块向这个连通块建边,或者这个连通块向另一个连通块建边。而且从左到右左边的连通块内最大的标号小于右边连通块内最小的标号。 然后我们可以构造dp方程: dp[n]=n!−i!∗dp[n−i] \qquad \qquad dp[n] = n! - i! *

HDU 3874 树状数组 边查询边更新

树状数组的好题, 对于一对查询,边查询边更新。 那个只能出现一个这个条件就是更新 每次把上一次出现的地方的东西消灭掉,换成最新的这个地方的。 第一次做这种边查询,边更新的题目呢。 好题! HDU 上要用 I64 代替 lld 啊 真不习惯 #include <iostream>#include <stdio.h>#include <algorithm>#include <st

【ZOJ 3874】Permutation Graph

浙江省赛题。当时赛后听说是NTT+CDQ震惊了两个词一个都没有听说过。 现在突然想起来这个题,回来一看也并不是那么的不可做。比赛的时候还在打表找规律233~ 首先可以想到,因为逆序对都要连一条边,因此所有的对于任意一个部分都是下表连续的,否则答案就为0。 若下表连续的,则可以想到答案只与长度有关。 不妨设dp[i]为长度为i的连续下表的方案数,则可以得到 dp[i] = i! - sig

hdu 3874 树状数组+离线处理

http://acm.hdu.edu.cn/showproblem.php?pid=3874 跟上一题一样http://blog.csdn.net/u011026968/article/details/38542227,我相当于默写一遍上一题的代码。。。。 上次出现的问题在这里总结下: 1、lower_bound()返回的是指针,为了变为下标,需要减去数组首地址----当然这个下标是从0

hdu_3874 Necklace

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=3874 分析:线段树,区间内不重复数的和。            1、   用vis[]数组记录将要插入的数是否在线段树中,在的话就删除(在相应的位置减去这个数)原来位置的值,将这个值插到现在的位置。     如:1 1 1 2 3 5  插入第二个1的是好,第一个1在线段树[1,1]的位置,这是