[P2526][SHOI2001]小狗散步】的更多相关文章

题目背景 Grant喜欢带着他的小狗Pandog散步.Grant以一定的速度沿着固定路线走,该路线可能自交.Pandog喜欢游览沿途的景点,不过会在给定的N个点和主人相遇.小狗和主人同时从(X1,Y1)点出发,并同时在(Xn,Yn)点汇合.小狗的速度最快是Grant的两倍.当主人从一个点以直线走向另一个点时,Pandog跑向一个它感兴趣的景点.Pandog每次与主人相遇之前最多只去一个景点. 题目描述 你现在的任务是:为Pandog寻找一条路线(有可能与主人的路线部分相同),使它能够游览最多的景…
Link: P2526 传送门 Solution: 一道提示非常到位的题目 题面中强调了在两个路径相邻点间只能再去至多一个点,且每个点只计算一次贡献 于是明显可以将原题看作询问在两个不相交点集间最多能连几条边 接下来将合法边连上跑二分图匹配就好了 Tip:二分图匹配时分清$X,Y$集合以及$match$数组是哪个集合的匹配值 Code: #include <bits/stdc++.h> using namespace std; typedef pair<int,int> P; #d…
luoguP2526_[SHOI2001]小狗散步_二分图匹配 题意: Grant喜欢带着他的小狗Pandog散步.Grant以一定的速度沿着固定路线走,该路线可能自交.Pandog喜欢游览沿途的景点,不过会在给定的N个点和主人相遇.小狗和主人同时从(X1,Y1)点出发,并同时在(Xn,Yn)点汇合.小狗的速度最快是Grant的两倍.当主人从一个点以直线走向另一个点时,Pandog跑向一个它感兴趣的景点.Pandog每次与主人相遇之前最多只去一个景点. 分析: 我们可以把人每次走的一条路径当作点…
题目传送门 感觉这题最大的难点是发现它的解法是二分图最大匹配 主人的路线是固定的,对于每一段的路线,我们可以枚举小狗想去的景点,如果时间够,我们就将这段路线的起点和小狗想去的点连起来 这样就形成了一个二分图,因为dog每次与主人相遇之前最多只去一个景点,所以这道题就转化成了二分图最大匹配 #include <cstdio> #include <iostream> #include <cstring> #include <cmath> #include <…
考虑到每次与主人相遇之前最多只去一个景点,很容易转化为匹配问题 由于数据很小,我们不妨枚举每个相遇点间隙和每个景点,判断是否来得及,如果来得及就连边 沙雕题搞了二十来分钟,我是憨憨 #include <bits/stdc++.h> using namespace std; #define N 505 int n,m,p,cx[N],cy[N],vis[N],ax[N],ay[N],bx[N],by[N]; std::vector<int> e[N]; int dfs(int u,i…
传送门 简直就是模板题啊! #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #define N 101 using namespace std; int n, m, cnt; int X1[N], Y1[N], X2[N], Y2[N], head[N], to[N * N], nex[N * N], belong[N], ans[N]; bool vis[N…
注意一个景点只能去一次. #include <iostream> #include <cstring> #include <cstdio> #include <queue> #include <cmath> using namespace std; int n, m, xx[205], yy[205], hea[205], ss, tt, cnt, lev[205], maxFlow; const int oo=0x3f3f3f3f; queue…
原题传送门 题目背景 Grant喜欢带着他的小狗Pandog散步.Grant以一定的速度沿着固定路线走,该路线可能自交.Pandog喜欢游览沿途的景点,不过会在给定的N个点和主人相遇.小狗和主人同时从(X1,Y1)点出发,并同时在(Xn,Yn)点汇合.小狗的速度最快是Grant的两倍.当主人从一个点以直线走向另一个点时,Pandog跑向一个它感兴趣的景点.Pandog每次与主人相遇之前最多只去一个景点. 题目描述 你现在的任务是:为Pandog寻找一条路线(有可能与主人的路线部分相同),使它能够…
在开始看我画小狗之前,咱们先来看道很简单的题目: 下面程序的输出是什么? Dog myDog = new Dog("旺财"); changeName(myDog); System.out.println(myDog.getName()); public void changeName(dog) { dog.setName("小强"); } 如果你的回答是“小强”,好,恭喜你答对了.下面我们改一下代码: Dog myDog = new Dog("旺财&quo…
效果如上图,共六个图像切换,形成小狗动态奔跑效果.完整代码和图片请从  https://files.cnblogs.com/files/xiandedanteng/runningDog.rar 下载. 代码: <!DOCTYPE html> <html lang="utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/&g…