【最大流/最小割】BZOJ 1001: [BeiJing2006]狼抓兔子

题目描述现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形:左上角点为(1,1),右下角点为(N,M)(上图中N=4,M=5).有以下三种类型的道路 1:(x,y)<==>(x+1,y) 2:(x,y)<==>(x,y+1) 3:(x,y)<==>(x+1,y+1) 道路上的权值表示这条路上最多能够通过的兔子数,道路是无向的. 左上角和右下角为兔子的两个窝,开始时所有的兔子都聚集在左上角(1,1)的窝里,现在它们要跑到右下解- 阅读剩余部分 -

BZOJ 1968: [Ahoi2005]COMMON 约数研究

题目描述输入只有一行一个整数 N(0 < N < 1000000)。输出只有一行输出,为整数M,即f(1)到f(N)的累加和。样例输入3样例输出5题解直接想每个数的因数是不好想的,这道题可以转换成倍数来想。假定一共有 n 的数。对于一个数 i ,可以作为它的倍数的因数,这样的倍数有多少个呢,显然是 n / i 个。所以最终的答案就是 sigma(n / i)。非常的显然,这样我们就统计到了所有的因数的个数,保证不重不漏。代码#include <cstdio> using namespace std; int main() { int n; s- 阅读剩余部分 -

BZOJ 2456: mode

题目描述给你一个n个数的数列,其中某个数出现了超过 n/2 次即众数,请你找出那个数。输入第1行一个正整数n。第2行n个正整数用空格隔开。输出一行一个正整数表示那个众数。样例输入53 2 3 1 3样例输出3提示100%的数据,n<=500000,数列中每个数<=maxlongint。题解一道思维题,代码很短,做法可以直接看代码。简单证明待更新...

BZOJ 2427: [HAOI2010]软件安装

题目描述现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi。我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件的价值尽可能大(即Vi的和最大)。但是现在有个问题:软件之间存在依赖关系,即软件i只有在安装了软件j(包括软件j的直接或间接依赖)的情况下才能正确工作(软件i依赖软件j)。幸运的是,一个软件最多依赖另外一个软件。如果一个软件不能正常工作,那么它能够发挥的作用为0。我们现在知道了软件之间的依赖关系:软件i依赖软件Di。现在请你设计出一种方案,安装价值尽量大的软件。一个软件只能被安装一次,如果一个软件没有依赖则Di=0,这- 阅读剩余部分 -

BZOJ 1699: [Usaco2007 Jan]Balanced Lineup排队

题目描述每天,农夫 John 的N(1 <= N <= 50,000)头牛总是按同一序列排队. 有一天, John 决定让一些牛们玩一场飞盘比赛. 他准备找一群在对列中为置连续的牛来进行比赛. 但是为了避免水平悬殊,牛的身高不应该相差太大. John 准备了Q (1 <= Q <= 180,000) 个可能的牛的选择和所有牛的身高 (1 <= 身高 <= 1,000,000). 他想知道每一组里面最高和最低的牛的身高差别. 注意: 在最大数据上, 输入和输出将占用大部分运行时间.输入第一行: N 和 Q.第2..N+1行: 第i+1行是第- 阅读剩余部分 -

BZOJ 2243: [SDOI2011]染色

题目描述给定一棵有n个节点的无根树和m个操作,操作有2类:1、将节点a到节点b路径上所有点都染成颜色c;2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。请你写一个程序依次完成这m个操作。输入第一行包含2个整数n和m,分别表示节点数和操作数;第二行包含n个正整数表示n个节点的初始颜色下面 行每行包含两个整数x和y,表示x和y之间有一条无向边。下面 行每行描述一个操作:“C a b c”表示这是一个染色操作,把节点a到节点b路径上所有点(包括a和b)都染成颜色c;“Q a b”表示这是一个询问操- 阅读剩余部分 -

计蒜客 习题:蒜头君的购物袋 1

前言我的 DP 好弱啊。题目描述给你一个袋子,容量为 V。再给你一堆物品,每个容量为 Vi 。求袋子剩余空间最小是多少。输入格式第一行输入一个整数 V ,表示购物袋的容量。第二行输入一个整数 N,表示蒜头君购买的 n 件物品。接下来输入 n 行,每行输入一个整数 表示每个物品的体积输出格式一个整数,最小空间题解这是一道裸的01背包题,把每个物品看做价值和重量都是一样的,这样就转换到了求最大价值上,直接跑一遍背包算出,由于价值和容量一样,所以最大价值就是最大占的容量,用总容量减去求得的值就是答案了。代码1 未压维#include <cstdio> #include- 阅读剩余部分 -

