【poj3263】 Tallest Cow】的更多相关文章

http://poj.org/problem?id=3263 (题目链接) 题意 n头奶牛排成一排,最高的一头I身高H,给出R个条件(a,b),表示a,b之间的奶牛都要比a矮,b的身高大于等于a.求每头奶牛最高能有多高. Solution 差分确实很方便,这样就省去了线段树或者树状数组,而且时间复杂度也少了个log. 考虑对于每个条件(a,b),位于a,b之间的奶牛的身高最多也就是a-1,所以我们将区间[a-1,b-1]全部减去1,然后差分即可. 细节 注意会有重复,所以还要排个序去重..幸好看…
题目 FJ's N(1≤N≤10,000) cows conveniently indexed 1..N are standing in a line. Each cow has a positive integer height (which is a bit of secret). You are told only the height H(1≤H≤1,000,000) of the tallest cow along with the index I of that cow. FJ ha…
[题目链接] http://poj.org/problem?id=3263 [算法] 若A和B两头牛可以互相看见,那么说明中间的牛的高度都至少比它们少1,因此,我们可以引入一个差分数组c 对于每组关系,我们将c[a+1]减一,c[b]加一 最后,每头牛的最高高度就是 h + c的前缀和 [代码] #include <algorithm> #include <bitset> #include <cctype> #include <cerrno> #includ…
[题目链接] 点击打开链接 [算法] 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]…
意甲冠军:一群奶牛去的地方.去回,然后回去寻找最伟大值. 题解:两遍最短路,结束.邻接矩阵存边能够避免建反图. #include <cstdio> #include <cstring> #include <algorithm> #define N 1005 #define inf 0x3f3f3f3f using namespace std; int map[N][N],n,m,s; int dist1[N],dist2[N]; bool visit[N]; void…
http://poj.org/problem?id=3623 (题目链接) 题意 给出一个字符串,每次可以取首或尾接到一个新的字符串后面,求构出的字典序最小的新字符串. Solution 首先可以发现,一定是优先选择字典序最小的,所以就将字符串反过来接在后面并用分隔符隔开,求一遍后缀数组,然后每次比较首和尾的rank,取rank靠前的记入答案即可. 细节 每80个字母一行→_→ 代码 // poj3623 #include<algorithm> #include<iostream>…
题解 用到一点群论的知识! 我们发现把操作写成一个置换后,一定是单个置换圈的内进行操作,把置换圈进行扩大的操作不优 我们有两个办法,一个是用全局最小的换进来,代替这个圈里最小的值,交换操作完成后再换出去,二是用圈里最小的换完一圈 就两个操作,计算后贪心即可 代码 #include <iostream> #include <cstdio> #include <vector> #include <set> #include <cstring> #in…
并不应该叫置换群……只是用到了置换而已,并没有群. 题解看这个吧,我就不写了:http://www.cnblogs.com/kuangbin/archive/2012/09/03/2669013.html 证明的话可以自己手撸几组数据模拟一下,比较容易. 复杂度O(n). 算是个经典题吧? #include<cstdio> #include<vector> #include<algorithm> using namespace std; #define INF 2147…
题目链接:http://poj.org/problem?id=3660 题意:n头牛比赛,有m场比赛,两两比赛,前面的就是赢家.问你能确认几头牛的名次. 题解:首先介绍个东西,传递闭包,它可以确定尽可能多的元素之间的关系. 然后回到这道题,怎么能确认这头牛的名次,也就是不管它胜还是败都能推导出其他n-1头牛跟它的关系.具体思想看代码.QWQ 代码: #include<cstdio> #include<cstdlib> #include<cstring> #include…
题目大意 洛谷链接 给定一张\(T\)条边的无向连通图,求从\(S\)到\(E\)经过\(N\)条边的最短路长度. 输入格式 第一行四个正整数\(N,T,S,E\),意义如题面所示. 接下来\(T\)行每行三个正整数\(w,u,v\)分别表示路径的长度,起点和终点. 输出格式 一行一个整数表示图中从\(S\)到\(E\)经过\(N\)条边的最短路长度. 数据范围 对于所有的数据,保证\(1\le N\le 10^6,2\le T\le 100\). 所有的边保证\(1\le u,v\le 100…