社区讨论
调了一晚上了,人要紫砂了
P1993小 K 的农场参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @lo7r76lg
- 此快照首次捕获于
- 2023/10/27 06:26 2 年前
- 此快照最后确认于
- 2023/10/27 06:26 2 年前
CPP
#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#define in int /*long long*/
#define ri register int /*long long*/
#define maxn 500005
using namespace std;
in n,m;
inline in read()
{
in x=0,ff=1;
char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-')
ff=-1;
ch=getchar();
}
while (ch>='0'&&ch<='9')
{
x=(x<<3)+(x<<1)+ch-'0';
ch=getchar();
}
return x*ff;
}
inline void write(in x)
{
if(x<0)
{
putchar('-');
x=-x;
}
if(x>9)
write(x/10);
putchar(x%10+'0');
}
inline void write_space(in x)
{
write(x);putchar(32);
}
inline void write_line(in x)
{
write(x);putchar(10);
}
in cnt,head[maxn];
struct node{
in next,to,w;
}edge[maxn << 1];
void add(in u,in v,in w){
edge[++cnt].to = v;
edge[cnt].w = w;
edge[cnt].next = head[u];
head[u] = cnt;
}
void spfa(in u){
in dist[maxn],cnt_push[maxn];
bool vis[maxn],flag = 1;
memset(vis,0,sizeof(vis));
memset(dist,-0x3f,sizeof(dist));
memset(cnt_push,0,sizeof(cnt_push));
queue <in> q;
dist[u] = 0;
q.push(u);
vis[u] = true;
cnt_push[u] ++;
while(!q.empty()) {
in f = q.front();
// cout << f << ' ' << dist[f] << endl;
q.pop();
vis[f] = false;
for(in i = head[f] ; i ; i = edge[i].next){
in v = edge[i].to;
if(dist[v] < dist[f] + edge[i].w){
dist[v] = dist[f] + edge[i].w;
if(!vis[v]){
vis[v] = true;
cnt_push[v] ++;
if(cnt_push[v] > n + 1){
flag = 0;
break;
}
q.push(v);
}
}
}
if(!flag){
cout << "No";
return ;
}
}
cout << "Yes";
// for(int i = 1 ; i <= n ; i ++){
// cout << dist[i] << ' ';
// }
}
int main()
{
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
n = read(),m = read();
for(int i = 1 ; i <= n ; i ++)
add(0,i,0);
for(int i = 1 ; i <= m ; i ++){
in f = read();
in x = read(),y = read();
if(f == 1) add(x,y,-read());
else if(f == 2) add(y,x,read());
else add(x,y,0),add(y,x,0);
}
spfa(0);
//fclose(stdin);
//fclose(stdout);
system("pause");
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...