cf 434d Nanami's Power Plant 网络流

题目大意就是有n个发电机,每个发电机有l到r个档位可供选择,每个档位的输出功率是已知的,另外还有一些限制条件,形式为xu ≤ xv + d,表示发电机u的档位要小于v的档位加d,d是一个已知的整数。求n个发电机的最大功率。

假设没有最后那个限制条件,那么对于每个发电机i拆点成l-1,l。。。到r相邻两档位连边为max-f(i),f(i)是档位i的输出功率,max是一个大数,大于等于所有档位的输出功率。l-1与源点连inf的边,r与汇点连inf的边。假设最大流为flow,那么max*n-flow就是答案。

然后考虑这些限制条件,对于每个条件xu ≤ xv + d,对于u的每个拆点x,连接 ( u , x ) 到 ( v , x - d )容量为inf的边,此时的max*n-flow就是答案。

然后为什么这样就会满足限制呢,因为假设不满足,此时在残余网络中又会出现一条增广路,直到满足条件为止。

 

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn=15000;
#define inf 1<<30
int level[maxn],que[maxn];
int head[maxn],lon;
int aa[70],bb[70],cc[70];
int l[70],r[70];
int start[70];
struct edge
{
    int next,to,c;
}e[500000];
void edgeini()
{
    memset(head,-1,sizeof(head));
    lon=-1;
}
void edgemake(int from,int to,int c)
{
    e[++lon].c=c;
    e[lon].to=to;
    e[lon].next=head[from];
    head[from]=lon;
}
void make(int from,int to,int c)
{
    edgemake(from,to,c);
    edgemake(to,from,0);
}

bool makelevel(int s,int t)
{
    memset(level,0,sizeof(level));
    int front=1,end=0;
    que[++end]=s;
    level[s]=1;
    while(front<=end)
    {
        int u=que[front++];
        if(u==t) return true;
        for(int k=head[u];k!=-1;k=e[k].next)
        {
            int v=e[k].to;
            if(!level[v]&&e[k].c)
            {
                que[++end]=v;
                level[v]=level[u]+1;
            }
        }
    }
    return false;
}

int dfs(int now,int t,int maxf)
{
    if(now==t||maxf==0) return maxf;
    int ret=0;
    for(int k=head[now];k!=-1;k=e[k].next)
    {
        int u=e[k].to;
        if(level[u]==level[now]+1&&e[k].c)
        {
            int f=dfs(u,t,min(e[k].c,maxf-ret));
            e[k].c-=f;
            e[k^1].c+=f;
            ret+=f;
            if(ret==maxf) return ret;
        }
    }
    if(ret==0) level[now]=0;
    return ret;
}

