首页 > 其他分享 >【查询类博客】金牌导航代码

【查询类博客】金牌导航代码

时间:2024-02-02 13:57:18浏览次数:23  
标签:ch int 博客 查询 Link ans bool 金牌 getchar

3-x-x

3-1-x

3-1-1

#include<bits/stdc++.h>
using namespace std;

const int N =505;

int match[N];

int g[N][N];

bool vis[N];

int n,k;

int ans;

bool Ntr(int u)
{
    for(int i=1;i<=n;i++)
    {
        if(g[u][i] && !vis[i])
        {
            vis[i]=1;
            if(!match[i] || Ntr(match[i]))
            {
                match[i]=u;
                return 1;
            }
        }
    }
    return 0;
}

int main()
{
    cin>>n>>k;
    for(int i=1;i<=k;i++)
    {
        int u,v;
        cin>>u>>v;
        g[u][v]=1;
    }
    for(int i=1;i<=n;i++)
    {
        memset(vis,0,sizeof(vis));
        if(Ntr(i)) ans++;
    }
    cout<<ans;
    return 0;
}

3-1-2

#include<bits/stdc++.h>
using namespace std;

const int N = 205;
const int M = 205*205;

int n;
int idx;
int g[N][N];
int ans;

vector<int> lft;

vector<int> e[M];
bool vis[M];
int match[M];

inline void Link(int u,int v)
{
    if(u && v)
    {
        e[u].push_back(v);
        // cout<<u<<" "<<v<<endl;
    }
}

bool Ntr(int u)
{
    for(int v : e[u])
    {
        if(!vis[v])
        {
            vis[v]=1;
            if(!match[v] || Ntr(match[v]))
            {
                match[v]=u;
                return 1;
            }
        }
    }
    return 0;
}

int main()
{
    cin>>n;
    char c=getchar();
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            char ch=getchar();
            if(ch=='0')
            {
                g[i][j]=++idx;
                if((i^j)&1) lft.push_back(idx);
            }
        }
        c=getchar();
    }

    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(g[i][j])
            {
                if(i-2>=1)
                {
                    if(j-1>=1) Link(g[i][j],g[i-2][j-1]);
                    if(j+1<=n) Link(g[i][j],g[i-2][j+1]);
                }
                if(i-1>=1)
                {
                    if(j-2>=1) Link(g[i][j],g[i-1][j-2]);
                    if(j+2<=n) Link(g[i][j],g[i-1][j+2]);
                }
                if(i+2<=n)
                {
                    if(j-1>=1) Link(g[i][j],g[i+2][j-1]);
                    if(j+1<=n) Link(g[i][j],g[i+2][j+1]);
                }
                if(i+1<=n)
                {
                    if(j-2>=1) Link(g[i][j],g[i+1][j-2]);
                    if(j+2<=n) Link(g[i][j],g[i+1][j+2]);
                }
            }
        }
    }
    for(int u : lft)
    {
        for(int i=1;i<=idx;i++) vis[i]=0;
        if (Ntr(u)) ans++;
    }
    cout<<idx-ans;
    return 0;
}

3-1-3

#include<bits/stdc++.h>
using namespace std;

inline void Read(int &ans)
{
    ans=0;
    bool flag=0;
    char ch=getchar();
    while(~ch && !isdigit(ch))
    {
        flag|=(ch=='-');
        ch=getchar();
    }
    while(~ch && isdigit(ch))
    {
        ans=ans*10+(ch^48);
        ch=getchar();
    }
    if(flag) ans=-ans;
}

char c[100];
inline void Write(int ans)
{
    if(ans<0)
    {
        putchar('-');
        ans=-ans;
    }
    int cnt=0;
    while(ans)
    {
        c[++cnt]=(ans%10);
        ans/=10;
    }
    while(cnt)
    {
        putchar(c[cnt]^48);
        cnt--;
    }
}

inline int Dis(int x,int y,int xx,int yy) {return abs(x-xx)+abs(y-yy);}

struct people {int x,y,xx,yy,t;}node[505];

int n,ans;
bool vis[505];
int match[505];

vector<int> e[505];

inline bool Link(people a,people b)
{
    int t=a.t+Dis(a.x,a.y,a.xx,a.yy)+Dis(a.xx,a.yy,b.x,b.y);
    if(t<b.t) return true;
    else return false;
}

bool Ntr(int u)
{
    for(int v : e[u])
    {
        if(!vis[v])
        {
            vis[v]=1;
            if(!match[v] || Ntr(match[v]))
            {
                match[v]=u;
                return 1;
            }
        }
    }
    return 0;
}

