hdu 4598 Difference(奇圈判定+差分约束)

Maya vray 3S皮肤材质球设置与材质节点连接 阅读详情

这是通化邀请赛的题,当时比赛的时候还完全没想法呢,看来这几个月的训练还是有效果的。。。得意

题意要求(1) |ai| < T for all i   (2) (vi, vj) in E <=> |ai - aj| >= T。由于(1)条件的存在,所以(2)条件能成立当且仅当ai和aj一正一负。由此可见,图中某条路上的元素正负值分别为正->负->正->负。。。显然当图中存在奇环的时候是无解的。判断奇环用二分染色,color[i]=0表示假设i节点未被染色,1表示假设i节点权值为正,2为负。

如果图中没有奇环呢?对于图中的一条边<u, v>,如果color[u]=1,那么显然a[u]-a[v] >= T,color[u]=2, 也就是 -(a[u]-a[v]) >= T;

而如果<u, v>不是图中的边, 必然有 | a[u]-a[v] |  < T。由color数组也同样能得到两个不等式。

得到不等式组后无脑跑spfa判负环就行了。。。光是判负环的spfa是不用考虑加入0节点的,在初始化得时候将每个节点加到队列一次就够了。而且d数组也完全可以初始化为0。因为你只需要判负环而已。

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<fstream>
#include<sstream>
#include<vector>
#include<string>
#include<cstdio>
#include<bitset>
#include<stack>
#include<queue>
#include<cmath>
#include<map>
#include<set>
#define FF(i, a, b) for(int i=a; i<b; i++)
#define FD(i, a, b) for(int i=a; i>=b; i--)
#define REP(i, n) for(int i=0; i<n; i++)
#define CLR(a, b) memset(a, b, sizeof(a))
#define PB push_back
#define LL long long
#define eps 1e-10
#define debug puts("**debug**")
using namespace std;

const int maxn = 333;
const int T = 1000;
struct Edge
{
    int from, to, dist;
};
vector<Edge> edges;
vector<int> G[maxn];
vector<int> g[maxn];
int n, ncase, color[maxn], flag, d[maxn], cnt[maxn];
bool inq[maxn];
char ch[maxn][maxn];

void init()
{
    REP(i, n) G[i].clear(), g[i].clear();
    edges.clear(); CLR(color, 0);
}

void add(int a, int b, int c)
{
    edges.PB((Edge){a, b, c});
    int nc = edges.size();
    G[a].PB(nc-1);
}

void dfs(int u, int c) //二分染色 
{
    color[u] = c;
    int nc = g[u].size();
    REP(i, nc)
    {
        int v = g[u][i];
        if(!color[v]) dfs(v, 3-c);
    }
}

bool spfa()
{
    queue<int> q;
    REP(i, n) d[i] = cnt[i] = 0, inq[i] = 1, q.push(i);
    while(!q.empty())
    {
        int u = q.front(); q.pop();
        inq[u] = false;
        REP(i, G[u].size())
        {
            Edge& e = edges[G[u][i]];
            if(d[e.to] > d[u] + e.dist)
            {
                d[e.to] = d[u] + e.dist;
                if(!inq[e.to])
                {
                    q.push(e.to);
                    inq[e.to] = true;
                    if(++cnt[e.to] > n) return true;
                }
            }
        }
    }
    return false;
}

bool solve()
{
    //判奇圈
    REP(i, n) if(!color[i]) dfs(i, 1);
    REP(i, n) REP(j, g[i].size()) if(color[i] == color[g[i][j]]) return 0;
    
    REP(i, n)
    {
        FF(j, i+1, n)
        {
            if(ch[i][j] == '1')
            {
                if(color[i] == 1) add(i, j, -T);
                else add(j, i, -T);
            }
            else
            {
                if(color[i] == 1) add(j, i, T-1);
                else add(i, j, T-1);
            }
        }
    }
    if(spfa()) return 0;
    return 1;
}

int main()
{
    scanf("%d", &ncase);
    while(ncase--)
    {
        init();
        scanf("%d", &n);
        REP(i, n)
        {
            scanf("%s", ch[i]);
            REP(j, n) if(i != j && ch[i][j] == '1') g[i].PB(j);
        }
        if(solve()) puts("Yes");
        else puts("No");
    }
    return 0;
}


防火墙——双机热备理论讲解 本端和对端协商失败。有可能是因为本端和对端设备的软件版本不一致、某端配置错误、对端设备的心跳接口状态为Down、HRP源或目的端口号被修改、或者底层链路不通等原因导致。会话表、SeverMap表、IP监控表、分片缓存表、GTP表、黑名单、PAT方式端口映射表、NO-PAT方式地址映射表。两台设备一主一备,正常情况下业务流量由主设备处理,当主设备故障时,业务流量平滑切换到备用设备进行处理,业务不中断。开启自动备份后,当主用设备配置了一条可备份的命令或产生了可备份的会话表状态时,会直接备份到备用设备上。 阅读详情