int maxflow(int s,int t)
{
    int ret=0;
    while(makelevel(s,t))
    {
        ret+=dfs(s,t,inf);
    }
    return ret;
}
int fun(int p,int x)
{
    return aa[p]*x*x+bb[p]*x+cc[p];
}
int id(int p,int x)
{
    return start[p]+x-l[p];
}
int main()
{
    int n,m;
    int i,j;
    scanf("%d%d",&n,&m);
    edgeini();
    int MAX=-inf;
    int cnt=0;
    for(i=1;i<=n;i++)
        scanf("%d%d%d",&aa[i],&bb[i],&cc[i]);
    for(i=1;i<=n;i++)
    {
        scanf("%d%d",&l[i],&r[i]);
        start[i]=cnt+1;
        cnt=cnt+r[i]-l[i]+2;
        for(j=l[i];j<=r[i];j++)
            MAX=max(MAX,fun(i,j));
    }
    for(i=1;i<=n;i++)
    {
        make(0,start[i],inf);
        for(j=l[i];j<=r[i];j++)
            make(id(i,j),id(i,j+1),MAX-fun(i,j));
        make(id(i,r[i]+1),cnt+1,inf);
    }
    int u,v,d;
    while(m--)
    {
        scanf("%d%d%d",&u,&v,&d);
        for(i=l[u];i<=r[u];i++)
        {
            if(i-d>=l[v]&&i-d<=r[v]+1)
                make(id(u,i),id(v,i-d),inf);
        }
    }
    int ans=maxflow(0,cnt+1);
    printf("%d\n",MAX*n-ans);
    return 0;
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网络安全培训教材 网络安全培训教材全文共24页,当前为第1页。 网络安全基础知识培训 网络安全培训教材全文共24页,当前为第2页。 培训目的 让员工对网络安全有一定了解,并在工作中按照相应的规范要求进行作业 培训对象 培训讲师 培训时间 所有入职员工 一小时 学习重点 1.网络安全业界事件及形势 2.网络安全的定义 3.网络安全基本概念 4.网络安全管理要求 5.日常检查要求 网络安全培训教材全文共24页,当前为第3页。 一、网络安全业界事件及形势—安全事件 反应堆已封项,马 上可以发电了 年9月,伊朗核设施突遭来源不明的网络病毒攻击,纳坦兹离心浓缩厂的上千台离心机报废 年2月27日江苏省公安厅紧急通知由于海康威视监控设备存在巨大安全隐患,部分设备已被境外IP控制,要求对海康监控设备进行全面清查。 布什尔核电站 哈哈!我叫震网, 我来了 警示一、弱密码不可取,未修改初始密码更易被攻击 警示二、系统的相对封闭是系统安全运行的首要保障 网络安全培训教材全文共24页,当前为第4页。 一、网络安全业界事件及形势—常见的威胁 病毒 蠕虫 木马 D-DOS 垃圾邮件 僵尸网络 网络钓鱼 网络钓鱼 客户网络承载数 黑客 类别 目的及威胁 主要攻击方式 信息窃取类 主要以盗取机密信息、个人数据、敏感数据为目的,隐蔽性强,威胁国家保密信息、公司商业机密,个人隐私数据等,对于被攻击目标危害极大。 木马、网络钓鱼、垃圾邮件、间谍软件等 拒绝服务类 以攻瘫目标为目的,即攻击者想办法让目标机器停止提供服务,是黑客常用的攻击手段之一。拒绝服务攻击问题也一直得不到合理的解决,究其原因是因为这是由于网络协议本身的安全缺陷造成的,从而拒绝服务攻击也成为了攻击者的终极手法 病毒、蠕虫、DDOS、僵尸网络 远程控制类 所谓远程控制,是指管理人员在异地通过计算机网络异地拨号或双方都接入Internet等手段,连通需被控制的计算机,将被控计算机的桌面环境显示到自己的计算机上,通过本地计算机对远方计算机进行配置、软件安装程序、修改等工作,可以进行任何危险操作。 木马、间谍软件、病毒、APT 网络安全培训教材全文共24页,当前为第5页。 各方对ICT供应链网络安全越来越关注,强调产品在供应链中的高效动、完整性和数据及隐私保护 测试工艺工程师(生产软件管理(含技术员)) 年9月,伊朗核设施突遭来源不明的网络病毒攻击,纳坦兹离心浓缩厂的上千台离心机报废 伪造产品(Counterfeit):产品不是通过正规可靠渠道供应的,但是却以合法产品的身份出现。 警示一、弱密码不可取,未修改初始密码更易被攻击 从运营商到最终用户对网络安全要求和隐私保护都更加重视 中国政府客户在政务云招标中采取了NIST SP800-53。 测试工艺工程师(生产软件管理(含技术员)) 倡导建立统一的供应链评估标准,支持ICT行业全球化的发展 一、网络安全业界事件及形势—业界形式 三、网络安全基本概念-关键岗位 手工测试员(含无线模块测试、FT及整机测试) 软件及可存储软件的载体包括但不限于硬盘、SD卡、CF卡、U盘、磁带、Flash。 一、网络安全业界事件及形势—常见的威胁 所谓远程控制,是指管理人员在异地通过计算机网络异地拨号或双方都接入Internet等手段,连通需被控制的计算机,将被控计算机的桌面环境显示到自己的计算机上,通过本地计算机对远方计算机进行配置、软件安装程序、修改等工作,可以进行任何危险操作。 网络安全管理要求-红线 手工测试员(含无线模块测试、FT及整机测试) 防止使用被伪造部件,保障 员工电脑安装与工作无关的软件 以攻瘫目标为目的,即攻击者想办法让目标机器停止提供服务,是黑客常用的攻击手段之一。 一、网络安全业界事件及形势—业界形式 指保证合法用户对信息和资源的使用不会被不正当地拒绝。 误区2: 网络安全 = 防攻击防病毒 对产品和部件建立唯一标识, 运营商对供应链越来越从关注管理方法向关注细节和技术实现方式上转变,如:如何从技术上保证产品加载的软件完整性可校验; AEO标准: 经授权的经营者(Authorized Economic Operator),在世界海关组织(WCO)制定的《全球贸易安全与便利标准框架》中被定义为:"以任何一种方式参与货物国际通,并被海关当局认定符合世界海关组织或相应供应链安全标准的一方,包括生产商、进口商、出口商、报关行、承运商、理货人、中间商、口岸和机场、货站经营者、综合经营者、仓储业经营者和分销商"。 员工电脑安装与工作无关的软件 一、网络安全业界事件及形势—安全事件 一、网络安全业界事件及形势—业界形式 来料检验员(IQC)(存储类) 一、网络安全业界事件及形势—业界形式 各方对ICT供应链网络安全越来越关注,强调产品在供应链中的高效动、完整性和

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值