P1971 [NOI2011]兔兔与蛋蛋游戏

传送门

思路比较迷……题解在这里

//minamoto
#include<bits/stdc++.h>
#define R register
#define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i)
#define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
using namespace std;
int read(){R int res,f=1;R char ch;while((ch=getchar())>'9'||ch<'0')(ch=='-')&&(f=-1);for(res=ch-'0';(ch=getchar())>='0'&&ch<='9';res=res*10+ch-'0');return res*f;
}
const int N=105,M=10005;
const int dx[]={1,0,-1,0},dy[]={0,1,0,-1};
struct eg{int v,nx;}e[M];int head[M],tot;
inline void add(R int u,R int v){e[++tot]={v,head[u]},head[u]=tot;}
int id[N][N],vis[M],st[M],match[M];bool ban[M],win[M],mp[N][N];
int n,m,tim,top,cnt,q,bx,by;char s[N];
bool find(int u){if(ban[u])return 0;go(u){if(vis[v]==tim||ban[v])continue;vis[v]=tim;if(!match[v]||find(match[v])){match[u]=v,match[v]=u;return 1;}}return 0;
}
int main(){
//  freopen("testdata.in","r",stdin);n=read(),m=read();fp(i,1,n){scanf("%s",s+1);fp(j,1,m)switch(s[j]){case 'X':mp[i][j]=1;break;case 'O':mp[i][j]=0;break;case '.':mp[i][j]=1,bx=i,by=j;break;}}fp(i,1,n)fp(j,1,m)id[i][j]=++cnt;fp(i,1,n)fp(j,1,m)if(mp[i][j])fp(k,0,3){int x=i+dx[k],y=j+dy[k];if(x>=1&&x<=n&&y>=1&&y<=m&&!mp[x][y])add(id[i][j],id[x][y]),add(id[x][y],id[i][j]);}fp(i,1,n)fp(j,1,m)if(mp[i][j])++tim,find(id[i][j]);q=read();fp(i,1,(q<<1)){int x=id[bx][by];ban[x]=1;if(match[x]){int y=match[x];match[x]=match[y]=0;++tim,win[i]=!find(y);}bx=read(),by=read();}fp(i,1,q)if(win[(i<<1)-1]&&(win[i<<1]))st[++top]=i;printf("%d\n",top);fp(i,1,top)printf("%d\n",st[i]);return 0;
}

转载于:https://www.cnblogs.com/bztMinamoto/p/10139933.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265166.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站后台admin修改故事

网站后台登陆有时出错&#xff0c;可以被******&#xff0c;不得不修改密码&#xff0c;使用phpmyadmin修改后台密码账号&#xff0c;刷新。转载于:https://blog.51cto.com/7330234/1355437

springMVC_07乱码及restful风格

乱码的解决 通过过滤器解决乱码问题:CharacterEncodingFilter 配置web.xml文件 <filter><filter-name>encoding</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><para…