相关推荐

Android开发者必看:5分钟搞定MQTT客户端连接EMQX服务器(附完整代码)

本文为Android开发者提供了一份快速实现MQTT客户端连接EMQX服务器的实战指南。通过引入Eclipse Paho SDK,详细讲解了从项目配置、权限申请到核心连接、主题订阅与消息发布的完整流程,并附有即拿即用的Kotlin代码,帮助开发者在物联网应用中高效集成轻量级实时通信功能。

weixin_29228781的博客 271

HDU.5215.Cycle(判环)

题目链接 \(Description\) 给定\(n\)个点\(m\)条边的无向图,问是否存在一个长度为奇数/偶数的简单环。 \(n\leq 10^5,m\leq 3\times 10^5\)。 \(Solution\) 容易想到DFS时直接黑白染色。但是只这样会遗漏一种偶环。 对于奇环黑白染色即可,二分图一定不存在奇环,存在奇环一定不是二分图。 对于偶环,因为两个奇环如果有至少一个公共点,它们都...

weixin_30932215的博客 139

二、基于C语言的JPEG解码代码详解

// JPEG解码 // 输入JPEG后输出Bitmap #include <stdio.h> #include <stdlib.h> #pragma warning(disable : 4996) unsigned int BuffIndex; // JPEG数据的位置 unsigned int BuffSize; // JPEG数据的大小 unsigned int BuffX; // 图像的横向尺寸 unsigned int BuffY; //

m0_37633745的博客 4455

HDU 4598 Difference 差分约束 + 判奇圈

题意:给你一个无向图 这个图是difference的如果存在一个正实数T使得图中所有的点的绝对值|ai|=T 问你是否存在一个这样的图 思路:一般见到不等式就要考虑考虑差分约束了 观察这个题的条件发现 每个点的绝对值都小于T 但是两个点的差值的绝对值却能够大于T 这只能是一种情况 那就是两个点一正一负 也就是要对其进行二分染色 如果存在奇环 则一定不存在这种图 还有就是这个题存在一个隐含的条件:

s_h_r 546

40、基于指令的GPU编程:OpenACC与OpenMP的深入解析

本文深入解析了两种基于指令的GPU编程模型——OpenACC和OpenMP。从编程复杂度、数据处理方式和性能表现等多个方面对两者进行了对比分析,并结合实际应用场景提供了选择建议。通过详细的代码示例和性能测试结果,帮助开发者更好地理解和应用这两种编程模型,以充分发挥GPU的并行计算能力。

q5r6s7的博客 134

【人工智能之深度学习】21. 自动驾驶感知实战:YOLOv4复杂天气优化方案(BDD100K全代码+效果对比)

摘要:自动驾驶摄像头在雨雾天气下易受图像模糊、目标遮挡影响,导致YOLOv4检测精度骤降。本文基于BDD100K公开数据集(含多天气场景),设计三阶段优化方案:1)物理建模生成雨雾效果(雨滴线条+大气散射模型),将恶劣天气样本占比从20%提升至40%;2)在YOLOv4颈部嵌入CBAM注意力机制,强化模糊区域特征提取;3)L1剪枝(30%)+TensorRT量化实现轻量化。需特别说明:本文为教学虚拟案例,不可直接用于车载部署,实际落地需结合多传感器融合与ISO 26262认证。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1684

染色法判定二分图

欢迎大家访问我的博客:博客传送门 染色法判定二分图 题目描述 二分图 二分图的含义:二分图是有两组点集XXX和YYY组成的无向图,其中点集XXX中的点之间互相没有关联,点集YYY中的点之间互相没有关联,但是点集XXX中的点和点集YYY中的点之间可能存在关联,用一条无向边来表示这种关联。 如下图所示: 橙色节点都属于点集XXX,互相之间没有边相连;蓝色节点都属于点集YYY,互相之间没有边相连。绿色代表无向边,用来连接点集XXX和点集YYY中的节点。 二分图的判定 圈的定义 图论中圈的定义是:任选一个

qq_45832461的博客 1411

26. 如何给 SAP BTP Cloud Foundry 环境分配运行时内存

摘要:本文解答了SAP BTP Cloud Foundry环境中Space可用内存为0MB的问题。指出Space内存配额取决于Org配额分配,其计算方式为Org总配额减去所有运行中应用实例的内存预留总和。详细解释了SAP BTP的资源分配层级(Global account→Subaccount→Environment→Org→Space),并说明如何通过Global account的Entity Assignments查看Memory Plan配额分配(以GB为单位)。最后建议遇到问题的用户检查Subacc

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1262