BZOJ 1823: [JSOI2010]满汉全席

题目描述满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中。由于菜色众多而繁杂,只有极少數博学多闻技艺高超的厨师能够做出满汉全席,而能够烹饪出经过专家认证的满汉全席,也是中国厨师最大的荣誉之一。 世界满汉全席协会是由能够料理满汉全席的专家厨师们所组成,而他们之间还细分为许多不同等级的厨师。为了招收新进的厨师进入世界满汉全席协会,将于近日举办满汉全席大赛,协会派遣许多会员当作评审员,为的就是要在參赛的厨师之中,找到满汉料理界的明日之星。 大会的规则如下:每位參赛的选手可以得到n 种材料,选手可以自由选择用满式或是汉式料理将材- 阅读剩余部分 -

BZOJ 1671: [Usaco2005 Dec]Knights of Ni 骑士

题目描述贝茜遇到了一件很麻烦的事:她无意中闯入了森林里的一座城堡,如果她想回家,就必须穿过这片由骑士们守护着的森林.为了能安全地离开,贝茜不得不按照骑士们的要求,在森林寻找一种特殊的灌木并带一棵给他们.当然,贝茜想早点离开这可怕的森林,于是她必须尽快完成骑士们给的任务,贝茜随身带着这片森林的地图,地图上的森林被放入了直角坐标系,并按x,y轴上的单位长度划分成了W×H(1≤W,H≤1000)块,贝茜在地图上查出了她自己以及骑士们所在的位置,当然地图上也标注了她所需要的灌木生长的区域.某些区域是不能通过的(比如说沼泽地,悬崖,以及食人兔的聚居地).在没有找到灌木之前,贝茜不能通- 阅读剩余部分 -

【Tarjan】BZOJ 1654: [Usaco2006 Jan]The Cow Prom 奶牛舞会

题目描述约翰的N(2≤N≤10000)只奶牛非常兴奋,因为这是舞会之夜!她们穿上礼服和新鞋子,别上鲜花,她们要表演圆舞.只有奶牛才能表演这种圆舞.圆舞需要一些绳索和一个圆形的水池.奶牛们围在池边站好,顺时针顺序由1到N编号.每只奶牛都面对水池,这样她就能看到其他的每一只奶牛.为了跳这种圆舞,她们找了M(2≤M≤50000)条绳索.若干只奶牛的蹄上握着绳索的一端,绳索沿顺时针方绕过水池,另一端则捆在另一些奶牛身上.这样,一些奶牛就可以牵引另一些奶牛.有的奶牛可能握有很多绳索,也有的奶牛可能一条绳索都没有对于一只奶牛,比如说贝茜,她的圆舞跳得是否成功,可以这样检验:沿着她牵引的- 阅读剩余部分 -

BZOJ 1051: [HAOI2006]受欢迎的牛

题目描述  每一头牛的愿望就是变成一头最受欢迎的牛。现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎。 这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认为牛C受欢迎。你的任务是求出有多少头牛被所有的牛认为是受欢迎的。输入  第一行两个数N,M。 接下来M行,每行两个数A,B,意思是A认为B是受欢迎的(给出的信息有可能重复,即有可能出现多个A,B)输出  一个数,即有多少头牛被所有的牛认为是受欢迎的。样例输入3 31 22 12 3样例输出1提示100%的数据N<=10000,M<=50000题解一头牛喜欢另一头牛,就连一条边。- 阅读剩余部分 -

BZOJ 1588: [HNOI2002]营业额统计

题目描述营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出现了问题。经济管理学上定义了一种最小波动值来衡量这种情况: 该天的最小波动值 当最小波动值越大时,就说明营业情况越不稳定。 而分析整个公司的从成立到现在营业情况是否稳定,只需要把每一天的最小- 阅读剩余部分 -

【树链剖分】BZOJ 1036: [ZJOI2008]树的统计Count

题目描述  一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和 注意:从点u到点v的路径上的节点包括u和v本身输入  输入的第一行为一个整数n,表示节点的个数。接下来n – 1行,每行2个整数a和b,表示节点a和节点b之间有一条边相连。接下来n行,每行一个整数,第i行的整数wi表示节点i的权值。接下来1行,为一个整数q,表示- 阅读剩余部分 -