HDU 3666 THE MATRIX PROBLEM(取对数的差分约束)
发布日期:2021-06-30 10:24:43
浏览次数:2
分类:技术文章
本文共 1432 字,大约阅读时间需要 4 分钟。
l o g L < = l o g C i j + l o g a i − l o g b j < = l o g R log\ L <= log\ C_{ij} + log\ a_i- log\ b_j <= log\ R log L<=log Cij+log ai−log bj<=log R
s i > = l o g L − l o g C i j + s n + j s_i>=log\ L-log\ C_{ij}+s_{n+j} si>=log L−log Cij+sn+j
s n + j > = l o g C i j − l o g R + s i s_{n+j}>=log\ C_{ij}-log\ R+s_i sn+j>=log Cij−log R+si
跑最长路即可
然后因为会超时,我把负环条件变小了一点…
其实是因为数据水,这样是不对的…还是要去学优化啊…
#includeusing namespace std;const int maxn = 8e5+10;const int inf = 1e9;int n,m;double L,R,a[409][409];struct edge{ int to,nxt; double w;}d[maxn]; int head[maxn],cnt=1;void add(int u,int v,double w){ d[++cnt] = (edge){ v,head[u],w },head[u] = cnt;}double dis[maxn];int vis[maxn],shu[maxn],kl;bool spfa(int s){ for(int i=0;i<=n+m;i++) dis[i] = -inf,vis[i] = shu[i] = 0; queue q; q.push( s ); dis[s] = 0; while( !q.empty() ) { int u = q.front(); q.pop(); vis[u] = 0; for(int i=head[u];i;i=d[i].nxt ) { int v = d[i].to; if( dis[v] =kl ) return false; } } } } return true;}int main(){ while( cin >> n >> m >> L >> R ) { L = log(L), R = log(R); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { scanf("%lf",&a[i][j] ); a[i][j] = log( a[i][j] ); add( n+j,i,L-a[i][j] ); add( i,n+j,a[i][j]-R ); } for(int i=1;i<=n+m;i++) add(0,i,0); kl = sqrt(n+m+100); if( spfa(0) ) cout << "YES\n"; else cout << "NO\n"; cnt = 1; for(int i=0;i<=n+m;i++) head[i] = 0; }}
转载地址:https://issue-is-vegetable.blog.csdn.net/article/details/110004086 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月10日 23时37分33秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Oracle 数据库(database) 与 实例(instance) 的概念及关系整理
2019-04-30
Oracle 的 表空间(Tablespace)、用户(User)、模式(Schema)
2019-04-30
Oracle数据库的数据备份,本地,异地,exp-imp,expdp-impdp
2019-04-30
补:Oracle 的数据泵导出(expdp)及导入(impdp)
2019-04-30
oracle 通过操作系统认证的方式登录sys时报错:ORA-01031:权限不足
2019-04-30
关于PL/SQL Developer导入csv文件
2019-04-30
Oracle的 wm_concat 的排序问题,Oracle的 listagg 函数
2019-04-30
Oracle 行转列 pivot函数基本用法
2019-04-30
Oracle 行转列 动态出转换的列
2019-04-30
Oracle 显式游标的简单案例
2019-04-30
Oracle字符串分隔符替换(替换奇数个或偶数个)
2019-04-30
Oracle 利用 UTL_SMTP 包发送邮件
2019-04-30
Oracle 自定义函数实现split功能,支持超长字符串和clob类型的分隔
2019-04-30
Oracle 的循环中的异常捕捉和处理
2019-04-30
Oracle通过pivot和unpivot配合实现行列转换
2019-04-30
给Oracle数据库换一个1522端口的监听
2019-04-30
Excel表格数据生成ECharts图表
2019-04-30
阿里云短信服务python版,pyinstaller打包运行时缺少文件
2019-04-30
Oracle的pfile和spfile的一点理解和笔记
2019-04-30