首页 > 其他分享 >Real Estate Is All Around

Real Estate Is All Around

时间:2024-09-23 19:36:12浏览次数:8  
标签:Real Around Estate int back add val push 805

  • 网络流的【世界线】模型:在每个时间点,新建三个点分别表示某个助手在该时间点的状态,向下一时间点的对应点连一条流量无穷的边以刻画时间流逝
  • 难以求出出售房产的顺序,既然如此,我们就要求当前房产只有在能被出售的前提下才给到某个助手
  • 但是我们必须要把某个房产给到一个助手呀?没关系,给小绿,用决策包容性解决这个问题
  • 用铅笔画图,在允许擦改的同时避免了黑笔的漏墨问题
  • 本题费用流的最大流前提保证了每个房产都会被处理
点击查看代码
#include <bits/stdc++.h>
using namespace std;
int opt[205],val[205];
vector<int>a[805],c[805],d[805],e[805];
int s,t,n,ans,dis[805],l[805],pr1[805],pr2[805];
bool v[805];
void add(int u,int v,int l,int w)
{
    a[u].push_back(v);
    a[v].push_back(u);
    c[u].push_back(l);
    c[v].push_back(0);
    d[u].push_back(a[v].size()-1);
    d[v].push_back(a[u].size()-1);
    e[u].push_back(w);
    e[v].push_back(-w);
}
int q[805*805];
bool spfa()
{
    for(int i=0;i<=4*n+1;i++)
    {
        dis[i]=INT_MAX;
        v[i]=false;
    }
    int L=0,R=1;
    q[1]=s;
    dis[s]=0;
    l[s]=INT_MAX;
    v[s]=true;
    while(L<R)
    {
        L++;
        int n1=q[L];
        v[n1]=false;
        for(int i=0;i<a[n1].size();i++)
        {
            if(c[n1][i]>0&&dis[n1]+e[n1][i]<dis[a[n1][i]])
            {
                l[a[n1][i]]=min(l[n1],c[n1][i]);
                dis[a[n1][i]]=dis[n1]+e[n1][i];
                pr1[a[n1][i]]=n1;
                pr2[a[n1][i]]=i;
                if(v[a[n1][i]]==false)
                {
                	R++;
                	q[R]=a[n1][i];
                    v[a[n1][i]]=true;
                }
            }
        }
    }
    return dis[t]!=INT_MAX;
}
void update()
{
    int p=t;
    while(p!=s)
    {
        c[pr1[p]][pr2[p]]-=l[t];
        c[p][d[pr1[p]][pr2[p]]]+=l[t];
        ans=ans-l[t]*e[pr1[p]][pr2[p]];
        p=pr1[p];
    }
}
int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        cin>>n;
        s=0;
        t=4*n+1;
        for(int i=0;i<=4*n+1;i++)
        {
            a[i].clear();
            c[i].clear();
            d[i].clear();
            e[i].clear();
        }
        ans=0;
        for(int i=1;i<=n;i++)
        {
            cin>>opt[i];
            if(opt[i]==1)
            {
                cin>>val[i];
                ans+=val[i];
                add(s,i,1,0);
                add(i,i+n,1,1);
                add(i,i+2*n,1,val[i]/10+((val[i]%10)>0));
                add(i,i+3*n,1,0);
                add(i,t,1,val[i]);
            }
            else
            {
                add(i+n,t,1,0);
                add(i+2*n,t,1,0);
				add(i+3*n,t,1,0);
            }
        }
        for(int i=1;i<n;i++)
        {
            add(i+n,i+n+1,n,0);
            add(i+2*n,i+2*n+1,n,0);
            add(i+3*n,i+3*n+1,n,0);
        }
        while(spfa())
        {
            update();
        }
        cout<<ans<<endl;
    }
    return 0;
}

标签:Real,Around,Estate,int,back,add,val,push,805
From: https://www.cnblogs.com/watersail/p/18427145

