【USACO】 Max Flow】的更多相关文章

[题目链接] 点击打开链接 [算法] LCA + 树上差分 [代码] #include<bits/stdc++.h> using namespace std; int i,x,y,N,K,l,maxn; ][],d[],sum[]; vector<]; void build(int x,int pre) { int i; ; i <= ; i++) anc[x][i] = anc[anc[x][i-]][i-]; ; i < E[x].size(); i++) { if (E…
POJ 1986 Distance Queries / UESTC 256 Distance Queries / CJOJ 1129 [USACO]距离咨询(最近公共祖先) Description Farmer John's cows refused to run in his marathon since he chose a path much too long for their leisurely lifestyle. He therefore wants to find a path…
[CF708D]Incorrect Flow 题意:给你一个点数为n,边数为m的流网络,每条边有一个容量c和流量f,这个网络可能是不合法的.你可以花费1的代价使c或f减少或增加1,可以修改无限次.你不需要使流量最大,你只需要花费最少的代价把原图改造成一个合法的网络. $n,m\le 100,c,f\le 10^6$ 题解:我们用有上下界的费用流来解决这个问题. 对于一条边a->b,如果c>f,则我们从a到b连一条下界和上界都是f,费用为0的边:因为可以减少流量,所以连一条从b到a,容量为f,费…
1642: [USACO]Payback(还债) 时间限制: 1 Sec 内存限制: 64 MB 提交: 190 解决: 95 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 "Never a borrower nor a lender be." O how Bessie wishes she had taken that advice! She has borrowed from or lent money to each of N (1 <= N <=…
1519: [USACO]超级书架 时间限制: 1 Sec 内存限制: 64 MB 提交: 1735 解决: 891 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有N(1 <= N <= 20,000)头奶牛都有一个确定的身高H_i(1 <= H_i <= 10,000).设所有奶牛身高的和为S.书架的…
[USACO]1.1.2 贪婪的礼物送礼者 Greedy Gift Givers 题目描述 对于一群要互送礼物的朋友,你要确定每个人送出的礼物比收到的多多少(and vice versa for those who view gift giving with cynicism). 在这一个问题中,每个人都准备了一些钱来送礼物,而这些钱将会被平均分给那些将收到他的礼物的人. 然而,在任何一群朋友中,有些人将送出较多的礼物(可能是因为有较多的朋友),有些人有准备了较多的钱. 给出一群朋友, 没有人的…
题目链接 :        [POJ]点击打开链接        [caioj]点击打开链接 算法 : 1:跑一遍弗洛伊德,求出点与点之间的最短路径 2:二分答案,二分”最大值最小“ 3.1:建边,将原点与每头奶牛连边,流量为1,记dist[i][j]为i到j的最短路径,若dist[i][j]<=mid (K+1<=i<=K+C,1<=j<=K),则将i与j连边,流量为M,将每台挤奶机与汇点连边,流量为1 3.2 : 跑网络流,这里笔者使用的是dinic算法 3.3 : 判断…
[题目链接] 点击打开链接 [算法] 树状数组 [代码] #include<bits/stdc++.h> using namespace std; int i,N,ans,l1,l2; ],val[],id[]; template <typename T> void read(T &x) { ; ; ; } +c-'; x*=f; } bool cmp(int a,int b) { return val[a] > val[b]; } int lowbit(int x)…
[题目链接] 点击打开链接 [算法] 这是一道经典的最值查询(RMQ)问题. 我们首先想到线段树.但有没有更快的方法呢?对于这类问题,我们可以用ST表(稀疏表)算法求解. 稀疏表算法.其实也是一种动态规划的算法.是先做一遍预处理,然后O(1)求出答案.                设计状态 : f[i][j] 表示从第i个数开始连续2^j次方个数(包括第i个数),中的(最大或最小值) 那么状态转移方程是什么呢? 我们知道 2^j可分解为两个2^(j-1),所以f[i][j] = max或min…
[题目链接] 点击打开链接 [算法] tarjan算法求LCA [代码] #include<bits/stdc++.h> #define MAXN 200010 #pragma GOC optimize("O2") using namespace std; int n,k,i,p,fa,q; int a[MAXN],visit[MAXN],parent[MAXN],maxn[MAXN], depth[MAXN],x[MAXN],y[MAXN],z[MAXN],ans[MAX…
[题目描述] Robin喜欢将他的奶牛们排成一队.假设他有N头奶牛,编号为1至N.这些奶牛按照编号大小排列,并且由于它们都很想早点吃饭,于是就很可能出现多头奶牛挤在同一位置的情况(也就是说,如果我们认为所有奶牛位于数轴上,那么多头奶牛的位置坐标可能相同). 因为众所周知的原因,某些奶牛之间互相喜欢,他们希望互相之间的距离至多为一个定值.但某些奶牛之间互相厌恶,他们希望互相之间的距离至少为一个定值.现在给定ML个互相喜爱的奶牛对以及他们之间距离的最大值,MD个互相厌恶的奶牛对以及他们之间距离的最小…
照相(fairphoto) [题目描述] 有N 头奶牛站在一条数轴上,第 i 头奶牛的位置是 Pi,奶牛不会重叠站在同一个位置, 第i 头奶牛的颜色是 Ci,其中 Ci 要么是字符'G'要么是字符'H'.现在农夫 FJ 想给一段连续的奶牛照一张相,前提是满足一下三个条件之一: 1.这连续一段奶牛的颜色全部是'G'. 2.这连续一段奶牛的颜色全部是'H'.3.这连续一段奶牛,颜色是'H'的奶牛数量和颜色是'G'的奶牛数量相等. FJ 要求照出来的相尽可能的宽,不妨设相片中最右边奶牛位置是 Pj,…
[题目链接] [JZXX]点击打开链接 [caioj]点击打开链接 [算法] 拆点+网络流 [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 1000 int i,tot,N,F,D,sf,sd,ans,x; ],V[MAXN*],W[MAXN*],Head[MAXN*], Next[MAXN*],other[MAXN*],h[MAXN*]; template <typename T> void read(…
[题目链接] 点击打开链接 [算法] tarjan求强连通分量 [代码] #include<bits/stdc++.h> #define MAXN 20005 using namespace std; int i,N,M,u,v,id,cnt; int dfn[MAXN],low[MAXN],vis[MAXN]; vector<int> edge[MAXN]; stack<int> stk; void dfs(int u) { int i,to,sum; dfn[u]…
题目大意:给定一棵 N 个节点的无根树,有 M 个操作,每次选定一条树链,将这条链上所有点的点权 +1,最后求树上点的最大点权是多少. 题解:树上差分算法的应用. 发现操作有 M 次,但是询问只有一次,和序列差分算法很像.对于树链 u,v 的修改来说,可以采用将 u 的点权 +1,v 的点权 +1,lca(u,v) 的点权 -1,fa[lca(u,v)] 的点权 -1 来模拟这个过程,最后再求一下每个点子树内的标记和即可,时间复杂度为 \(O(nlogn)\),瓶颈在于求 lca 的复杂度. 至…
Drainage Ditches 草地排水 usaco 4.2.1描述在农夫约翰的农场上,每逢下雨,Bessie最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫约翰修建了一套排水系统来使贝茜的草地免除被大水淹没的烦恼(不用担心,雨水会流向附近的一条小溪).作为一名一流的技师,农夫约翰已经在每条排水沟的一端安上了控制器,这样他可以控制流入排水沟的水流量.农夫约翰知道每一条排水沟每分钟可以流过的水量,和排水系统的准确布局(起点为水潭而终点为小…
Max Points on a Line 题目描述: Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. 解题思路: 1.首先由这么一个O(n^3)的方法,也就是算出每条线的方程(n^2),然后判断有多少点在每条线上(N).这个方法肯定是可行的,只是复杂度太高2.然后想到一个O(N)的,对每一个点,分别计算这个点和其他所有点构成的斜率,具有相同斜率最…
Transformations A square pattern of size N x N (1 <= N <= 10) black and white square tiles is transformed into another square pattern. Write a program that will recognize the minimum transformation that has been applied to the original pattern given…
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. 思路: 自己脑子当机了,总是想着斜率和截距都要相同.但实际上三个点是一条直线的话只要它们的斜率相同就可以了,因为用了相同的参照点,截距一定是相同的. 大神的做法: 对每一个点a, 找出所有其他点跟a的连线斜率,相同为同一条线,记录下通过a的点的线上最大的点数. 找出每一个点的最大连线通过的点数. 其…
给一颗数字树,让找一条数字和最大的路径.一下子就想起刚学不久的回溯法了.照着写了个代码,调了调搞通了.在小数据的情况下是对的,但是在test 6 树有199层的时候溢出了. #include <stdio.h> ], int * summax) //回溯法 { *summax = ; ; ; ] = {}; ] = {}; ] = {}; //保存算到第k行的和 S[k] = ; sign[k] = ; do{ ) { && k != ) { sign[k]++; //选择右边…
这道题卡了很久,开始没读清楚题,没看到题目中给的6个组合是仅可能的组合,一直自己想有多少种组合方式.后来才发现,于是就想到写遍历.我想的是,这六种情况下,每个位置摆哪个矩形是不确定的,于是可以对方块的排列方法遍历,对每个方块是横放还是竖放遍历.写了一个9层的循环,效率很低,有非常多的重复.不过通过了. #include <stdio.h> #include <stdlib.h> #include <math.h> typedef struct { int x; int…
//放在USACO上一直通不过 不知道哪里出了问题 输出的n总是等于1 但是BFS递归的次数是对的 <----这个问题解决了 局部变量压入queue中返回就是对的了 #include<iostream> #include <fstream> #include<cstring> #include<queue> using namespace std; typedef struct { ]; //当前状态 ]; //已扩展序号 int n; //已扩展次数…
题目: You have a necklace of N red, white, or blue beads (3<=N<=350) some of which are red, others blue, and others white, arranged at random. Here are two examples for n=29: 1 2 1 2 r b b r b r r b r b b b r r b r r r w r b r w w b b r r b b b b b b…
很长时间都没想出来的简单题,看了题解才写出来,还是naive 原题: FJ有个农场,其中有n块土地,由m条边连起来.FJ的养牛场在土地1,在土地n有个新开张的雪糕店.Bessie经常偷偷溜到雪糕店,当Bessie去的时候,FJ就要跟上她.但是Bessie很聪明,她在从雪糕店返回时不会经过去雪糕店时经过的农场,因此FJ总是抓不住Bessie.为了防止Bessie生病,FJ决定把一些诚实的狗放在一些土地(1和n除外)上,使Bessie无法在满足每块土地最多只经过一次的条件的情况下,从养牛场溜到雪糕店…
滑雪课程贝西去科罗拉多州去滑雪,不过还她不太会玩,只是个能力为 1 的渣渣.贝西从 0 时刻进入滑雪场,一到 T 时刻就必须离开.滑雪场里有 N 条斜坡,第 i 条斜坡滑行一次需要 Di 分钟,要求游客的能力达到 Ci 或以上时才能进入.贝西决心参加一些滑雪课程以提高自己的素质,这样可以在有限的时间内多滑几次坡.滑雪场提供了 S 门课程.第 i 门课的开始时刻为 Mi,持续 Li 分钟,如果想参加课程,就不能迟到或早退.上完课之后,贝西的滑雪能力将变成 Ai.注意,不是能力增加 Ai,而是变成…
接住苹果奶牛喜欢吃苹果.约翰有两棵苹果树,有 N 只苹果会从树上陆续落下.如果掉苹果的时候,贝西在那棵树下,她就能接住苹果.贝西一开始在第一棵树下.在苹果掉落之前,她有足够的时间来回走动,但她很懒,最多只愿意移动 K 次.请计算一下她最多可以接住几只苹果.输入格式• 第一行:两个整数 N 和 K,1 ≤ N ≤ 1000; 1 ≤ K ≤ 30• 第 i + 1 行有一个整数 Ti,表示第 i 只苹果从哪棵树上掉落,1 表示从第一棵树,2 表示从第二棵树输出格式• 单个整数:表示能接住的最大苹果…
Description 约翰决定培育新的玉米品种以提高奶牛的产奶效率.约翰所有的土地被分成 N ×N 块,其中第 r行第 c 列的玉米质量为 Ar,c.他打算找一块质量比较均匀的土地开始自己的实验.经过前期考察,他已经锁定了 K 片区域作为实验基地的候选,其中第 i 片区域是从 Ri 行 Ci 列开始,到 Ri + B − 1 行Ci +B −1 列结束的一个 B ×B 的区域.请帮助约翰计算一下,在这些候选区域里,玉米的最高质量与最低质量之差分别是多少. Input Format • 第一行:…
Description 给定两个字符串集合A,B,均包含N个字符串,长度均为M,求一个最短的区间[l,r],使得不存在字符串\(a\in A,b\in B,\)且\(a[l,r]=b[l,r]\) ,字符串只由ACGT组成, \(n,m\leq500\) Input Format 第一行包含N,M, 接下来N行,每行一个长度为M的字符串,描述集合A 最后N行,描述集合B Output Format 一行表示最短区间的长度 Sample Input 3 8 AATCCCAT ACTTGCAA GG…
题目描述 贝西想从奶牛摇滚乐队的 N 首歌里挑出一些录制一套专辑.专辑分 K 张唱片,每张唱片可容纳总长为 C 分钟的歌曲.第 i 首歌的长度为 T i 分钟,录制唱片时,唱片之间的歌曲需要保持原本的顺序.第一张唱片里的歌必须排在第二张唱片前面,之后的每张唱片里也是如此.同时,每首歌曲必须完整地放 在一张唱片里,不然,就只能舍去不录了.请问贝西应该选哪些歌曲,才能让专辑里装下的歌曲尽量多? 输入  第一行:三个整数 N,C 和 K,1 ≤ N ≤ 100,1 ≤ C ≤ 1000,1 ≤ K ≤…
题目背景 奶牛想证明它们是聪明而风趣的.为此,贝西筹备了一个奶牛博览会,她已经对N 头奶牛进行 了面试,确定了每头奶牛的智商和情商. 题目描述 贝西有权选择让哪些奶牛参加展览.由于负的智商或情商会造成负面效果,所以贝西不希望出展奶牛的智商之和小于零,或情商之和小于零.满足这两个条件下,她希望出展奶牛的智商与情商之和越大越好,请帮助贝西求出这个最大值. 输入输出格式 输入格式: • 第一行:单个整数N,1 ≤ N ≤ 400 • 第二行到第N + 1 行:第i + 1 行有两个整数:Si 和Fi,…