08 2018 档案

摘要:题意:有N个人参加选举,有M个条件,每个条件给出:i和j竞选与否会只要满足二者中的一项即可。问有没有方案使M个条件都满足。 分析:读懂题目即可发现是2 SAT的问题。因为只要每个条件中满足2个中的一个即可,因此将人i拆成 点i表示不竞选,和点i+N表示竞选,根据合取式的满足条件建图跑Tarjan。 阅读全文
posted @ 2018-08-30 15:48 xiuwenL 阅读(172) 评论(0) 推荐(0)
摘要:题意:求$1 N(1\le N \le 1e18)$中,能表示成$M^k(M 0,k 1)$的数的个数 分析:正整数p可以表示成$p = m^k = m^{r k'}$的形式,其中k'为素数。枚举幂k,求出满足$p^k\le N$的最大的$p$,则对于当前的$k$,任意小于$p$的正整数$p'$,都 阅读全文
posted @ 2018-08-30 14:59 xiuwenL 阅读(115) 评论(0) 推荐(0)
摘要:题意:有2N个钥匙和M道门,每道门上有2个钥匙孔,只要打开一个即可。两个钥匙组成一个集合,共N个集合,集合中的一个钥匙被使用则另外一个钥匙会失效。求从前往后,最多能开几扇门。 分析:从集合元素为2易推断出是2 SAT的问题,但本题求最大的解决数,所以考虑二分求解。 一个集合中的钥匙a,b,若选a则必 阅读全文
posted @ 2018-08-29 13:58 xiuwenL 阅读(101) 评论(0) 推荐(0)
摘要:题意:有N 1对夫妇和1对新郎新娘要出席婚礼,这N对人要坐在走廊两侧。要求每对夫妇要坐在不同侧。有M对人有通奸关系,对于这一对人,不能同时坐在新娘对面(新娘新郎也可能和别人有通奸关系)。求如何避免冲突安排每对人。 分析:相当于选择N个坐在新娘对面且不会冲突的人。根据给定的M条关系建图,若a与b有关系 阅读全文
posted @ 2018-08-28 16:28 xiuwenL 阅读(148) 评论(0) 推荐(0)
摘要:题意:求$1\leq i \leq N,1\leq j \leq M,gcd(i,j)$的质因子个于等于p的对数。 分析:加上了对质因子个数的限制。 设$f(d):[gcd(i,j)=d]$ , $F(d):[d|gcd(i,j)]$ ,k是满足质因子 using namespace std; ty 阅读全文
posted @ 2018-08-27 15:52 xiuwenL 阅读(158) 评论(0) 推荐(0)
摘要:题意:一个N M的矩形方格,对每个整点(i,j),每次的消耗为点(0,0)到(i,j)距离上整点(不包括(i,j))个数 2+1。 分析:设$N\le M$,不满足交换即可。则所有点被扫到的次数会在有1 N共N种可能。先假设每个点只要被扫到,那贡献就是2。 枚举点被扫到的次数p,设对于被扫到p次的点 阅读全文
posted @ 2018-08-27 10:58 xiuwenL 阅读(125) 评论(0) 推荐(0)
摘要:这道题和 HDU 1695不同的是,a,c不一定是1了。还是莫比乌斯的套路,加上容斥求结果。 设$F(n,m,k)$为满足$gcd(i,j)=k(1\leq i\leq n,1\leq j\leq m)$的对数。则$ans = F(b,d,k) F(a 1,d,k) F(c 1,b,k)+F(a 1 阅读全文
posted @ 2018-08-26 22:58 xiuwenL 阅读(130) 评论(0) 推荐(0)
摘要:题意:求一个无向图的点连通度。点联通度是指,一张图最少删掉几个点使该图不连通;若本身是非连通图,则点连通度为0。 分析:无向图的点连通度可以转化为最大流解决。方法是:1.任意选择一个点作为源点;2.枚举所有与该点间没有边的点作为汇点;3.将每个点拆为入点和出点,入点到出点建一条流量为1的边;4.原本 阅读全文
posted @ 2018-08-26 19:34 xiuwenL 阅读(250) 评论(0) 推荐(0)
摘要:莫比乌斯反演的入门题,设 $F(x): gcd(i,j)\%x=0$ 的对数,$f(x): gcd(i,j)=x$的对数。 易知$$F(p) = \lfloor \frac{n}{p} \rfloor \lfloor \frac{n}{p} \rfloor$$ $F(x) = \sum_{x|d} 阅读全文
posted @ 2018-08-25 19:23 xiuwenL 阅读(338) 评论(0) 推荐(0)
摘要:给定的$p$是素数,要求给定一个加法运算表和乘法运算表,使$(m+n)^p = m^p +n^p(0 \leq m,n using namespace std; const int maxn =1e5+5; typedef long long LL; int main() { ifndef ONLI 阅读全文
posted @ 2018-08-25 18:09 xiuwenL 阅读(660) 评论(3) 推荐(1)
摘要:题目:https://www.luogu.org/problemnew/solution/P4211 相当难的一道题,其思想难以用言语表达透彻。 对于每个查询,区间[L,R]中的每个点与z的lca肯定出现在z到根节点的路径上,则路径上的点会对结果产生贡献。那么可以对每个lca向根节点边走边给路径上的 阅读全文
posted @ 2018-08-23 16:51 xiuwenL 阅读(248) 评论(0) 推荐(0)
摘要:题意:一棵树,每个点都有自己val(1 <= val <= 1e5),而任意两个点u,v可以对lca(u,v) 产生gcd(valu,valv)的贡献,求每个点能接受到来自子树贡献的最大值。 分析:一个数w和其整数数倍的数gcd值还是w。记录每个值对应树的下标,枚举1- max{val}中的数,遍历 阅读全文
posted @ 2018-08-23 12:55 xiuwenL 阅读(198) 评论(0) 推荐(0)
摘要:题意:有N个主武器(MW)和M个副武器(SW),每个武器都有自己的S值,和K个附加属性xi。要选取一对主副武器搭配,搭配后获得的性能由该公式得出: 求获得最大的性能为多少。 分析:由于|xm - xs| = max (xm - xs, xs -xm) 。所以每种武器如果选择,则其属性xi在最后贡献中 阅读全文
posted @ 2018-08-23 11:03 xiuwenL 阅读(269) 评论(0) 推荐(0)
摘要:题意:有N个数的集合,其中选出若干个数组成一个子集,要求这个子集中的任意两个数a,b都不能通过a=k*b得到,其中k是一个素数。求这个子集最大的size。 分析:集合中任意两数的关系是二者之间是否之差一个质因子,那么对于这种关系,本题要求的是N个点的最大独立集。|最大独立集| = 点数 - |二分图 阅读全文
posted @ 2018-08-22 21:12 xiuwenL 阅读(946) 评论(0) 推荐(0)
摘要:题意:M个影片,其属性有开始时间S,结束时间T,类型op和权值val。有K个人,每个人可以看若干个时间不相交的影片,其获得的收益是这个影片的权值val,但如果观看的影片相邻为相同的属性,那么收益要减少W。每个影片只能被一个人看。求所有人能获得的收益值之和的最大值。 分析:因为人数不定,所以贪心和dp 阅读全文
posted @ 2018-08-22 18:18 xiuwenL 阅读(213) 评论(0) 推荐(0)
摘要:题意:统计区间[L,R]中满足模7余0,且对所有N个数对(mi,ri)使得 x != ri (mod mi) 的x的数量。 分析:x == ri (mod mi)可以转化为模线性方程。枚举满足k(1<=k<=n)个线性方程构成方程组的解在区间[L,R]中的个数。需要减去这些数目,所以根据容斥原理,奇 阅读全文
posted @ 2018-08-22 11:46 xiuwenL 阅读(136) 评论(0) 推荐(0)
摘要:题意:有N个盒子,每个盒子里有fi 朵花,求从这N个盒子中取s朵花的方案数。两种方法不同当且仅当两种方案里至少有一个盒子取出的花的数目不同。 分析:对 有k个盒子取出的数目超过了其中的花朵数,那么此时的方案数根据放球模型是C(N+t-1,N-1),其中t是s-(k个盒子超过其数目的最小数量)。显然t 阅读全文
posted @ 2018-08-21 17:07 xiuwenL 阅读(171) 评论(0) 推荐(0)
摘要:题意:一个人在坐标A,要前往坐标B的位置。可以往左或往右走a,b,a+b个单位,求到达B的最小步数。 分析:扩展欧几里得算法求解线性方程的套路不变。令C=fabs(A-B),c = a+b, 扩展gcd分别求 ax+by=C ; ax+cy = C : bx+cy = C的最小|x|+|y|。求mi 阅读全文
posted @ 2018-08-21 15:45 xiuwenL 阅读(132) 评论(0) 推荐(0)
摘要:题意:初始序列[1..N](1<=N<=4e5),支持两种操作:1.求区间[x,y]内与p互素的数之和; 2。将x位置的数变为c。 分析:很容易把人骗到线段树的思维中,而实际上操作2单点的修改可以用map去记录,之后统计和的时候再去检查是否有给定区间内的数被修改。 区间[x,y]内与p互素的数之和, 阅读全文
posted @ 2018-08-21 10:41 xiuwenL 阅读(115) 评论(0) 推荐(0)
摘要:题意:有一个N*M的像素图,现在问最少能用几块1*k的木条覆盖所有的 * 点,k为>=1的任意值。 分析:和小行星那题很像。小行星那题是将一整行(列)看作一个点,但本题一行或一列内可能有多个连通块。所以先根据像素图统计出总的行列连通块的个数。 将行连通块视作X部;列连通块视作Y部;连接一对行列连通块 阅读全文
posted @ 2018-08-20 21:17 xiuwenL 阅读(116) 评论(0) 推荐(0)
摘要:题意:求区间1<=i<=b与区间1<=j<=d之间满足gcd(i,j) = k 的数对 (i,j) 个数。(i,j)与(j,i) 算一个。 分析:gcd(i,j)=k可以转化为gcd(i/k,j/k)=1。枚举每个1<=i<=b/k 的 i,用容斥原理统计区间[1,d]中与其互素的个数。需要预处理筛 阅读全文
posted @ 2018-08-20 20:57 xiuwenL 阅读(192) 评论(0) 推荐(0)
摘要:题意:求[1,N-1]中有多少能被集合M中的任意一个数整除。 分析:运用容斥原理解决。二进制枚举N-1中能被1个,2个...M个数整除的个数,奇加偶减。 每次N-1除以若干个数的lcm得到区间[1,N-1]中能被这若干个数整除的个数。 注意M中有可能出现0,0是不能整除任何数的,跳过即可。 阅读全文
posted @ 2018-08-20 10:28 xiuwenL 阅读(125) 评论(0) 推荐(0)
摘要:题意:一个N*M的矩形,每个点初始都是白色的,有Q次操作,每次操作将以(x,y)为圆心,r为半径的区域涂成黑点。求最后剩余白色点数。 分析:对每行,将Q次操作在该行的涂色视作一段区间,那么该行最后的白色点数即列数-区间覆盖的总长度。这就转化成了扫描线的问题。 阅读全文
posted @ 2018-08-19 12:02 xiuwenL 阅读(203) 评论(0) 推荐(0)
摘要:题意:N个点,给出M条两个点u、v,满足u比值小。给这N个点编号,要求排在前的比排在后的质量小,且编号不重复。求每点能得到最小编号的编号方法。 分析:用拓扑排序求解。 用优先队列来存待标记的点,编号大的点优先出队列,然后从大到小依次标记(编号小的优先肯定是错的,当时wa死了)。 若求不出拓扑排序则答 阅读全文
posted @ 2018-08-18 16:25 xiuwenL 阅读(138) 评论(0) 推荐(0)
摘要:题意:树上每个结点有自己的颜色,支持两种操作:1.将u到v路径上的点颜色修改为c; 2.求u到v路径上有多少段不同的颜色。 分析:树剖之后用线段树维护区间颜色段数。区间查询区间修改。线段树结点中维护的有:段数,左端点颜色,右端点颜色和懒惰标记。 当区间合并时,若左孩子的右端点颜色和右孩子的左端点颜色 阅读全文
posted @ 2018-08-18 12:26 xiuwenL 阅读(243) 评论(0) 推荐(0)
摘要:链接:https://acm.ecnu.edu.cn/contest/103/problem/D/ 题意:给你一棵无向边连接的树,边的权值可以任意互换。有m次运输,每次的花费是点u到v路径上边的权值和。 必须在全部运输开始前安排好边的权值,求m次运输总的最小花费。 分析:肯定是边被覆盖次数越多的边优 阅读全文
posted @ 2018-08-17 22:59 xiuwenL 阅读(284) 评论(0) 推荐(0)
摘要:题意:一张有向图,每条边上都有wi个蘑菇,第i次经过这条边能够采到w-(i-1)*i/2个蘑菇,直到它为0。问最多能在这张图上采多少个蘑菇。 分析:在一个强连通分量内,边可以无限次地走直到该连通块内蘑菇被采完为止,因此每个强连通分量内的结果是确定的。 设一条边权值为w,最大走过次数为t,解一元二次方 阅读全文
posted @ 2018-08-17 19:05 xiuwenL 阅读(292) 评论(0) 推荐(0)
摘要:题意:也是树链剖分的裸题,支持三种操作:1.修改一条边的权值;2.将点u,v路径上的边都取相反数;3.查询u,v路径上边的最大值。 老方法,用边的后继点表示边。这样的做法需要注意在查询和修改时,当两点回到一条链上之后,需要操作的区间不再是id[u]到id[v],而是id[son[u]]到id[v]。 阅读全文
posted @ 2018-08-17 15:21 xiuwenL 阅读(116) 评论(0) 推荐(0)
摘要:题意:有一棵树,每条边给定初始权值。一个人从s点出发。支持两种操作:修改一条边的权值;求从当前位置到点u的最短路径。 分析:就是在边可以修改的情况下求树上最短路。如果不带修改的话,用RMQ预处理LCA即可。 在静态版本的LCA问题上,用树状数组维护一条边在dfs序中表示的一段区间。为什么是一段区间, 阅读全文
posted @ 2018-08-17 10:50 xiuwenL 阅读(103) 评论(0) 推荐(0)
摘要:树上路径区间更新,单点查询。 线段树和树状数组都可以用于本题的维护。 线段树: 树状数组: 阅读全文
posted @ 2018-08-17 08:38 xiuwenL 阅读(155) 评论(0) 推荐(0)
摘要:题意:给一张无向图,有M次加边的操作,每次操作之后输出割边的数目。 分析:显然,割边肯定出现在任意一棵生成树中,用数组f[u]记录点u在dfs树上的父亲节点,用这种方式就可以快速地找出dfs树上的任意一条边。在u,v之间加边后,原来的减去的割边肯定是u,v在dfs树上的最短路径中出现。那么每次操作之 阅读全文
posted @ 2018-08-16 15:05 xiuwenL 阅读(161) 评论(0) 推荐(0)
摘要:题意:初始有一个序列[1,2,...N],一次操作可以将任意两个位置的值互换,Petr做3*n次操作;Alxe做7*n+1次操作。给出最后生成的新序列,问是由谁操作得到的。 分析:一个序列的状态可以归为:由原序列操作奇数次得到(简称奇序列);和操作偶数次(偶序列)得到。显然奇序列中,逆序对的个数为奇 阅读全文
posted @ 2018-08-16 14:07 xiuwenL 阅读(225) 评论(0) 推荐(0)
摘要:题意:有N个王子,每个王子有任意个喜欢的妹子,巫师会给出一个方案:每个妹子都嫁给一个王子。但是国王希望知道:每个王子能在哪些妹子中择偶而不影响其他王子择偶。 分析:设王子为x部,妹子为y部,假设有匹配xi与yi和xj和yj,当xi中意yj且xj中意yi时。那么xi,xj改变对象不会影响最大匹配数。可 阅读全文
posted @ 2018-08-16 13:17 xiuwenL 阅读(130) 评论(0) 推荐(0)
摘要:题意:N个高度为hi的果子,摘果子的个数是从位置1开始从左到右的严格递增子序列的个数。有M次操作,每次操作对初始序列修改位置p的果子高度为q。每次操作后输出修改后能摘到得数目。 分析:将序列分为左、右两部分,每次修改之后的结果是p左部到p递增的子序列长度,加上右部第一个高度大于max(q,p位置之前 阅读全文
posted @ 2018-08-16 09:53 xiuwenL 阅读(169) 评论(0) 推荐(0)
摘要:题意:问有多少种不重复的m个数,值在[0,n-1]范围内且和为k。 分析:当k<=n-1时,肯定不会有盒子超过n,结果是C(m+k-1,k);当k>m*(n-1)时,结果是0。 剩下的情况,可以转化为组合数学中的放球问题,球与球之间没有区别,盒子之间有区别且每个盒子不超过n-1个球。 根据容斥原理得 阅读全文
posted @ 2018-08-15 18:56 xiuwenL 阅读(334) 评论(0) 推荐(0)
摘要:题意:找出1~2^64-1中 能写成至少两个数的幂形式的数,再按顺序输出 分析:只有幂是合数的数才是符合要求的。而幂不会超过64,预处理出64以内的合数。 因为最小的合数是4,所以枚举的上限是2的16次方。对其中的每个数以4为幂的枚举下限,并根据合数表递增。而递增的上界是一个数所能达到的最大幂次。可 阅读全文
posted @ 2018-08-15 11:16 xiuwenL 阅读(216) 评论(0) 推荐(0)
摘要:给定递推式: 求Fn. 分析:给出的公式可以用快速矩阵幂运算得到,但 P/n 整除对于不同的i,值是不同的。 可以根据P将3-n分成若干块,每块中P整除n的值是相同的。分块的时候要注意判断。 将每块的快速幂结果累乘得到结果。 阅读全文
posted @ 2018-08-14 20:25 xiuwenL 阅读(395) 评论(2) 推荐(0)
摘要:这道题相当于将这两题结合: http://poj.org/problem?id=2763 http://codeforces.com/gym/101808/problem/K 题意:有N各点N条边的带权无向图(相当于一棵树多了一条边),两种操作:修改一条边的权值;求两点间的最短路径。 分析:将任意一 阅读全文
posted @ 2018-08-13 18:45 xiuwenL 阅读(445) 评论(0) 推荐(0)
摘要:题意:N个点M条边的无向图,每条边都有属于自己的编号,如果一条路径上的边编号都相同,那么花费仅为1;改变至不同编号的路径,花费加1,无论这个编号之前是否走过。 分析:记录每个点的最小花费,再用set维护这个最小花费对应的前驱边的编号,可能有多个不同的前驱编号。如果当前状态可以更新点最小花费,那么将s 阅读全文
posted @ 2018-08-13 18:21 xiuwenL 阅读(959) 评论(5) 推荐(1)
摘要:题意:有N个城市,M条双向道路连接两个城市,整个图保证连通。有K种物品,但每个城市只有一种,现在它们都需要S种物品来举办展览,可以去其他城市获取该城市的物品,花费是两城市之间的最短路径长度。求每个城市举办展览的最小花费。 分析:去某个城市获取第i种物品的最小距离,这个问题可以逆向求解。把拥有第i种物 阅读全文
posted @ 2018-08-13 10:45 xiuwenL 阅读(306) 评论(0) 推荐(0)
摘要:题意:将一个字符串上的n个字符视作点,给出m条有向边,求图中路径上最长出现的相同字母数。 分析:首先如果这张图中有环,则可以取无限大的字符数,在求拓扑排序的同时可以确定是否存在环。 之后在拓扑排序的结果上分别对26个字母dp求出最大结果,并取最大值(一定要分别对每个字母dp,否则会出现问题)。 阅读全文
posted @ 2018-08-13 10:24 xiuwenL 阅读(253) 评论(0) 推荐(0)
摘要:题意:给一个N,和公式 求G(N)。 分析:设F(N)= gcd(1,N)+gcd(2,N)+...gcd(N-1,N)。则 G(N ) = G(N-1) + F(N)。 设满足gcd(x,N) 值为 i 的且1<=x<=N-1的x的个数为 g(i,N)。 则F(N) = sigma{ i * g( 阅读全文
posted @ 2018-08-11 11:06 xiuwenL 阅读(141) 评论(0) 推荐(0)
摘要:题意:有N家家店,每家店都对K种货物有需求;同时有M家仓库,对K钟货物有供应。对于每种货物,每个仓库送至每家店都有自己的单位费用。求满足所有店所有货物的最小费用 分析:对于每一种货物,如果总需求大于总费用,那么无解的;否则可以用KM匹配求解每一种货物的最小费用。 因为KM求的是最优匹配,所以建图的时 阅读全文
posted @ 2018-08-10 18:56 xiuwenL 阅读(325) 评论(0) 推荐(0)
摘要:题意:求阶乘尾部有Q(1 ≤ Q ≤ 108)个0的最小N 分析:如果给出N,然后求N!尾部0的个数的话,直接对N除5分解即可(因为尾部0肯定是由5*2构成,那么而在阶乘种,2的因子个数要比5少,所以求阶乘中因子5的个数就是尾部0的个数)。本题是给出尾部0的个数,逆推N。如果从小到大枚举的话,肯定会 阅读全文
posted @ 2018-08-10 11:19 xiuwenL 阅读(148) 评论(0) 推荐(0)
摘要:题意:求有多少对数对(i,j)满足lcm(i,j) = n,1<=i<=j, 1<=n<=1e14。 分析:根据整数的唯一分解定理,n可以分解为(p1^e1)*(p2^e2)*(p3^e3)*...*(pn^en)。其中pi是每个不同的素因子。 同样可将 i 和 j 分解为(a1^c1)*(a2^c 阅读全文
posted @ 2018-08-09 13:24 xiuwenL 阅读(254) 评论(0) 推荐(0)
摘要:求确定身份的人的个数。 只能确定狼的身份,因为只能找到谁说了谎。但一个人是否是民,无法确定。 将人视作点,指认关系视作边,有狼边和民边两种边。 确定狼的方法只有两种: 1. 在一个仅由一条狼边组成的环中,狼边指向的那个点必定是狼。 2. 环外指认铁狼为民的也必定是狼。 所以用原图找环求情况1中的铁狼 阅读全文
posted @ 2018-08-08 20:34 xiuwenL 阅读(144) 评论(0) 推荐(0)
摘要:题干中给出函数公式: 其中pi为n的每个素因数,ei为其个数。设该函数为F(x),其意义为x的约数之和。问在1-n中有多少x,令F(x)为偶数。 分析:设f(p)为(p^(e+1)-1)/(p-1)。若F(x)为奇数,则任意的f(pi)都为奇数。 f(p)还可以写成:f(p)= (1+p^1+p^2 阅读全文
posted @ 2018-08-08 10:44 xiuwenL 阅读(125) 评论(0) 推荐(0)
摘要:题意:给N个数,求对每个数ai都满足最小的phi[x]>=ai的x之和。 分析:先预处理出每个数的欧拉函数值phi[x]。对于每个数ai对应的最小x值,既可以二分逼近求出,也可以预处理打表求。 阅读全文
posted @ 2018-08-07 19:06 xiuwenL 阅读(144) 评论(0) 推荐(0)
摘要:题意:给N个点和Q条选项,有三种类型的选项:1.从u到v花费w修建一条路;2.从u到下标区间为[L,R]的点花费w修建一条路; 3.从下标区间为[L,R]的点到u花费w修建一条路。 然后求起点s到其余点的最短路。 如果直接暴力建图,建图本身就会超时。对于区间上的操作,考虑用线段树解决。线段树上的结点 阅读全文
posted @ 2018-08-07 16:18 xiuwenL 阅读(399) 评论(0) 推荐(0)
摘要:题意:给出u,v,p,对u可以进行三种变化: 1.u=(u+1)%p ; 2.u = (u+p-1)%p; 3.u = 模p下的逆元。问通过几步可以使u变成v,并且给出每一步的操作。 分析:朴素的bfs或dfs会超时或炸栈,考虑用双向bfs头尾同时搜。用map存每个数的访问状态和对应的操作编号,正向 阅读全文
posted @ 2018-08-07 09:19 xiuwenL 阅读(528) 评论(0) 推荐(0)
摘要:题目中没有明说会爆int和longlong 的精度,但是在RNG函数中不用unsigned int 会报精度,导致队友debug了很久... 根据每次生成的l,r,v对区间更新m次,然后求 i*ai的异或和。挺裸的线段树,只要ai<v就更新ai。在线段树结点中维护区间最小值,每次更新时,如果区间最小 阅读全文
posted @ 2018-08-07 09:10 xiuwenL 阅读(179) 评论(0) 推荐(0)
摘要:题意:给定数N(1<=N<=1e9),k(1<=k<=1e9),求对N的任意两位数交换至多k次能得到的最小与最大的数,每一次交换之后不能出现前导零。 因为N最多只有10位,且给了2500ms,当时觉得可以枚举全排列,再判断前导零和最少交换次数。 最少交换次数是(每个循环节中的个数-1)之和。 当时想 阅读全文
posted @ 2018-08-06 20:45 xiuwenL 阅读(251) 评论(0) 推荐(0)
摘要:题意:求用N(1<=N<=100)个骰子掷出M(1<=M<=600)的概率 分析:直接求概率可能出现6^100次方,会爆精度。可以用一个数组dp[i][j]记录用i个骰子掷出j的概率。i为0时无论j是多少,概率都是0。i为1时,j从1-6的概率都是1/6。其余可以递推得到 dp[i][j] = 0 阅读全文
posted @ 2018-08-05 11:10 xiuwenL 阅读(127) 评论(0) 推荐(0)
摘要:题意:有N个人被分为了三组,其中有一个人是开了挂的。同组的人的关系是‘=’,不同组的人关系是‘<’或'>',但是开了挂的人可以给出自己和他人任意的关系。现在要根据M条关系找出这个开了挂的人。M条关系中可能有多组异常信息。可能会有多个人是外挂,也可能找不出外挂,如果能找到,则要输出其编号X和最早能确定 阅读全文
posted @ 2018-08-04 11:12 xiuwenL 阅读(151) 评论(0) 推荐(0)
摘要:题意:有N个星球,每个星球有自己的武力值。星球之间有M条无向边,连通的两个点可以相互呼叫支援,前提是对方的武力值要大于自己。当武力值最大的伙伴有多个时,选择编号最小的。有Q次操作,destroy为切断连接两点的边,query为查询某星球能不能向它人呼叫支援。 还是需要离线逆向并查集求解。思路和HDU 阅读全文
posted @ 2018-08-03 18:29 xiuwenL 阅读(148) 评论(0) 推荐(0)
摘要:题意:有N个点M条边的无向图,每次删除一条边直到删完为止,求每一次删边操作之后,连通块的个数。 M<=1e5,N<=1e4。如果每次删边之后暴力求连通块肯定超时。换个思路,对一个N阶零图,我们用并查集表示每一个点为独立的连通块,然后每次加边后检查边连接的两点是否已在一个连通块中,以此求出每次加边后的 阅读全文
posted @ 2018-08-03 15:14 xiuwenL 阅读(162) 评论(0) 推荐(0)
摘要:题意:有序列A[1..N],其元素值为0或1。有M条信息,每条信息表示区间[L,R]中1的个数为偶数或奇数个,但是可能有错误的信息。求最多满足前多少条信息。 分析:区间统计的带权并查集,只是本题中路径的运算是用模2或异或逻辑。而且需要注意的是,本题N可达1e9,但M只有5000,所以最多出现的坐标只 阅读全文
posted @ 2018-08-03 10:42 xiuwenL 阅读(132) 评论(0) 推荐(0)
摘要:题意:有长度为N的序列A,每个值都位置。给出M条信息:A[L...R]之和为S。但是不一定每一条都是正确的,求出错误的信息个数。 分析:经典的带权并查集问题。一个区间内的和可以转化为右端点到其父亲结点的距离,而父亲节点是L-1。如果R点和L-1点本身已经在一个集合内,那么他们之间的矢量关系应该满足d 阅读全文
posted @ 2018-08-02 16:35 xiuwenL 阅读(211) 评论(0) 推荐(0)
摘要:题意: 给定序列A[1..L],二维数组M的规律由以上代码给出。Q个查询,每次给x0,y0,x1,y1 (0≤x0≤x1≤1e8,0≤y0≤y1≤1e8)四个数,求以(x0,y0)和(x1,y1)两个点为端点的矩形中数的和。 分析:根据推导可得,M[i][j] = M[i+2L][j] + M[i] 阅读全文
posted @ 2018-08-02 12:14 xiuwenL 阅读(226) 评论(0) 推荐(0)
摘要:题意:计算C(n,0)到C(n,m)的和,T(T<=1e5)组数据。 分析:预处理出阶乘和其逆元。但如果每次O(m)累加,那么会超时。 定义 S(n, m) = sigma(C(n,m))。有公式:S(n,m) = S(n,m-1) +C(n,m)以及S(n,m) = 2*S(n-1,m) - C( 阅读全文
posted @ 2018-08-01 19:37 xiuwenL 阅读(443) 评论(0) 推荐(0)
摘要:题意:在一张图中最少可以添加几条边,使其中任意两点间都有两条不重复的路径(路径中任意一条边都不同)。 分析:问题就是最少添加几条边,使其成为边双连通图。可以先将图中所有边双连通分量缩点,之后得到的就是一棵树。 那么问题又转化成为:在这棵树上添加几条边使其成为一个双连通分量。答案是缩点之后(leaf+ 阅读全文
posted @ 2018-08-01 10:59 xiuwenL 阅读(142) 评论(0) 推荐(0)
摘要:题意:有N个人要参加会议,围圈而坐,需要举手表决,所以每次会议都必须是奇数个人参加。有M对人互相讨厌,他们的座位不能相邻。问有多少人任意一场会议都不能出席。 分析:给出的M条关系是讨厌,将每个人视作点,在没有讨厌关系的人之间连边。 问题中很重要的一点是:任意一场会议都不能参加。能够参加某一场会议就意 阅读全文
posted @ 2018-08-01 10:47 xiuwenL 阅读(152) 评论(0) 推荐(0)