int main()
{
    // freopen("working.out","w",stdout);
    int T;
    cin>>T;
    while(T--)
    {
        cin>>n;
        for(int i=1;i<=n;i++) e[i].clear();
        memset(match,0,sizeof(match));
        for(int i=1;i<=n;i++) 
        {
            int t=0;
            Read(t);
            t*=60;
            int x;
            Read(x);
            t+=x;
            Read(node[i].x);
            Read(node[i].y);
            Read(node[i].xx);
            Read(node[i].yy);
            node[i].t=t;
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=i+1;j<=n;j++)
            {
                if(Link(node[i],node[j])) {e[i].push_back(j);}
            }
        }
        ans=n;
        for(int i=1;i<=n;i++) 
        {
            memset(vis,0,sizeof(vis));
            if(Ntr(i)) ans--;
        }
        cout<<ans<<endl;
    }
    return 0;
}

标签:ch,int,博客,查询,Link,ans,bool,金牌,getchar
From: https://www.cnblogs.com/yeyou26/p/18003045

相关文章

  • Apache Doris 整合 FLINK CDC + Iceberg 构建实时湖仓一体的联邦查询
    1概况本文展示如何使用FlinkCDC+Iceberg+Doris构建实时湖仓一体的联邦查询分析,Doris1.1版本提供了Iceberg的支持,本文主要展示Doris和Iceberg怎么使用,大家按照步骤可以一步步完成。完整体验整个搭建操作的过程。2系统架构我们整理架构图如下,   1.首先我们从Mysq......
  • Apache Doris 整合 FLINK CDC + Iceberg 构建实时湖仓一体的联邦查询
    1概况本文展示如何使用FlinkCDC+Iceberg+Doris构建实时湖仓一体的联邦查询分析,Doris1.1版本提供了Iceberg的支持,本文主要展示Doris和Iceberg怎么使用,大家按照步骤可以一步步完成。完整体验整个搭建操作的过程。2系统架构我们整理架构图如下,   1.首先我们从Mysq......
  • MySQL 跨服务器关联查询
    如果您需要在MySQL中关联查询位于不同服务器的表(跨服务器关联查询),您可以考虑使用MySQL的联机查询(FederatedMySQL)。联机查询允许您在一个服务器上访问和查询另一个服务器上的表。以下是在MySQL中进行联机查询的简要步骤:1.在服务器1上创建user表的联机表定义:```sqlCREA......
  • 局域网内已使用IP查询
    1、使用windows自带cmd命令查询本机IP-信息,见下图; 2、输入命令:for/L%iIN(1,1,254)DOping-w2-n110.70.65.%iping-w2-n110.70.65.1 3、返回数据通过丢包信息判断对应IP是否被使用;10.70.65.3(100%丢失)表示对应IP未使用;10.70.65.4(0%丢失)......
  • 博客园markdown图片文档上传方法
    ###下载NET环境5.0下载链接:https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/sdk-5.0.408-windows-x64-installerdotnet-sdk-5.0.408-win-x64.exe注意是v5.0版本检查版本是否OK,无命令,安装.net5.0后检查。若不完整,检查环境变量路径。参考下面其他问题方法。......
  • MongoDB由浅入深(查询)
    //基础查询db.orderSlic.find();//根据ID查询db.orderSlic.find({_id:54708407});//范围查询db.orderSlic.find({"_id":{"$gte":54708407,"$lte":54708409}});//多字段分组统计db.orderSlic.aggregate([{$group:{_id:{shopId:"$......
  • 帝国cms看雪时间轴博客趣静态模板bokequV1.
    帝国cms看雪时间轴博客趣静态模板bokequV1.0是一款女生唯美简洁个人博客静态页面模板,蓝色时间轴个人网页模板,下雪空间个人模板。喜欢的网友可以用开源程序帝国cms标签仿站建设http://www.bokequ.com/category/theme博客趣bokequV1.0模板非常简洁清爽,清新优雅,由蓝色背景+......
  • 区间修改,单点查询的树状数组
    #include<bits/stdc++.h>#defineCLOSEios::sync_with_stdio(false);cin.tie(0);cout.tie(0)#defineendl"\n"typedeflonglongLL;constintN=1e6+10,M=N,mod=1e9+7;usingnamespacestd;inta[N],b[N],n,q;LLt[N];intlowbi......
  • 区间修改+区间查询的树状数组
    /*https://www.acwing.com/solution/content/44886/看acwing*/#include<bits/stdc++.h>#defineCLOSEios::sync_with_stdio(false);cin.tie(0);cout.tie(0)#defineendl"\n"typedeflonglongLL;constintN=1e6+10,M=N,mod=1e9+7;u......
  • sprinboot实现分页查询
    1.环境介绍:springboot2.7.4pagehelper1.4.6mybatis-plus3.5.12.需求分析通过前端传回的分页要求的参数<页码,页数据量>,返回结果实现{"code":0,"message":"操作成功","data":{"total":5,"items&quo......