摘要: 这里简要记一下差分约束。所谓差分约束,指的是由a-b>=c这种不等式组组成的约束系统。一般的线性规划问题可以用单纯形法解决,但是这种特殊情况可以借助最短路算法解决。记源点到v的最短路为d[v],从u到v的最短路为d(u,v)。差分约束的最短路做法基于最短路的以下特点:对于没有负圈的图,任意两点d[u... 阅读全文
posted @ 2015-07-16 23:44 PlusSeven 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 题目:给出若干数,然后若干组询问,每次询问一个数,如果这个数存在,那么删去这个数,如果没有,添加这个数,每次询问后输出此时已经有的数中互质的有多少对。思路:利用容斥原理求出已经有的数中与正在询问的数不互质的数的数目。先对所有数进行质数分解。然后通过含有的不同质数对所有数字进行分类。之后就可以用容斥原... 阅读全文
posted @ 2015-07-13 14:20 PlusSeven 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 1 CF 546D:(数论,dp题意:实际上是统计小于5e6范围内所有数字的质因子数目。解法:先用筛法求出范围内所有素数(开始t了一次以为是因为裸的素数筛太慢,后来换成线性筛还是不行,,结果是因为脑残用了cincout)。然后就是dp的思想,任何一个合数的质因子数目等于它本身除以一个质因子之后的数... 阅读全文
posted @ 2015-07-06 23:29 PlusSeven 阅读(225) 评论(0) 推荐(0) 编辑
摘要: CodeForces 555C(set or 线段树)题目大意:给一个巧克力,把副对角线(参照线代)下方的先都吃掉,然后每次给出一个询问,从对角线出发,要么向上,要么向左,吃到已经吃过的地方或者边缘为止,输出每次能吃多少小格巧克力。思路:官方题解是线段树做得(我暂时还不会),然后在网上找到了一个超级... 阅读全文
posted @ 2015-07-05 17:41 PlusSeven 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 题意:给出n个人,这n个人要么相互喜欢,要么相互憎恨,现在给出其中一部分关系,要求完成剩下的关系,使其满足以下关系:不能有三个人互相都是憎恨,也不能有三个人有两个爱着其中一个人而这两个人相互憎恨。问在给定条件下剩下的关系有多少种指定方法。思路:首先,相互喜欢的联通块是可以直接合并成一个点的,因为其他... 阅读全文
posted @ 2015-07-04 23:09 PlusSeven 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一个图,问最少加多少条边能连出一个奇圈,还要求输出连边的方法种数。思路:比赛的时候看了一下是图相关的就没多想,也没时间了,其实挺简单的,如果已经有奇圈,那么直接输出0 1,如果最多有两个点相连,那么就是(n-2)×m,就是每条边和另外的任意点连两条边,要么就是没有边,这个就是直接输出结果。... 阅读全文
posted @ 2015-07-02 00:09 PlusSeven 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题意:桌子有若干个腿,只有长度最长的腿的数目是所有腿的数目的一半以上的时候才是稳定的,去掉每个腿有一个花费,现在问最小花费是多少思路:注意这个题有个关键点就是d的值非常小,只有200,实际上这个问题可以总结为下面这个问题:前x个数中最小的k个数的和是多少?只要解决这个问题,本题也就迎刃而解了,而这个... 阅读全文
posted @ 2015-07-01 02:24 PlusSeven 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 大意:有若干岛屿分布在坐标轴上,每个岛屿给出左右边界,桥两端必须架在岛上,现在求一个方案在这些岛屿上架桥。思路:比赛的时候abc做得好慢。。。看d的时候一下就发现是做过的题,然而没时间写(事实证明我写了1个多小时。。),对于每一个岛屿间隙,都有一个桥的可行长度范围,记为,i,r,则把桥的长度升序排列... 阅读全文
posted @ 2015-06-30 22:23 PlusSeven 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题意:把一个排列表示成若干环,这些环内的元素逆序排列,各个环以最大元素为关键字顺序排列,求使排列的环表示和原排列一样的第k个排列。思路:斐波那契数列,因为必须是两位相邻,所以输出也不难。#include#include#include#include#include#include#include#... 阅读全文
posted @ 2015-06-27 19:23 PlusSeven 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 1. poj 1759题意还是需要看原题,不好描述。实际上这个题只需要注意一点,就是把关系式改成递推式,然后就可以发现第二项完全决定了后面的位置,所以二分第二项的高度即可。import java.util.*;import java.io.*;import java.math.*;public cl... 阅读全文
posted @ 2015-06-18 18:44 PlusSeven 阅读(191) 评论(0) 推荐(0) 编辑