这道题和种树差不多,但是n和m数字较大,所以加上了SLF LLL优化,但是最后一个点还是不过,还加了个CLOCK(不知道还有没有更好的方法

#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+5;
int cnt,tot,n,m,update[maxn],dis[maxn],vis[maxn],head[maxn];
struct edge
{int to,v,nxt;
}G[maxn<<2];
clock_t start;
void add(int x,int y, int z)
{G[++cnt].to=y; G[cnt].nxt=head[x]; G[cnt].v=z; head[x]=cnt;
}
deque <int> q;
bool spfa(int s)
{long long sum=0;memset(dis,0x3f,sizeof(dis));dis[s]=0; vis[s]=1;q.push_back(s); tot++;while(!q.empty()){int u=q.front();q.pop_front(); tot--; sum-=dis[u];if(tot && dis[u]*tot>sum){q.push_back(u);u=q.front();q.pop_front(); }vis[u]=0; for(int i=head[u];i;i=G[i].nxt){int to=G[i].to;int v=G[i].v;if(dis[to]>dis[u]+v){dis[to]=dis[u]+v;if(!vis[to]){update[to]=update[u]+1; if(q.size() && dis[q.front()]<dis[to]) q.push_back(to);else q.push_front(to);vis[to]=1;tot++;sum+=dis[to];}if(update[to]>=n || clock()-start>=0.7*CLOCKS_PER_SEC) return true;}}}return false;
}
int main()
{freopen("P3084_10.in","r",stdin);freopen("a.out","w",stdout);start=clock();int x,y;scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){scanf("%d%d",&x,&y);add(x-1,y,1);add(y,x-1,-1);}for(int i=1;i<=n;i++) add(i,i-1,0),add(i-1,i,1);if(spfa(0)) printf("%d\n",-1);else printf("%d\n",dis[n]);return 0;
}

【差分约束+spfa优化】P3084 [USACO13OPEN]Photo G相关推荐

  1. [spfa][差分约束] 洛谷 P3084 照片Photo

    题目描述 Farmer John has decided to assemble a panoramic photo of a lineup of his N cows (1 <= N < ...

  2. HDU3440(差分约束+SPFA算法)

    题意:两栋房子之间的最大距离为D,也就是A-B<=D,现在求出最矮和最高房子之间的最大距离 思路:差分约束+SPFA算法: 当问题可以转化为形如一组 xi‑x'i<=yi 或一组 xi‑x ...

  3. poj1201(差分约束+SPFA)

    看到这道题,其实就是和poj1716是差不多的 题意:给出n个闭整数区间[ai,bi]和n个整数C1,.,cn.计算具有区间[ai,bi]的至少ci公共元素的整数集Z的最小大小,对于每一个i=1,2, ...

  4. poj3169(差分约束+SPFA)

    题意:FJ有N头牛,这些牛都站在一条直线上等待,但是现在给出了一些条件: 1.首先列出哪些牛之间彼此喜欢,以及之间的最大距离,也就是A-B<=X 2.随后列出哪些牛之间彼此不喜欢,以及之间的最小 ...

  5. poj1716(差分约束+SPFA)

    题意:整数间隔[a,b],a<b,是以a开头和以b结尾的所有连续整数的集合.在包含至少两个不同整数的集合中找到每个间隔的最小元素数. 思路:采用差分约束算法:当问题可以转化为形如一组 xi‑x' ...

  6. HDU 1384 Intervals【差分约束-SPFA】

    类型:给出一些形如a−b<=k的不等式(或a−b>=k或a−b<k或a−b>k等),问是否有解[是否有负环]或求差的极值[最短/长路径]. 例子:b−a<=k1,c−b& ...

  7. P1993-小K的农场【差分约束,SPFA】

    正题 题目链接:https://www.luogu.org/problemnew/show/P1993 题目大意 有若干个条件 Wa+w>WbW_a+w>W_bWa​+w>Wb​ W ...

  8. BZOJ.4500.矩阵(差分约束 SPFA判负环 / 带权并查集)

    BZOJ 差分约束: 我是谁,差分约束是啥,这是哪 太真实了= = 插个广告:这里有差分约束详(并不)解. 记\(r_i\)为第\(i\)行整体加了多少的权值,\(c_i\)为第\(i\)列整体加了多 ...

  9. ZOJ 2770 Burn the Linked Camp 差分约束+SPFA

    第一道正儿八经的差分约束题 有排成一列的n个点,首先告诉你每个点的值最多是多少(最少显然要大于0),然后告诉你m段i,j,k,表示第i个点到第j个点的值的和至少有k,问你总和至少为多少. 要注意的是, ...

最新文章

  1. python使用fpdf创建pdf文件包含:页眉、页脚并嵌入logo图片、设置使用中文字体
  2. 软件开发者的最佳实践
  3. 【Linux】ubuntu或linux网卡配置/etc/network/interfaces
  4. 在博客园写了一年博客,收获的不仅仅是写作技能——我能一直保持积极的学习和工作态度...
  5. 使用String 的 intern做锁提高并发能力
  6. URLEncoder和URLDecoder(乱码处理)
  7. Fabric 学习笔记-架构初探
  8. 进一步:BSD信号和异常同时捕获
  9. Silverlight中摄像头的运用—part2
  10. python-条件语句
  11. 附录:更多字典操作命令
  12. 苹果App Store曝出Bug 你遇到了么?
  13. 2012CSDN网站六大类职位火热招聘:社区编辑、产品交互设计、信息安全主管、前端工程师、Ruby工程师、搜索工程师...
  14. python艺术分形数_分形维度特征——基于Python实现
  15. 已解决:GET http://localhost:8080/statics/js/jquery-3.4.1.js net::ERR_ABORTED 404
  16. 大连本周气温明显回落 阴云来降温 春雨润万物
  17. Arduino驱动LED128X64 - U8g2 自定义中文字库
  18. 边缘计算(一)——边缘计算的兴起
  19. 百度网盘直链下载教程
  20. Moore Voting

热门文章

  1. 感谢帮我的人们(Revit二次开发)
  2. c语言control函数,C语言05-ControlFl.ppt
  3. 英语四级核心词,记住这些就够了
  4. 国密算法:利用python进行sm3 hash算法,计算hash值,国密算法库gmssl的使用
  5. 支付宝公众账号商户网关的搭建, RSA密钥对生成
  6. 苹果手机怎么切换输入法_苹果手机输入法的小技巧,你知道几个?最后一个你肯定不知道...
  7. H264 SPS 中 VUI 自己碰到的一些比较关键的 字段介绍。
  8. java 文件保存_java中怎么实现保存文件到本地
  9. 七夕小案例:用代码给心爱的她画一个爱心
  10. python使用列表,快速获取1到10的平方