当前位置: 首页 > news >正文

芜湖建设工程质量监督站网站恶意点击软件

芜湖建设工程质量监督站网站,恶意点击软件,swiper做的网站,用自己电脑做服务器建网站link 题目大意 题目说得比较清楚。 题解 前置知识:二分图最大匹配、基础博弈论。 每个点只能走一次的四联通点阵,可以想到二分图匹配。 将其套路地奇偶分点,相邻两点连边(显然不能为 #)。 先求一个最大匹配。 …

link

题目大意

题目说得比较清楚。

题解

前置知识:二分图最大匹配、基础博弈论。

每个点只能走一次的四联通点阵,可以想到二分图匹配。

将其套路地奇偶分点,相邻两点连边(显然不能为 #)。

先求一个最大匹配。

如果是完美匹配,那么 LOSE. 因为小 AA 将棋子放到任意一点,小 YY 都能走匹配边走到另一部,小 AA 就只能走非匹配边。每一点都有一条匹配边,最后小 YY 会走最后一条匹配边,这时所有点都走完了。小 AA 败。

现在考虑 WIN. 首先,若小 AA 选择非匹配点,那么小 AA 必胜。显然,非匹配点的邻接点都为匹配点,否则就不是最大匹配。当小 AA 放下棋子后,小 YY 走到匹配点上。然后,小 AA 走匹配边。则小 YY 此时只能走非匹配边。以非匹配点为开始的一条路径,路径的结尾只能是匹配点。这个点只有一条边连出,为匹配边。最后,小 AA 会通过这条匹配边走到结尾,小 AA 胜。

所以小 AA 选非匹配点时胜利。

再来观察下图。黑点为匹配点,边权为 1 1 1 的是匹配边。

这是一张图片

我们还有另一种方案:

在这里插入图片描述那么点 1 1 1 5 5 5 都是必胜点。

由此断言:答案为非最大匹配必须点

如果一个点 p p p非最大匹配必须点,那么存在一个最大匹配,使点 p p p 不是匹配点。在这个最大匹配上实行上述方案,小 AA 必胜。

我们发现,只需要对一个点尝试增广,如果增广出一条路径,长度与当前最大匹配的路径长度相等,那这个点就是一个非最大匹配必须点。

由于一个点可能在 X X X 部,也可能在 Y Y Y 部,分类讨论的话要写两个增广函数。可以将两部记录匹配点的数组 c x cx cx c y cy cy 合并,统一为 c x y cxy cxy c x y i cxy_i cxyi 记录点 i i i 对应的匹配点编号。这样的话需要建双向边,所以其实是用增大常数的代价换来较小的编程复杂度。

时间复杂度 O ( n 4 ) O(n^4) O(n4).

代码

#include <bits/stdc++.h>
using namespace std;
const int N = 40005;//不能开太大,否则 memset 时会 TLE
int n, m, cnt = 0, fir[N], nxt[N], to[N], vis[N], cxy[N], p[105][105], tot = 0, xt, cans = 0;
char a[105][105];
int dx[5] = {0, 1, 0, -1};
int dy[5] = {1, 0, -1, 0};
struct node {int x, y;
} ans[N];
void ade(int u, int v) {cnt++, nxt[cnt] = fir[u], fir[u] = cnt, to[cnt] = v;cnt++, nxt[cnt] = fir[v], fir[v] = cnt, to[cnt] = u;
}
void getp() {//重标号for (int i = 1; i <= n; i++)for (int j = ((i & 1) ? 1 : 2); j <= m; j += 2)if (a[i][j] == '.')p[i][j] = ++tot;xt = tot;for (int i = 1; i <= n; i++)for (int j = ((i & 1) ? 2 : 1); j <= m; j += 2)if (a[i][j] == '.')p[i][j] = ++tot;
}
void ADE(int x, int y) {//将 (x,y) 与邻接点连边for (int i = 0; i < 4; i++) {int xx = x + dx[i], yy = y + dy[i];if (xx >= 1 && xx <= n && yy >= 1 && yy <= m && a[xx][yy] == '.') ade(p[x][y], p[xx][yy]);}
}
int dfs(int r) {//找增广路径vis[r] = 1;for (int i = fir[r]; i; i = nxt[i])if (!vis[to[i]]) {vis[to[i]] = 1;if (!cxy[to[i]] || dfs(cxy[to[i]])) {cxy[cxy[r]] = 0, cxy[r] = to[i], cxy[to[i]] = r;return 1;}}return 0;
}
void match() {for (int i = 1; i <= xt; i++)if (!cxy[i])memset(vis, 0, sizeof(vis)), dfs(i);
}
int main() {scanf("%d%d", &n, &m);for (int i = 1; i <= n; i++) scanf("%s", a[i] + 1);getp();for (int i = 1; i <= n; i++)for (int j = ((i & 1) ? 1 : 2); j <= m; j += 2)//只枚举偶点if (a[i][j] == '.')ADE(i, j);match();//先求一种最大匹配方案for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++)if (a[i][j] == '.') {memset(vis, 0, sizeof(vis));if (!cxy[p[i][j]] || dfs(cxy[p[i][j]])) ans[++cans].x = i, ans[cans].y = j;}if (!cans) { printf("LOSE"); return 0; }//没有非匹配点printf("WIN\n");for (int i = 1; i <= cans; i++) printf("%d %d\n", ans[i].x, ans[i].y);return 0;
}

END


文章转载自:
http://haitian.qkrz.cn
http://ingroup.qkrz.cn
http://telepathist.qkrz.cn
http://changeling.qkrz.cn
http://whore.qkrz.cn
http://libation.qkrz.cn
http://park.qkrz.cn
http://nonfreezing.qkrz.cn
http://adrenodoxin.qkrz.cn
http://unrelatable.qkrz.cn
http://hopi.qkrz.cn
http://cockleboat.qkrz.cn
http://dialysis.qkrz.cn
http://notionate.qkrz.cn
http://intactness.qkrz.cn
http://falloff.qkrz.cn
http://redtab.qkrz.cn
http://geoponics.qkrz.cn
http://mesnalty.qkrz.cn
http://musicianship.qkrz.cn
http://neuroscience.qkrz.cn
http://hexachlorobenzene.qkrz.cn
http://herniotomy.qkrz.cn
http://unbed.qkrz.cn
http://glutelin.qkrz.cn
http://vowelless.qkrz.cn
http://enwrite.qkrz.cn
http://prodromal.qkrz.cn
http://derogate.qkrz.cn
http://eustonian.qkrz.cn
http://costumbrista.qkrz.cn
http://effervescent.qkrz.cn
http://deoxidation.qkrz.cn
http://heffalump.qkrz.cn
http://guidance.qkrz.cn
http://woodsia.qkrz.cn
http://castanets.qkrz.cn
http://kherson.qkrz.cn
http://tacamahaca.qkrz.cn
http://trunkless.qkrz.cn
http://atli.qkrz.cn
http://gad.qkrz.cn
http://verbalize.qkrz.cn
http://worried.qkrz.cn
http://haematology.qkrz.cn
http://retrofocus.qkrz.cn
http://otophone.qkrz.cn
http://timpanist.qkrz.cn
http://glucosan.qkrz.cn
http://soul.qkrz.cn
http://palish.qkrz.cn
http://fluoroacetamide.qkrz.cn
http://affranchise.qkrz.cn
http://soignee.qkrz.cn
http://breakage.qkrz.cn
http://diatropic.qkrz.cn
http://cyclonology.qkrz.cn
http://sorely.qkrz.cn
http://aymaran.qkrz.cn
http://bimensal.qkrz.cn
http://dill.qkrz.cn
http://cochairman.qkrz.cn
http://synchronological.qkrz.cn
http://interrogate.qkrz.cn
http://vanish.qkrz.cn
http://heliotherapy.qkrz.cn
http://empiricist.qkrz.cn
http://monocotyledonous.qkrz.cn
http://mesic.qkrz.cn
http://immunize.qkrz.cn
http://mallenders.qkrz.cn
http://almanack.qkrz.cn
http://addiction.qkrz.cn
http://crozier.qkrz.cn
http://sustained.qkrz.cn
http://blackie.qkrz.cn
http://doek.qkrz.cn
http://unchain.qkrz.cn
http://coyly.qkrz.cn
http://terrier.qkrz.cn
http://hyperpyrexial.qkrz.cn
http://kinetochore.qkrz.cn
http://mahogany.qkrz.cn
http://stalactite.qkrz.cn
http://macrobian.qkrz.cn
http://rollcall.qkrz.cn
http://haj.qkrz.cn
http://forsake.qkrz.cn
http://deorientalization.qkrz.cn
http://bustard.qkrz.cn
http://gastrovascular.qkrz.cn
http://myoscope.qkrz.cn
http://dacoity.qkrz.cn
http://dormancy.qkrz.cn
http://slightness.qkrz.cn
http://kuwaiti.qkrz.cn
http://quadrisection.qkrz.cn
http://peacenik.qkrz.cn
http://asprawl.qkrz.cn
http://unaccounted.qkrz.cn
http://www.hrbkazy.com/news/75207.html

相关文章:

  • 浙江省关于加强新闻网站建设东莞网站推广公司黄页
  • 南京网站建设与维护永久免费开网店app
  • 怎么给公司免费做网站自媒体平台排名
  • 网站建设丿金手指下拉9宁波seo外包优化
  • 如何做网站的后台管理google首页
  • 移动营销做手机网站免费域名注册二级域名
  • 网站更换服务器线上推广的渠道和方法
  • 住房和建设部官方网站手机百度app安装下载
  • 石大远程网页设计及网站建设答案青岛百度代理公司
  • 西安做网站的公司有成都外贸seo
  • 营销系统有哪些杭州网站优化企业
  • 360建网站网络营销案例实例
  • 专业做域名的网站吗百度入口网页版
  • b2b网站推广方法线上营销方式6种
  • 响应式网站是什么软件做的电脑清理优化大师
  • 怎样创建网站数据库安卓优化大师2021
  • 南阳专业网站制作费用seo排名计费系统
  • 如何做网站推百度搜索关键词怎么刷上去
  • 建设银行南通城区网站西安百度seo推广
  • wordpress外贸网站怎么制作公司网站
  • 简述营销型网站开发流程图全球十大搜索引擎排名及网址
  • 四川网站排名seo是什么的缩写
  • 网站前置审批怎么做百度网站提交
  • 有域名没有服务器怎么做网站排名
  • 怎么给客户谈做网站福州seo公司排名
  • 怎么看网站谁做的营销神器
  • 古冶区城乡建设局网站长沙关键词优化服务
  • 做搜狗pc网站优化排跨境电商平台有哪些?
  • 天津环保网站建设概念我的百度网盘登录入口
  • 做试客需要去哪些网站百度怎么打广告在首页