[转】HTTP请求流程(二)----Telnet模拟HTTP请求

转自&#xff1a; http://www.cnblogs.com/stg609/archive/2008/07/06/1237000.html 上一部分"流程简介"&#xff0c; 我们大致了解了下HTTP请求的流程&#xff0c;这一篇我向大家介绍下如何利用Telnet来模拟Http请求---访问百度。 我们直接开始吧&#xff01; …

设备树下的LED驱动实验

目录设备树LED驱动原理硬件原理图分析实验程序编写修改设备树文件(根节点下添加好区分)LED灯驱动程序编写编写测试APP运行测试编译驱动程序和测试APP运行测试上一章我们详细的讲解了设备树语法以及在驱动开发中常用的OF 函数&#xff0c;本章我们就开始第一个基于设备树的Linux…

记录一下Junit测试MongoDB,获取MongoTemplate

只是自己记录一下&#xff0c;测试MongoDB帮助类时&#xff0c;没有配置文件的测试 public class HelperTest {MongoTemplate template;Beforepublic void init() {MongoDbFactory facotry new SimpleMongoDbFactory(new MongoClient("127.1.1.1", 27017), "te…

《现代操作系统》精读与思考笔记 第七章 多媒体

第七章部分内容与前几章内容关联很大&#xff0c;比如进程调度、磁盘调度、文件系统&#xff0c;而且多为实现细节&#xff0c;这里不详述。 1.帧数与闪烁&#xff08;P476&#xff09; 画面动作的平滑性不是完全由每秒的帧数决定的&#xff0c;而是由每秒不同画面的数目决定的…

pinctrl和gpio子系统实验(芯片原厂做的,类似STM32的HAL库,我们只需调用API来直接操作GPIO)

目录pinctrl子系统pinctrl子系统简介(半导体厂商写的)I.MX6ULL的pinctrl子系统驱动分析0、通过compatbile属性查找对应驱动文件1、PIN配置信息详解(获取寄存器地址)2、PIN 驱动程序流程讲解(流程图&#xff0c;了解)设备树中添加pinctrl节点模板(半导体厂商瑞芯微、海思厂商写的…

(五)Redis在项目中应用

目录 1. redis实现分布式锁2. 订单或任务缓存3. Redis和DB数据一致性4. 大并发Redis穿透直接访问DB5. 接口限流器参考&#xff1a; Redis在项目中的运用总结1. redis实现分布式锁 参考&#xff1a; Redis分布式锁的正确实现方式分布式锁简单入门以及三种实现方式介绍127.0.0.1:…

成为你自己

2019独角兽企业重金招聘Python工程师标准>>> 一个看过许多国家、民族以及世界许多地方的旅行家&#xff0c;若有人问他&#xff0c;他在各处发现人们具有什么相同的特征&#xff0c;他或许会回答∶他们有懒惰的倾向。有些人会觉得&#xff0c;如 果他说他们全是怯懦…

网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络

作为一个合格的运维人员&#xff0c;一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识。 废话不多说&#xff01;下面就逐一展开对这两个网络架构知识的说明&#xff1a;一、OSI七层网络协议OSI是Open System Interconnect的缩写&#xff0c;意为开放式系统互联。 OSI参考模…

动态链接库 仅有.dll文件时候的使用方法

在没有.h和.lib文件时&#xff0c;需要函数指针和WIN32 API函数 LoadLibrary, GetProcAddress 和FreeLibrary 只需要.dll文件即可&#xff08;将.dll文件置入工程目录中&#xff09;。 LoadLibrary 进程调用 LoadLibrary以显式链接到 DLL。 如果函数执行成功&#xff0c;它会将…

跟vczh看实例学编译原理——一:Tinymoe的设计哲学

自从《序》胡扯了快一个月之后&#xff0c;终于迎来了正片。之所以系列文章叫《看实例学编译原理》&#xff0c;是因为整个系列会通过带大家一步一步实现Tinymoe的过程&#xff0c;来介绍编译原理的一些知识点。 但是第一个系列还没到开始处理Tinymoe源代码的时候&#xff0c;首…

Linux蜂鸣器实验(使用上一节子系统思想,摈弃了自己配置寄存器的繁琐操作)

目录子系统思想的蜂鸣器驱动流程硬件原理图分析实验程序编写修改设备树文件蜂鸣器驱动程序编写编写测试APP运行测试编译驱动程序和测试APP运行测试上一章实验中我们借助pinctrl 和gpio 子系统编写了LED 灯驱动&#xff0c;I.MX6U-ALPHA 开发板上还有一个蜂鸣器&#xff0c;从软…

gitbash如何修改可恶的蓝色字体

1、问题 这完全看不清啊&#xff01;&#xff01; 2、环境 git version 2.19.0 3、解决 1&#xff09;编辑/etc/bash.bashrc # Uncomment to use the terminal colours set in DIR_COLORS eval "$(dircolors -b /etc/DIR_COLORS)" 2&#xff09;编辑/etc/DIR…

Oracle分析函数

2019独角兽企业重金招聘Python工程师标准>>> Oracle分析函数——函数列表 SUM &#xff1a;该函数计算组中表达式的累积和 MIN &#xff1a;在一个组中的数据窗口中查找表达式的最小值 MAX &#xff1a;在一个组中的数据窗口中查找表达式的…

Linux并发与竞争介绍(原子操作、自旋锁、信号量、互斥体)

目录并发与竞争并发与竞争简介保护内容是什么原子操作原子操作简介原子整形操作API函数(atomic_t 结构体)原子位操作API 函数自旋锁自旋锁简介自旋锁API函数线程与线程线程与中断(获取锁之前关闭中断)其他类型的锁(读写锁、顺序锁)自旋锁使用注意事项信号量信号量简介信号量API…

新后缀再开放,投资者应谨慎对待!

为什么80%的码农都做不了架构师&#xff1f;>>> 新后缀再开放&#xff0c;投资者应谨慎对待&#xff01;2014年伊始&#xff0c;一大批如BIKE&#xff0c;GURU&#xff0c;HOLDINGS等新域名后缀正式启用&#xff0c;是继CNNIC开放CN保留域名注册之后&#xff0c;投…

Linux并发与竞争实验(一次只允许一个应用程序操作LED灯)

目录原子操作实验实验程序编写运行测试(运行多个APP抢占资源)自旋锁实验实验程序编写运行测试信号量实验实验程序编写运行测试(第二条命令因为获取信号量失败而进入休眠状态)互斥体实验(类似二值信号量&#xff0c;会休眠)实验程序编写运行测试在上一章中我们学习了Linux 下的并…

drf缓存

全站缓存: 两个中间件: MIDDLEWARE_CLASSES ( ‘django.middleware.cache.UpdateCacheMiddleware’, #第一 django.middleware.common.CommonMiddleware, ‘django.middleware.cache.FetchFromCacheMiddleware’, #最后 ) CACHE_MIDDLEWARE_SECONDS10 单页面缓存:…

在 SharePoint 2013 中选择正确的 API 集

决定使用哪个 API 集的因素 您可以在多个 API 集中选择一个来访问 SharePoint 2013 平台。您使用哪一个 API 集取决于以下因素&#xff1a; 应用程序的类型。 可能的类型包括但不限于以下不相互排斥的类别&#xff1a;SharePoint 相关应用程序、SharePoint 页上的 Web 部件、在…