[p2526][shoi2001]小狗散步(代码片段)

newera newera     2022-12-16     600

关键词:

Link:

P2526 传送门

Solution:

一道提示非常到位的题目

题面中强调了在两个路径相邻点间只能再去至多一个点,且每个点只计算一次贡献

于是明显可以将原题看作询问在两个不相交点集间最多能连几条边

接下来将合法边连上跑二分图匹配就好了

 

Tip:二分图匹配时分清$X,Y$集合以及$match$数组是哪个集合的匹配值

Code:

#include <bits/stdc++.h>

using namespace std;
typedef pair<int,int> P;
#define X first
#define Y second
const int MAXN=105;
P a[MAXN],b[MAXN];
vector<int> G[MAXN];
int n,m,mat[MAXN],vis[MAXN],idx=1;

int dfs(int x)

    vis[x]=idx;
    for(int i=0;i<G[x].size();i++)
    
        int v=G[x][i],m=mat[v];
        if(m==-1||vis[m]!=idx&&dfs(m))
        mat[v]=x;return 1;
    
    return 0;


double dist(P a,P b)
return sqrt((a.X-b.X)*(a.X-b.X)+(a.Y-b.Y)*(a.Y-b.Y));

int main()

    memset(mat,-1,sizeof(mat));
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
        scanf("%d%d",&a[i].X,&a[i].Y);
    for(int i=1;i<=m;i++)
        scanf("%d%d",&b[i].X,&b[i].Y);
    for(int i=2;i<=n;i++)
    
        double d=dist(a[i],a[i-1]);
        for(int j=1;j<=m;j++)
            if(2*d>=dist(a[i],b[j])+dist(a[i-1],b[j])) 
                G[j].push_back(i);
        
    
    int res=0;
    for(int i=1;i<=m;i++,idx++) res+=dfs(i);
    printf("%d
",res+n);    
    for(int i=1;i<=n;i++)
    
        if(mat[i]!=-1) 
            printf("%d %d ",b[mat[i]].X,b[mat[i]].Y);
        printf("%d %d ",a[i].X,a[i].Y);
    
    return 0;

 

[luogup2526][shoi2001]小狗散步(二分图最大匹配)

传送门 简直就是模板题啊! #include<cmath>#include<cstdio>#include<cstring>#include<iostream>#defineN101usingnamespacestd;intn,m,cnt;intX1[N],Y1[N],X2[N],Y2[N],head[N],to[N*N],nex 查看详情

p2530[shoi2001]化工厂装箱员(代码片段)

题目描述118号工厂是世界唯一秘密提炼锎的化工厂,由于提炼锎的难度非常高,技术不是十分完善,所以工厂生产的锎成品可能会有3种不同的纯度,A:100%,B:1%,C:0.01%,为了出售方便,必须把不同纯度的成品分开装箱,装箱... 查看详情

题解shoi2001化工厂装箱员

...只不过需要特判一下n<10的情况。//再一次对自己丑陋的代码有点接受无能……#include<bits/stdc 查看详情

排序工作量之新任务(shoi2001)

排序工作量之新任务(SHOI2001)给出两个整数n和t,求n的全排列中逆序对数为t的个数,和逆序对数为t的字典序最小全排列。首先第一个问题可以用dp解决,\(f[i][j]\)表示前i个数,j个逆序对的序列数,那么\(f[i][j]=f[i-1][j-k]\(k<i)(k... 查看详情

搜索洛谷p2530[shoi2001]化工厂装箱员

P2530[SHOI2001]化工厂装箱员题目描述118号工厂是世界唯一秘密提炼锎的化工厂,由于提炼锎的难度非常高,技术不是十分完善,所以工厂生产的锎成品可能会有3种不同的纯度,A:100%,B:1%,C:0.01%,为了出售方便,必须把不... 查看详情

洛谷p2527[shoi2001]panda的烦恼

题目描述panda是个数学怪人,他非常喜欢研究跟别人相反的事情。最近他正在研究筛法,众所周知,对一个范围内的整数,经过筛法处理以后,剩下的全部都是质数,不过panda对这些不感兴趣,他只对被筛掉的数感兴趣,他... 查看详情

洛谷p2530[shoi2001]化工厂装箱员

题目描述118号工厂是世界唯一秘密提炼锎的化工厂,由于提炼锎的难度非常高,技术不是十分完善,所以工厂生产的锎成品可能会有3种不同的纯度,A:100%,B:1%,C:0.01%,为了出售方便,必须把不同纯度的成品分开装箱,装箱... 查看详情

shoi.sh(代码片段)

查看详情

如果用户未回答 JavaScript 地理定位小狗,如何继续执行代码?

】如果用户未回答JavaScript地理定位小狗,如何继续执行代码?【英文标题】:HowtocontinuecodeexecutionifJavaScriptgeolocationpup-upisnotansweredbyuser?【发布时间】:2019-07-0305:38:36【问题描述】:我们有一个网页在注册时询问用户的地理位置... 查看详情

用python图像识别打造一个小狗分类器(代码片段)

?项目介绍小狗分类器可以做什么?通过这个分类器,你只需要上传照片,就可以得到小狗的品种,以及更多的信息。这就是所谓的「机器学习」,让机器自己去“学习”。我们今天要做的这个分类任务,是一个“监督... 查看详情

卷积神经网络(代码片段)

...聊一聊这个问题。不用思考,左右两张图就是两只可爱的小狗狗,但是两张图中小狗狗所处的位置是不同的,左侧图片小狗在图片的左侧,右侧图片小狗在图片的右下方,这样如果去用图片特征识别出来的结果,两张图的特征很... 查看详情

1875:[sdoi2009]hh去散步(代码片段)

...个一成不变的习惯,喜欢饭后百步走。所谓百步走,就是散步,就是在一定的时间内,走过一定的距离。但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回。又因为HH是个喜欢变化的人,所以他每天走过的... 查看详情

[shoi2014]三叉神经树(代码片段)

Description:计算神经学作为新兴的交叉学科近些年来一直是学术界的热点。一种叫做SHOI的神经组织因为其和近日发现的化合物SHTSC的密切联系引起了人们的极大关注。SHOI组织由若干个SHOI细胞构成,SHOI细胞之间形成严密的树形结构... 查看详情

bzoj1875hh去散步(代码片段)

题目链接一开始特别天真,$Folyd$传递闭包写了一下过了样例就交上去了然后$gg$$qwq$想了想$……$还要写一点东西最后统计答案的时候有细节要注意/**************************************************************Problem:1875User:zhangheranLanguage... 查看详情

p1294高手去散步(代码片段)

题意:一个无向图(不一定联通)   求最长链长n≤20,m≤50 1、dfs#include<cstdio>#include<iostream>#include<cstring>#include<cctype>#include<algorithm>usingnamespacestd;#defineolinrretur 查看详情

p4284[shoi2014]概率充电器(代码片段)

 P4284[SHOI2014]概率充电器链接:https://www.luogu.org/problemnew/show/P4284题目描述著名的电子产品品牌SHOI刚刚发布了引领世界潮流的下一代电子产品——概率充电器:“采用全新纳米级加工技术,实现元件与导线能否通电完全由真随... 查看详情

loj#2192.「shoi2014」概率充电器(代码片段)

Loj#2192.「SHOI2014」概率充电器题目描述著名的电子产品品牌SHOI刚刚发布了引领世界潮流的下一代电子产品——概率充电器:「采用全新纳米级加工技术,实现元件与导线能否通电完全由真随机数决定!SHOI概率充电器,您生活不... 查看详情

[sdoi2009]hh去散步(代码片段)

[题目链接]     https://www.lydsy.com/JudgeOnline/problem.php?id=1875[算法]     用f[i][j]表示现在在走了i步,在第j条边的方案数     矩阵加速,即可  & 查看详情