[BZOJ 3126] Photo
[题目链接]
https://www.lydsy.com/JudgeOnline/problem.php?id=3126
[算法]
差分约束系统
注意SPFA判负环的条件应为 : 若所有点入队次数之和 > 点数 + 边数,说明有负环
[代码]
- #include<bits/stdc++.h>
- using namespace std;
- #define MAXN 200010
- const int inf = 2e9;
- int n,m,tot;
- int head[MAXN];
- struct edge
- {
- int to,w,nxt;
- } e[MAXN << ];
- template <typename T> inline void read(T &x)
- {
- int f = ; x = ;
- char c = getchar();
- for (; !isdigit(c); c = getchar()) if (c == '-') f = -f;
- for (; isdigit(c); c = getchar()) x = (x << ) + (x << ) + c - '';
- x *= f;
- }
- inline void addedge(int u,int v,int w)
- {
- tot++;
- e[tot] = (edge){v,w,head[u]};
- head[u] = tot;
- }
- inline int spfa(int s)
- {
- int l,r,cnt = ;
- static int dist[MAXN];
- static bool inq[MAXN];
- priority_queue< int , vector< int > , greater< int > > q;
- while (!q.empty()) q.pop();
- for (register int i = ; i <= n; i++)
- {
- dist[i] = inf;
- inq[i] = false;
- }
- q.push(s);
- dist[s] = ;
- inq[s] = true;
- cnt = ;
- while (!q.empty())
- {
- int u = q.top();
- q.pop();
- inq[u] = false;
- for (register int i = head[u]; i; i = e[i].nxt)
- {
- int v = e[i].to , w = e[i].w;
- if (dist[u] + w < dist[v])
- {
- dist[v] = dist[u] + w;
- if (!inq[v])
- {
- cnt++;
- if (cnt > * m + * n) return -;
- inq[v] = true;
- q.push(v);
- }
- }
- }
- }
- return dist[n] == inf ? - : dist[n];
- }
- int main()
- {
- read(n); read(m);
- for (register int i = ; i <= m; i++)
- {
- int a,b;
- read(a); read(b);
- if (a > b) swap(a,b);
- addedge(a - ,b,);
- addedge(b,a - ,-);
- }
- for (register int i = ; i <= n; i++)
- {
- addedge(i,i - ,);
- addedge(i - ,i,);
- }
- printf("%d\n",spfa());
- return ;
- }
[BZOJ 3126] Photo的更多相关文章
- 数据结构(线段树):BZOJ 3126: [Usaco2013 Open]Photo
3126: [Usaco2013 Open]Photo Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 222 Solved: 116 Descrip ...
- Bzoj 3126[Usaco2013 Open]Photo 题解
3126: [Usaco2013 Open]Photo Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 335 Solved: 169[Submit] ...
- ●BZOJ 3126 [Usaco2013 Open]Photo
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3126 题解: 单调队列优化DP,神奇.. (好像某次考试考过,当时我用了差分约束+SPFA优 ...
- bzoj 3126: [Usaco2013 Open]Photo——单调队列优化dp
Description 给你一个n长度的数轴和m个区间,每个区间里有且仅有一个点,问能有多少个点 Input * Line 1: Two integers N and M. * Lines 2..M+ ...
- BZOJ 3126 [USACO2013 Open]Photo (单调队列优化DP)
洛谷传送门 题目大意:给你一个长度为$n$的序列和$m$个区间,每个区间内有且仅有一个1,其它数必须是0,求整个序列中数字1最多的数量 神题,竟然是$DP$ 定义$f_{i}$表示第i位放一个1时,最 ...
- bzoj 3126 单调队列优化dp
能转移的最左是其左边完整区间的最右左端点,最右是能覆盖它的最左左端点-1 #pragma GCC optimize ("O3") #include<cstdio> #i ...
- bzoj usaco 金组水题题解(2)
续.....TAT这回不到50题编辑器就崩了.. 这里塞40道吧= = bzoj 1585: [Usaco2009 Mar]Earthquake Damage 2 地震伤害 比较经典的最小割?..然而 ...
- USACO 刷题记录bzoj
bzoj 1606: [Usaco2008 Dec]Hay For Sale 购买干草——背包 #include<cstdio> #include<cstring> #incl ...
- bzoj3126[Usaco2013 Open]Photo 单调队列优化dp
3126: [Usaco2013 Open]Photo Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 374 Solved: 188[Submit] ...
随机推荐
- 使用JS获取request参数
1.document.write('<%=request.getAttribute("param")%>'); 2.window.navigator.userAgent ...
- P1036 选数(DFS)
题目 https://www.luogu.org/problemnew/show/P1036 思路 搜索,使用递归实现dfs,所有数字遍历一遍,当取遍所有数组的index(扫了一遍,并非一定是选取了) ...
- springmvc视图解析
SpringMVC 视图解析的几种方式: 在视图解析的过程中,需要知道逻辑view的名字,model的名字以访问model和view. 使用jsp进行解析,InternalResourceViewRe ...
- 【DIP, 图像增强】
第四章 图像增强 图像增强是按特定的需要突出一幅图像中的某些信息,同时削弱或者去除某些不需要的信息的处理方法.其主要目的是使处理后的图像对某种特定的应用来说,比原始图像更加适用.因此这类处理是为了某种 ...
- EasyUI Datagrid的简单使用
此前同样写过EasyUI Datagrid的demo,好记性不如烂笔头,何况记性也不是那么好,赶紧记录一下.照搬上一篇EasyUI Tree的格式. 实现效果:获取数据库表的数据,在EasyUI Da ...
- noip模拟赛 轰炸
题目描述 C国和W国爆发了战争!YJC决定对W国的n个城市进行轰炸.每个城市都有一个重要度ai.设xi=‘重要度大于ai的城市数+1’,那么编号为i城市就是第xi个被轰炸的城市.显然这样能保证重要度大 ...
- Linux command2
. CentOS 想查看哪个port开了,却提示命令无效 # yum -y install net-tools 2. How to install "wget" command i ...
- 工作流框架Activiti
最近在看一些项目设计方面的文章,涉及到了工作流技术,于是了解一下. 1.概念 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照 ...
- 将完整的Maven远程存储库下载到本地存储库(别试了,不太可取)
别试了,这种方式不太可取. 要解决可以有如下思路: 1.做成镜像站点,有如下命令: wget -m http://site.to.mirror.com #-m代表“镜子”. rsync repo1.m ...
- Linux: 查找使用中的port
找出所有使用中的port netstat -tulpn 输出 Active Internet connections (only servers) Proto Recv-Q Send-Q Local ...