bzoj3280(莫名tle)

2023-10-20 05:48
文章标签 tle 莫名 bzoj3280

本文主要是介绍bzoj3280(莫名tle),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

已知tle的原因是spfa的死循环,但是为什么死循环呢?

 

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<queue>
using namespace std;
const int inf=0x7f7f7f7f;
inline int read()
{int ans,f=1;char ch;while ((ch=getchar())<'0'||ch>'9') if (ch=='-') f=-1;ans=ch-'0';while ((ch=getchar())>='0'&&ch<='9') ans=ans*10+ch-'0';return ans*f;
}int n,m,k,s,t,ans;
int id[105][2],total;
int head[105],tot,now[105],pre[105],dis[105];
struct aa
{int to,pre,cap,flow,w;
}edge[100005];
void addedge(int x,int y,int z,int w)
{edge[++tot].to=y;edge[tot].cap=z;edge[tot].w=w;edge[tot].pre=head[x];head[x]=tot;edge[++tot].to=x;edge[tot].cap=0;edge[tot].w=-w;edge[tot].pre=head[y];head[y]=tot;
}
bool b[105];
bool spfa()
{memset(dis,inf,sizeof(dis));memset(b,false,sizeof(b));memset(pre,0,sizeof(pre));memset(now,0,sizeof(now));dis[s]=0;queue<int> q;q.push(s);while (!q.empty()){int u=q.front();q.pop();b[u]=false;for (int i=head[u];i;i=edge[i].pre)if (edge[i].cap>edge[i].flow&&dis[edge[i].to]>dis[u]+edge[i].w){dis[edge[i].to]=dis[u]+edge[i].w;pre[edge[i].to]=u;now[edge[i].to]=i;if (!b[edge[i].to]) {b[edge[i].to]=true;q.push(edge[i].to);}}}if (dis[t]!=inf) return true;return false;
}
int doing()
{int ansf=0;while (spfa()){int flow=inf;for (int i=t;i!=s;i=pre[i])flow=min(flow,edge[now[i]].cap-edge[now[i]].flow);ansf+=flow;ans+=flow*dis[t];for (int i=t;i!=s;i=pre[i]) edge[now[i]].flow+=flow,edge[((now[i]-1)^1)+1].flow-=flow;}	return ansf;
}void work()
{memset(head,0,sizeof(head));tot=0;n=read(),m=read(),k=read();int x,y,num=0;s=0,t=n*2+1;for (int i=1;i<=n;i++){x=read();num+=x;addedge(i,t,x,0);addedge(s,n+i,x,0);} for (int i=1;i<=m;i++){x=read(),y=read();addedge(0,1,x,y);}for (int i=1;i<=k;i++){x=read(),y=read();for (int j=1;j<=n;j++)if (j+x+1<=n) addedge(j+n,j+x+1,inf,y);}for (int i=1;i<n;i++) addedge(i,i+1,inf,0);ans=0;printf("Case %d: ",++total);if (doing()!=num) printf("impossible\n");else printf("%d\n",ans); 
}int main()
{int T=read();for(int i=1;i<=T;i++) work();return 0;
}


 

这篇关于bzoj3280(莫名tle)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/245088

相关文章

poj 2175 最小费用最大流TLE

题意: 一条街上有n个大楼,坐标为xi,yi,bi个人在里面工作。 然后防空洞的坐标为pj,qj,可以容纳cj个人。 从大楼i中的人到防空洞j去避难所需的时间为 abs(xi - pi) + (yi - qi) + 1。 现在设计了一个避难计划,指定从大楼i到防空洞j避难的人数 eij。 判断如果按照原计划进行,所有人避难所用的时间总和是不是最小的。 若是,输出“OPETIMAL",若

举例说明 如何通过SparkUI和日志定位任务莫名失败?

有一个Task OOM: 通过概览信息,发现Stage 10的Task 36失败了4次导致Job失败。概览信息中显示最后一次失败的退出代码(exit code)是143,意味着发生了内存溢出(OOM,即Out of Memory)。 可以点击Stage链接,查看为什么导致了Executor OOM(Out of Memory)。 通过上述图片发现,大部分Task都成功了,只有一个失败了,

HDU 3026 Chinese Chess 二分匹配(TLE...)

求有多少个点,满足不选这个点最大匹配减少,超时了,挖个坑, 以后实力够了在来填坑。。。 #include <cstdio>#include <cstring>#include <vector>using namespace std;const int maxn = 10010;const int maxm = 10010;bool vis[maxn];int y[maxn];in

nyoj-491--幸运三角形--简单深搜枚举(TLE)

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=491 悲剧啊,TEL了#include<stdio.h>#include<string.h>int n,cnt,vis[30],dp[22][22];int a,b;bool fun(){for(int i=0;i<n;i++){for(int j=0;j<n-i-1;j

*求问?:为何会超时(TLE)?

D - Grid and Magnet (atcoder.jp) 错误代码: //2024年5月5日14:53:43#include <bits/stdc++.h>#define move mmove //防止与头文件中重复using namespace std;int h,w;string s[1000];const int move[4][2]={{1,0},{-1,0},{0

iPhone 5s TableView莫名崩溃或是手势操作的BUG(手机适配)

这几天在适配低版本的iPhone 5s系列时总是莫名崩溃,崩在APPDelegate,提示信息为 objc_msgSend(其实我没有调用该方法) 再找了一大圈之后,发现其实是下面这个方法会导致版本不兼容,导致直接崩溃(本意是防止手势冲突问题,后来发现完全没有必要使用),解决方法就直接删除就可以了 -(BOOL)gestureRecognizer:(UIGestureRecogn

linux程序莫名异常怎么查

内存异常经常导致程序出现莫名其妙的错误,往往很难查证,本文介绍在linux下的各种常见内存异常的查证工具和方法。 1 访问空指针/未初始化指针/重复释放内存 对于像访问空指针、未初始化指针(非法地址),重复释放内存等内存异常,linux默认会抛异常。 比如下面代码有空指针访问,编译运行后会coredump int main(){int *p=0;*p=6;return 0;} 对于此

IE浏览器——莫名打不开

有时候win10自带的IE浏览器会莫名其妙出现打不开的现象,想要打开网页时,总是出现找不到网页,让在必应上搜索,或者刷新,让人很烦,今天给大家分享一个小妙招 1.按住电脑的windows+R键,在弹出的框中输入inetcpl.cpl,点击确定 2.在弹出的选项卡中,选择“高级”选项,点击重置 3.若出现让你重启电脑的情况,直接点击确定,重启电脑即可。

莫名卷入寒冬(一)

11.26 刚过完圣诞节后的第一天上午,新版本的需求讨论会还一直没开,我看了看原型准备先把相关功能做一做先,看有没有什么问题。结果下午老板就把我和另一个同事叫进去,我以为是关于产品的问题带上了纸和笔,结果让我回去拿手机,然后说给我们微信发了一段话,让我们看看,我还以为是产品出了问题用户发来的反馈呢。。。 这一看吓我一跳,大概意思就是说说好的资金一直没到,两个老板撑不住了,就地解散。短短的一段话

关于hdu 1007 老是 TLE的认知

经过多次修改发现,同样的代码,把cin换成scanf就AC了,然后查找相关资料发现,,scanf效率比cin好的多,cout 比print 效率好。mark