相关文章

  • 音视频生态下Unity3D和虚幻引擎(Unreal Engine)的区别
    技术背景好多开发者跟我们做技术交流的时候,会问我们,为什么有Unity3D的RTMP|RTSP播放模块,还有RTMP推送和轻量级RTSP服务模块,为什么不去支持虚幻引擎?二者区别在哪里?本文就Unity3D和虚幻引擎之间的差异,做个大概的分析,实际上,Unity3D和虚幻引擎(UnrealEngine)在游戏开发及其他相关领域都......
  • 学习如何:useEFFECT 和 useSTATE,一个 REACT 应用程序
    我一直在开发一个名为“Heat”的网络应用程序,该应用程序的唯一目的是帮助我学习和应用JavaScript并改进我的CSS,还有很多后端。我们的计划是创建一个具有视觉吸引力的网络应用程序,并具有一些有趣的功能。在这个过程中我学到了什么:前端是使用reactjs构建的,我选择react只是出于好......
  • C和指针:动态内存分配(malloc,calloc,realloc,free)
     动态内存分配⭐关联知识点:linux动态内存分配为什么使用动态内存分配声明数组必须用一个编译时常量指定数组的长度。但是,数组的长度常常在运行时才知道,由于它所需要的内存空间取决于输入数据。malloc和freemalloc和free,分别用于执行动态内存分配和释放。这些函数维护一个可用......
  • Unreal 配置插件依赖另一个插件
    例如:插件A依赖插件B1、把两个插件都放到项目Plugins文件夹下2、修改插件A的A.uplugin文件,添加如下片段"Plugins":[{"Name":"B","Enabled":true},...]3、修改插件A跟插件B的加载时间设置打开A.uplugin,设置加载时间为Default"Mo......
  • SG-SLAM: A Real-Time RGB-D Visual SLAMToward Dynamic Scenes With Semantic andGeo
    目录一、引言二、相关工作A.动态场景中的SLAMB.语义建图三、系统概述A.系统框架B.目标检测C.极线约束D.动态特征剔除策略E.动态特征剔除策略四、实验结果A.基于TUMRGB-D数据集的性能评估B.BonnRGB-D数据集的性能评估 C.动态特征剔除策略的有效性D.时间分析......
  • 【转载】《扩散模型是实时游戏引擎(Diffusion Models Are Real-Time Game Engines)》的
    地址:https://www.youtube.com/watch?v=VniPJII6ak08月29号,谷歌DeepMind发布了一篇名为《扩散模型是实时游戏引擎(DiffusionModelsAreReal-TimeGameEngines)》的论文,向我们展示了世界上第一个完全由神经模型驱动的游戏引擎,GameNGen。这也是历史上首次,AI能在不借助其他......
  • RestoreFormer++: Towards Real-World Blind Face Restoration from Undegraded Key-V
    RestoreFormer++:TowardsReal-WorldBlindFaceRestorationfromUndegradedKey-ValuePairs(IEEE,2023,8)PaperGitHub动机:认为之前的模型都只关注了图像的纹理信息,而忽视了人脸的细节信息,本文采用多尺度、交叉注意力的方式引入模型的语义信息.总体可以分为两大部分:......
  • 动态内存分配之realloc()函数详解
    目录一、函数简介二、函数原型参数返回值三、函数实现(伪代码)3.1.简化的realloc实现逻辑3.2.伪代码示例四、使用场景4.1.动态数组大小调整4.2.动态字符串大小调整4.3.内存优化4.4.复杂数据结构的内存管理4.5.跨函数内存管理4.6.灵活的内存分配策略五、......
  • Stable Diffusion majicMIX_realistic模型的介绍及使用
    一、简介majicMIX_realistic模型是一种能够渲染出具有神秘或幻想色彩的真实场景的AI模型。这个模型的特点是在现实场景的基础上,通过加入一些魔法与奇幻元素来营造出极具画面效果和吸引力的图像。传统意义的现实场景虽然真实,但通常情况下缺乏奇幻性,而majicMIX_realistic模型就是为了......
  • OpenAI Gym custom environment: Discrete observation space with real values
    题意:OpenAIGym自定义环境:具有实数值的离散观测空间问题背景:Iwouldliketocreatecustomopenaigymenvironmentthathasdiscretestatespace,butwithfloatvalues.Tobemoreprecise,itshouldbearangeofvalueswith0.25step:10.0,10.25,10.5,10......