![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OJ_POJ
文章平均质量分 74
wang2147483647
这个作者很懒,什么都没留下…
展开
-
POJ 3170(Knights of Ni)(BFS)
题目地址:http://poj.org/problem?id=3170思路:两次BFS,先从起点到shrubbery点求最短路,再从终点到shrubbery求最短路,枚举shrubbery点,取最小值。#include#include#include#include#include#define debuusing namespace std;const int dx[]原创 2016-08-01 19:36:44 · 979 阅读 · 0 评论 -
Poj 2976 Dropping tests(二分)
题目地址:http://poj.org/problem?id=2976思路:max{sigma(a[i])/sigma(b[i])}。设r=sigma(a[i]*x[i])/sigma(b[i]*x[i])(x[i]=0,1)。则sigma(a[i]*x[i])-r*sigma(b[i]*x[i])=0,而sigma(a[i]*x[i])-max(r)*(sigma(b[i]*x[i]))0,原创 2017-03-17 17:36:32 · 345 阅读 · 0 评论 -
Poj 3411 Paid Roads(最短路)
题目地址:http://poj.org/problem?id=3411思路:记录状态,松弛操作时判断即可。#include#include#include#include#include#define debugusing namespace std;const int maxn=15;const int INF=0x3f3f3f3f;struct Edge{原创 2017-03-07 16:08:43 · 467 阅读 · 0 评论 -
Poj 2566 Bound Found(尺取法)
题目地址:http://poj.org/problem?id=2566思路:选择一区间使得其和的绝对值最接近t。(1)当序列a[1...n]元素单调时,设置两指针:l、r。设当前数的和为sum,当sum大于t时,sum-=a[l];当sum小于t时,sum+=a[r]。则依次遍历可求出最接近t的值。(2)由于该序列中元素可正可负,不可直接使用尺取法,需将其做适当转化:设sum[i]为该原创 2017-03-07 18:45:41 · 554 阅读 · 0 评论 -
Poj 2823 Sliding Window(单调队列)
题目地址:http://poj.org/problem?id=2823思路:设置两单调队列:q(存储从小到大的值的下标)、Q(存储从大到小的值的下标)(初始时,两队列仅一元素1)。从1--->n依次扫描数组中元素:对于q,若当前值大于或等于队尾元素则将其下标i入队。否则,不断弹出队尾元素直到当前值不小于队尾元素x对应的a[x],若当前窗口元素个数大于k(i-队头元素>=k),则不断出队,直到i原创 2017-03-14 17:22:28 · 351 阅读 · 0 评论 -
Poj 3180 The Cow Prom(强连通分量)
题目地址:http://poj.org/problem?id=3180思路:强连通分量裸题,求点数大于1的强连通分量个数。#include#include#include#include#includeusing namespace std;const int maxn=1e4+50;int n,m,all,top,ans;vector g[maxn];int S[max原创 2017-03-14 21:31:32 · 623 阅读 · 0 评论 -
Poj 3273 Monthly Expense(二分)
题目地址:http://poj.org/problem?id=3273思路:二分最小值(1--sum{a[i]})。从小到大依次相加,判断 #include#include#include#includeusing namespace std;const int maxn=1e5+50;int n,m;int a[maxn];int check(int x){ i原创 2017-03-14 22:10:50 · 303 阅读 · 0 评论 -
Poj 3106 Flip and Turn(模拟+优化)
题目地址:http://poj.org/problem?id=3106思路:一、模拟+栈优化1、所有操作均对应与两种操作的组合,对应题目中的1和V操作。设1操作为1,V操作为0。则所有操作分别对应:112010H101V0A10B1010C101010原创 2017-10-06 18:56:37 · 577 阅读 · 0 评论 -
Poj 2970 The lazy programmer(贪心)
题目地址:http://poj.org/problem?id=2970思路:1.按照d值从小到大排序,依次完成任务。2.将所有已完成任务加入优先队列(a值越大越优先),若当前任务无法完成,则从队列中不断找到a值最大的任务,花费一定钱数减少完成时间,直到当前时间等于d。3.若某任务花费值为b/a,则以后花费钱任务时间也不会减少,从队列中删除。#include#include#原创 2017-10-08 17:15:04 · 619 阅读 · 0 评论 -
Poj 2559 Largest Rectangle in a Histogram(单调栈)
题目地址:http://poj.org/problem?id=2559思路:方法一:设置一单调栈,栈中元素按高度依次递增。则对于新加入的元素,若当前高度大于栈顶元素高度,则直接入栈;否则,不断退栈直到栈顶元素高度小于当前元素高度(因前一高度已不能继续延续到当前高度)并将更新当前元素宽度,入栈。退栈过程中不断更新最大值:栈中元素(2,1),当前元素(1,1)此时退栈并且将退栈元素宽度累加作为原创 2017-03-17 16:44:10 · 503 阅读 · 0 评论 -
Poj 3658 Artificial Lake(模拟)
题目地址:http://poj.org/problem?id=3658思路:记录每一个平台未被淹没的前一个平台与后一个平台。每次选择一个高度最小的坑,填满。并更新其前后平台,即nt[pre[k]]=nt[k](该平台k被淹没后其前驱平台的后继即为该平台后继平台),pre[nt[k]]=pre[k](该平台被淹没后其后继平台的前驱即为该平台的前驱),ans[k]=当前水量+淹没该平台的宽度(w[原创 2017-03-03 21:46:13 · 848 阅读 · 0 评论 -
Poj 3662 Telephone Lines(最短路+二分)
题目地址:http://poj.org/problem?id=3662思路:题目即为从连接1--n的边中找出一条最长的边,使得不多于k条边大于此边。则可以二分边长L(从0到边长最大值),求连接1--n的边中有多少条边的边长大于该边长:建立新图,将所有大于该边长的边权值设为1,其他边的权值为0,则求1->n的最短路即为连接1-->n的边中大于该边的边的个数,若其小于等于k则继续二分1---L-1原创 2017-03-03 19:34:07 · 605 阅读 · 0 评论 -
POJ 3175 Finding Bovine Roots(思路)
题目地址:http://poj.org/problem?id=3175思路: 若x.123....这个数字的平方是一个整数的话,那必然,sqr(x.124)>ceil(sqr(x.123))[ceil向上取整]。所以,可以从小到大枚举它的整数部分x,遇到的第一个满足结果的x,即为答案。#include#include#include#include#includeusin原创 2016-08-01 19:31:06 · 771 阅读 · 0 评论 -
poj 2449 Remmarguts' Date(K短路)
题目地址:http://poj.org/problem?id=2449思路:K短路模板,A*算法。估价函数=当前值+当前位置到终点的距离,即f(p)=g(p)+h(p),每次扩展估价函数值最小的一个。选择f(p)最小的点,若其为t,则计算其出队次数,次数等于k时,即为第k短路长度。#include#include#include#include#includeusing name原创 2017-02-06 01:03:27 · 276 阅读 · 0 评论 -
poj 3114 Countries in War(强连通缩点+最短路)
题目地址:http://poj.org/problem?id=3114思路:Tarjan缩点+SPFA最短路。#include#include#include#include#include#define debuusing namespace std;const int maxn=500+50;const int maxm=250000+50;const int IN原创 2017-02-07 15:30:45 · 283 阅读 · 0 评论 -
poj 3160 Father Christmas flymouse(强连通缩点+最长路)
题目地址:http://poj.org/problem?id=3160思路:将所有点权值为负数的点设为0,,同一强连通分量中的点可全部选择,因此将其看做一点。在新图中求最长路径即可。最长路径:由于为给定起点,(1)从所有入度为0的点开始,进行DFS;(2)设置一虚拟节点,将其与入度为0的点相连,SPFA求最长路径。SPFA版#include#include#include#inc原创 2017-02-07 20:08:45 · 433 阅读 · 0 评论 -
Poj 3660 Cow Contest(Floyd)
题目地址:http://poj.org/problem?id=3660思路:对于每个牛,设赢此牛的数为x,输此牛的数为y,若x+y==n-1则此牛的名次确定。则若x打败y,则x到y连一条边,则在关系图上,x能到达的点即为输于此牛的数目,能到达x的点即为赢此牛的数目。Floyd求解,枚举总点数是否为n-1即可。#include#include#include#include#incl原创 2017-02-27 18:33:05 · 405 阅读 · 0 评论 -
Poj 3661 Running(DP)
题目地址:http://poj.org/problem?id=3661思路:设f[i][j]表示在第i分钟,疲劳值为j时走的最远距离。则分两种情况:(1)f[i][0]:休息,f[i][0]=f[i-1][0],直接由上一分钟转移;f[i-j][j]疲劳值为j时休息(i>=j),直到疲劳值为0。则f[i][0]=max{f[i][0],f[i-j][j]}。(2)f[i][j]:第i分钟走疲劳原创 2017-02-27 19:13:43 · 553 阅读 · 0 评论 -
Poj 3659 Cell Phone Network(树的最小支配集)
题目地址:http://poj.org/problem?id=3659思路:树的最小支配集。此处采用贪心算法:(1)以1为起点dfs遍历整棵树,记录遍历顺序及每个点的父节点(1号点父节点为其本身)。(2)按遍历顺序相反的顺序依次处理:若当前节点i并未在支配集中或并未与支配集中的点相连(未做标记),则检查其父节点,若父节点不在支配集中,则将其父节点加入支配集,答案加一。此时,该节点,该节原创 2017-02-27 20:54:12 · 410 阅读 · 0 评论 -
Poj 3657 Haybale Guessing(二分+并查集)
题目地址:http://poj.org/problem?id=3657思路:由于每个位置的数唯一,对于两个区间[l,r]最小值为a、[L,R]最小值为A。若区间[l,r]被区间[L,R]完全包含且a<A,此时存在矛盾且为唯一的矛盾。则可以二分询问Q,判断1---tot内的询问是否合法。每次二分时,将1---tot之间的询问按照最小值从大到小排序(优先处理大数,以后判断时仅需判断小数所在的区间是原创 2017-03-03 16:57:01 · 898 阅读 · 0 评论 -
Poj 3621 Sightseeing Cows(二分+负环判断)
题目地址:http://poj.org/problem?id=3621思路:1.求点权值除以边权值最大的环。2.二分答案ans,sigma(v)/sigma(e)=0。对原图中的边,设其边权值为ans*e-v,判断是否存在负环即可。3.由于图有可能不连通,设一点0,向所有点连权值为0的边,从0点开始跑spfa判断是否存在负环即可。#include#include#inclu原创 2017-10-16 14:44:42 · 431 阅读 · 0 评论