【网络流】 HDU 3468 Treasure Hunting】的更多相关文章

题目地址:HDU 3468 这道题的关键在于能想到用网络流.然后还要想到用bfs来标记最短路中的点. 首先标记方法是,对每个集合点跑一次bfs,记录全部点到该点的最短距离.然后对于随意一对起始点来说,仅仅要这个点到起点的最短距离+该点到终点的最短距离==起点到终点的最短距离,就说明这点在某条从起点到终点的最短路上. 然后以集合点建X集,宝物点建Y集构造二分图,将从某集合点出发的最短路中经过宝物点与该集合点连边.剩下的用二分匹配算法或最大流算法都能够.(为什么我的最大流比二分匹配跑的还要快....…
题意: A-Z&&a-z 表示 集结点 从A点出发经过 最短步数 走到下一个集结点(A的下一个集结点为B ,Z的下一个集结点为a) 的路上遇到金子(*)则能够捡走(一个点仅仅能捡一次) 求从A点出发走遍全部的的集结点 最多能捡多少金子 思路:先对于第 i 个集结点用BFS求出 对于每一个点从该集结点所需的步数  为D[ I ] [ t ] 对于随意一个金子若  两个相邻的集结点的最短步数=其到该金子的步数和 则建一条边(能够拿) 然后最大流求 #include <cstdio>…
题目链接:pid=3641">传送门 题意: 求最小的 ( x! ) = 0 mod (a1^b1*a2^b2...an^bn) 分析: 首先吧a1~an进行素因子分解,然后统计下每一个质因子的指数.因为随着x的增大,质因子的个数是逐渐添加的 因此我们能够二分x.对x!进行素因子分解推断是否满足条件.然后求出最小的就能够了. 代码例如以下: #include <iostream> #include <cstring> #include <algorithm&g…
/** 大意:给定一组ai,bi . m = a1^b1 *a2^b2 * a3^ b3 * a4^b4*...*ai^bi 求最小的x!%m =0 思路: 将ai 质因子分解,若是x!%m=0 那么x! 质因子分解之后 质因子的个数一定大于等于m的个数.二分求解可得 注意: 二分时,需要将,上下限 设定好,low =0: high = 1ll<<60; **/ #include <iostream> #include <cstring> #include <cm…
网络流 HDU 3549 Flow Problem 题目:pid=3549">http://acm.hdu.edu.cn/showproblem.php?pid=3549 用增广路算法进行求解.注意的问题有两个: 1. 每次增广的时候,反向流量也要进行更行.一開始没注意,WA了几次 ORZ 2. 对于输入的数据,容量要进行累加更新. // 邻接矩阵存储 #include <bits/stdc++.h> using namespace std; const int INF = 0…
[Codeforces 1201D]Treasure Hunting(DP) 题面 有一个n*m的方格,方格上有k个宝藏,一个人从(1,1)出发,可以向左或者向右走,但不能向下走.给出q个列,在这些列上可以向上走,其他列不能向上走.可以重复经过同一个点.求从(1,1)出发,经过所有宝藏的最短路径长度 \(n,m,k,q \leq 2 \times 10^5\) 分析 贪心考虑,我们应该按照行一层一层的走.每一行应该从最左的宝藏走到最右的宝藏,或者从最右的宝藏走到最左的宝藏,然后找最近的一个可以向…
Codeforces Round #577 (Div. 2)  D. Treasure Hunting 这个一场div2 前面三题特别简单,这个D题的dp还是比较难的,不过题目告诉你了只能往上走,所以还是可以看出来这个是一个dp的. 然后对于每一段,肯定是从左到右或者从右到左这个是最优的,这里就是有一点点贪心的思想. 所以要我们首先要求出每一行的最大最小,然后就是开始转移. 题目要求只有一部分的列才可以竖直方向的走,这个让我就有点迷糊. 首先每一段向下转移,如果这个位置向下转移到的那个位置直接有…
题意: 输入一个n行m列的图 每次按字母顺序走最短路, 从一个字母走到下一个字母的过程中,只能拿走一个金子,求走完当前图中所有的字母后能拿到的金子的最大值 解析: bfs求最短路 对于一个金子如果 dis1[i] + dis2[i] == dis1[next] 那么就代表着这个金子 在这条最短路上 可以拿 那么从上一个 字母 到当前节点连一条边 权值为1 会了吧... #include <iostream> #include <cstdio> #include <sstrea…
Problem Description background: A new semester comes , and the HDU also meets its 50th birthday. No matter what's your major, the only thing I want to tell you is:"Treasure the college life and seize the time." Most people thought that the colle…
http://acm.hdu.edu.cn/showproblem.php?pid=2061 Problem Description background:A new semester comes , and the HDU also meets its 50th birthday. No matter what's your major, the only thing I want to tell you is:"Treasure the college life and seize the…
建图   源点    ->   1024类人   ->   星球   ->     汇点 权             每类人数目       星球容量     星球容量 列举 0~1024  一位是1 那么和对应的星球建边 #include<stdio.h> #include<algorithm> #include<string.h> #include<queue> #include<math.h> using namespac…
建图           源点  ->     每个人  ->           每段时间      ->      汇点 时间要离散化一下 分成一些时间段 权                     inf    ti[i]*(time[i]-time[i-1])  m*(time[i]-time[i-1]) n人 m个机器 开始时间  总共要的数目 底线时间  每个所需时间 如果可以达到输出Y 否则N #include<stdio.h> #include<algo…
九野的博客,转载请注明出处 http://blog.csdn.net/acmmmm/article/details/10966383 开始建图打搓了,参考了大牛的题解打的版本比较清爽,后来改的基本雷同了http://www.cnblogs.com/woaishizhan/archive/2013/04/08/3008719.html 题意:给定n,m表示下面地图大小 .表示空地 #表示墙 *表示黄金 行走的路线是A->Z->a->z 规则,必须从字母依次走最短路到下一个字母(字母必须连续…
//给一个n*m的图 //.表示空白地 //*表示有黄金 //#表示墙 //一个人须要依照A...Z..a..z的顺序以最短路径走到下一个 //每次仅仅能在他的路线上经过的地方取一块黄金 //问最多能取多少黄金 //对于每次起点和终点,用bfs搜索最短路,再用dfs找出最短路线经过的全部点 //对于第i次找最短路线与其走过的点建立边,然后用二分匹配就能找出 #include<iostream> #include<vector> #include<cstdio> #inc…
网上题解比较少,自己比较弱研究了半天(已经过了),希望对找题解的人有帮助 题目链接:https://codeforc.es/contest/1201/problem/D 题意: 给你一个矩形,起始点在(1,1),在给定坐标有宝物,你要将整个图中的宝物全部拿到,而且你不能向下走(左右随意),而且只有在所给出的列上你才能向上走,问最少要走多少格 #define IOS ios_base::sync_with_stdio(0); cin.tie(0); #include <cstdio>//spri…
传送门 看一眼感觉就是 $dp$,但是似乎状态太多了 考虑推推性质 首先每到一行都要把所有宝藏都走到,那么一定会走到最左边的和最右边的宝藏 注意到一旦走完所有宝藏时肯定是在最左边或者最右边的宝藏位置 并且此时要往上走,显然是选择左边或右边的最近的路上去,因为如果选择更远的路上去还不如先上去再走到更远的那个位置 所以发现,我们每一层上去只有四种选择:最左边宝藏的左右两个最近的上去,最右边宝藏的左右两个最近的上去 直接预处理一下每一层的这四个位置然后标号 $0,1,2,3$ 那么就可以安心 $dp$…
传送门 题意: 在一个 n * m 的地图里,有 k 个宝藏,你的起点在 (1, 1), 每次你能 向下向右向左移动(只要在地图里):      现在,有 q 个安全的列, 你只有在这些列上面,你才能向下走. 问你收集所有宝藏,需要走的最少步数 解: 首先,我们对每一行 维护数组 L, R,分别代表 这一行的所有宝藏中,最左的那个和最右的那个的 纵坐标 然后 维护两个值  ansl, ansr 分别代表你处理完前 i 行所有的宝藏都拿完了之后: 停在 L[ i ], 和停在 R[ i ]处的最小…
A Simple Problem with Integers Case Time Limit: 2000MS Description You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type of operation is to add some given number to each number in a given interval. The other i…
转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并查集======================================[HDU]1213   How Many Tables   基础并查集★1272   小希的迷宫   基础并查集★1325&&poj1308  Is It A Tree?   基础并查集★1856   More i…
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many Tables 基础并查集★ 1272 小希的迷宫 基础并查集★ 1325&&poj1308 Is It A Tree? 基础并查集★ 1856 More is better 基础并查集★ 1102 Constructing Roads 基础最小生成树★ 1232 畅通工程 基础并查集★ 123…
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many Tables 基础并查集★ 1272 小希的迷宫 基础并查集★ 1325&&poj1308 Is It A Tree? 基础并查集★ 1856 More is better 基础并查集★ 1102 Constructing Roads 基础最小生成树★ 1232 畅通工程 基础并查集★ 123…
题目描述 Once there was a pig, which was very fond of treasure hunting. One day, when it woke up, it found itself in a strange land of treasure. As for how to come in, or how to go out, no ways to know. Sad. The good news is, it was lucky that it got the…
题目描述 Once there was a pig, which was very fond of treasure hunting. The treasure hunt is risky, and it is inadvertently caught in the peach blossom trap. Fortunately, it has got a map of peach blossom trap. You can think of it as a matrix of R row an…
=============================以下是最小生成树+并查集====================================== [HDU] How Many Tables 基础并查集★ 小希的迷宫 基础并查集★ &&poj1308 Is It A Tree? 基础并查集★ More is better 基础并查集★ Constructing Roads 基础最小生成树★ 畅通工程 基础并查集★ 还是畅通工程 基础最小生成树★ 畅通工程 基础最小生成树★ 畅通…
A - Japan  POJ 3067 要两条路有交叉,(x1,y1)(x2,y2)那么需要满足:(x1-x2)*(y1-y2)<0判断出这是求逆序的问题 树状数组求逆序,先通过自定义的比较器实现按照一种元素排序,然后再逐次查询和add来获取结果 B - Ping pong POJ 3928 分析裁判的位置,则可判断求逆序问题.对每个点的裁判,他能举办的比赛场数为左弱*右强+左强*右弱,通过正序和倒序两次插入和查询累加得最终结果 C - Balanced Lineup POJ 3274 用线段树…
Treasure Hunt II Time Limit: 2 Seconds                                     Memory Limit: 65536 KB                             There are n cities(1, 2, ... ,n) forming a line on the wonderland. city i and city i+1 are adjacent and their distance is 1.…
A. Important Exam 水题 #include<iostream> #include<string.h> #include<algorithm> #include<stdio.h> using namespace std; ; char a[maxx][maxx]; int pre[maxx]; int b[maxx]; int main(){ int n,m; while(~scanf("%d%d",&n,&…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5446 Unknown Treasure 问题描述 On the way to the next secret treasure hiding place, the mathematician discovered a cave unknown to the map. The mathematician entered the cave because it is there. Somewhere…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2883 Almost everyone likes kebabs nowadays (Here a kebab means pieces of meat grilled on a long thin stick). Have you, however, considered about the hardship of a kebab roaster while enjoying the delicio…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3572 Our geometry princess XMM has stoped her study in computational geometry to concentrate on her newly opened factory. Her factory has introduced M new machines in order to process the coming N tasks.…