HDU 5215 Cycle --- 奇偶环的判定

题意: 给出一个无向图,n<=100000,m <= 300000,判断图中是否有奇圈,是否有偶圈。 思路: 对于奇圈的判定,可以利用二分图染色。若此图是二分图,那么其中一定不存在奇圈,若此图不是二分图,那必定存在奇圈。若原图不连通,则对每个连通分量分别做二分图染色 对于偶圈的判定,首先考虑所有圈必然在边双连通分量中(题中要求的圈不一定是简单圈),边双连通分量之间是不存在圈的(因为桥的

AndyTeen的专栏 1528

【Claude】Not logged in · Please run /login 报错已解决

意味着 Claude Code 没有找到任何有效凭证。直接/login——交互式首选;检查——排查环境变量污染;CI 用——自动化场景标准方案;macOS Keychain 异常——/logout/login重置;时钟偏差——校准系统时间。参考:Claude Code 官方《错误参考》"身份验证"章节、官方认证优先级文档、社区 Token 过期排查记录。

博客 9977

【漏洞复现】用友NC-Cloud-反序列化-ResourceManagerServlet

NC Cloud是用友公司推出的大型企业数字化平台。支持公有云、混合云、专属云的灵活部署模式。NC Cloud完全基于云原生架构,技术先进、性能稳定、自主安全可控,支撑大中型以及超大型集团企业N层多site混合云部署方案,支持整个系统高可用、弹性扩展、双/多活,以及快速灾备恢复能力等。用友-NC-Cloud ResourceManagerServlet 接口存在反序列化漏洞,使得攻击者可以通过构造特定的请求远程执行恶意代码。此漏洞可能导致攻击者获取系统权限、执行任意命令,严重威胁系统的机密性和完整性。

漏洞复现 1366

HDU 3118 Arbiter 判定奇圈

题目来源:HDU 3118 Arbiter 题意:翻译过来就是不能有奇圈 每走一步状态会变化 当他回到起点时假设和原来的状态不一样 可能会死 求至少去掉多少条边能够避免这样的状况发生 思路:二分图是没有奇圈的 最多就15个点 我们用状态压缩枚举那些点是在二分图的一边和另外一边 确定二分图之后枚举输入的边 每条边连接的不能是同一集合的点 不符合就去掉 最后取小 #include ...

weixin_33816821的博客 171

更新|芒果YOLOv8改进182:注意力机制MLLA:即插即用|融合 Mamba 设计精髓的线性注意力视觉Transformer

芒果YOLOv8改进:即插即用,最新注意力机制MLLA:融合 Mamba 设计精髓的线性注意力视觉Transformer

包括YOLOv5、YOLOv7、YOLOv8等模型改进 864

hdu4598Difference(差分约束)

题目请戳这里 题目大意:给一张图,n个点,一些边,第i个点有一个权值ai,使之满足2个约束条件: 1:abs(ai) 2:如果点i和点j之间有边abs(ai - aj) >= T 其中T是一个正实数。 让判断给定的图是否存在一个赋值满足上述约束条件。 题目分析:差分约束。当时比赛的时候很傻很天真,判断不存在奇环就可以了。要满足2个约束条件的话,相邻2个点一正一负才可以满足。但是忽略了条

ophunter的专栏 1105

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

hdu 4598 Difference(spfa+差分约束,4级)

如果本网站登录不畅,可以从以下地址访问:http://code.hdu.edu.cn Difference Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 236    Accepted Submission(s

nealgavin的专栏 1017

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Hdu 4594 Difference(奇圈判断+差分约束)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4598 思路:由题意可知两相连点ai符号一定相反,所以若存在奇圈则一定无解。染色,colour[i]==1表示为正,colour[i]==2表示为负。由于(b)条件为充要条件,所以对于图中的点| a[i]-a[j] | >= T,对于非图中点| a[i]-a[j] | = T,否则a[j]-a[i]

哆啦AC梦的博客 951

HDU4598 Difference(差分约束)

题意: 有一个图,给图上每个顶点都赋一个实数Ai。如果存在一个正整数T满足下面两个条件,这个图就是一个"difference"。 1. |Ai| &lt;= T。 2. 如果点i,j构成的边在图中存在,则 |Ai - Aj| &gt;= T;否则 |Ai - Aj| &lt; T。("&lt;=&gt;" 代表充要条件) 给出图,问这个图是否是一个"difference"。   思路:...

hcx11333的博客 343

HDU 4568 Difference(差分约束 + 二分图)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4598 题意:问你是否存在一张图满足以下两个条件: (a) |ai| < T for all i and (b) (vi, vj) in E <=> |ai - aj| >= T, 思路:因为(b)中不等式易知,只有当这张图是二分图的前提下,才能满足两个条件,不...

Tongqi 550

hdu 4598 Difference

为了做着道题,下午又找了几道差分约束的题做了,因为差分约束是很久以前看的,没怎么理解,现在看看,感觉理解的还不错了! 题意:判断是否存在图,使得像连的两个定点的值的差的绝对值大于等于T,并且每个定点的值都是小于T的。 大致思路:比赛的时候就想到求奇圈了,但是一直wa,还很不理解,以为是代码写错了,后来想到,题中说的是相连的边的要求,那么也就要求了不想连的边的绝对值小于T了,而只求奇圈没有 满足

生活总是要微笑着面对~ 1017

HDU 4598 Difference

#include #include #include #include #include #include #define N 305 #define M 90005 #define INF 1<<29 using namespace std; int map[N][N],cnt,head[N],vis[N],index[N],n,dis[N],mark[N]; struct edge{

AB 733

HDU 4598

这道题其实不需要考虑具体数值,但可以肯定的是,相连边的两端点必定有一正一负,至于谁正谁负,并不重要,这是可以思考的,很明显的一个二分图性质,如果不满足此条件,是不可能满足题目第二个条件的。所以首先对题目二分染色。对于T,随意指定一个值即可。 注意题目第二个条件为充要条件,所以要考虑没有相连的两点。 uv相连时,设u是正数,很明显有u-v<=-T uv不连时,设u是正数,有v-u<...

weixin_30467087的博客 145

HDU - 4598 Difference

题意: 有一个图,给图上每个顶点都赋一个实数Ai。如果存在一个正整数T满足下面两个条件,这个图就是一个"difference"。 |Ai| <= T。 (vi, vj) in E <=> |ai - aj| >= T。 如果点i,j构成的边在图中存在,则 |Ai - Aj| >= T;否则 |Ai - Aj| < T。("<=>" 代表充要条件) 给出图,问这个图是否是一个"difference"。 思路: 有题意可知,任意两个相邻的点,那

Top_xiao的博客 328

hdu 4781 Assignment For Princess(构造法)

构造一个n个点,m条有向边的图,需要满足两个要求: 1.任意一对点对之间最多有一条有向边,且没有自环。 2.保证图联通,m条边的边权严格属于[1, m]且互不相同,从任意点出发,经过任意路径后回到起始点,经过的边权总和是3的倍数。 其中第二个要求似乎听上去很玄乎,其实可以一步一步的来:要同时满足1.2的要求,而且输入数据 m >= n + 3,那么也就是说,我们总是能轻松的先构造一个n个点n

diary_yang的专栏 4243

UVA 11613 Acme Corporation(不固定流量的最小费用流)

题意好长。。。。变量好多。。。。 增加源点跟汇点。然后将每个月份看成一个点,然后拆成两个点u 跟 u+n。  从s向每个u连一条的弧,表示最多生产量及价值。 从每个u+n向t连一条的弧,表示最多销量及价值。 对于存放的情况 for(int j=0; j的弧,表示存放所要花费的价值。 这题并不需要满足销量最大,也就是不固定流量的最小费用流,也就是说当s-t增广长度大于0的时候停止增广就行了

diary_yang的专栏 2177

Codeforces 362E Petya and Pipes (费用流)

n个点的网络,可以增加某些弧的容量,最大增加量为K,求增加后的最大流。 要求增大K容量后的最大流,那如果把增加的流量加上费用呢?那题目也就是说,当费用为K的时候,最大流是多少。。。。 把每条边拆成两条边跟,然后求s-t费用流,在费用等于K的时候终止费用流就行了。 #include #include #include #include #include #define REP(i, n) fo

diary_yang的专栏 1907

UVA 12661 Funny Car Racing(最短路)

n个点m条边的有向图,求s->t 的最短路。其中每条边不仅有一个边权,还有对应的一个a, b值。从你出发开始,该边将开放a的时间,然后关闭b的时间,然后开。。关。。。 几乎就是裸的最短路了,就是松弛的时候有两种松弛方法,一种是走到点u的时候,能直接走到v;另一种是时间不够,需要等“一段”时间,然后再走到v。 #include #include #include #include #incl

diary_yang的专栏 1898
上一篇: poj 3608 Bridge Across Islands(两凸包最近距离)
下一篇: sgu 286. Ancient decoration(最小环覆盖)
yang_bro
博客等级 码龄15年 37粉丝 119原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值