bzoj 4131: 并行博弈 (parallel)

Description

lyp和ld在一个n*m的棋盘上玩翻转棋,游戏棋盘坐标假设为(x, y),1 ≤ x ≤ n,1 ≤ y ≤ m,这个游戏的游戏的的游戏规则如下:

每次可以操作坐标为 (x, y) 的棋子,要求棋子 (x, y) 必须是黑色,并且同时翻转所有棋子坐标 (x’, y’) 满足 x’≤x, y’≤y。

lyp觉得这样还不够过瘾,于是乎他打算同时玩 k 个这样的游戏, 每次可以对其中某一个游戏进行操作,lyp先手,ld后手,两人轮流进行操作,最后无法进行操作的人判输,现在给你这个游戏的局面,要求输出是先手必胜(“lyp win”)还是后手必胜(“ld win”)。

Input

第一行一个数T,表示数据组数。

接下来T组数据,对于每一组数据:

接下来一行一个数K,表示有多少个游戏在进行中,

接下来K部分,每部分第一行两个数n,m表示棋盘大小,

接下来n行,每行m个数,0 表示这个棋子是白色,1表示为黑色,第一行第一列代表棋子坐标(1,1)。

Output

对于每一组数据,换行输出先手必胜(“lyp win”)还是后手必胜(“ld win”),输出不包含引号。

Sample Input

1

1

2 2

1 1

1 0

Sample Output

lyp win


如果(1,1)为1,那么先手可以将它翻成0,然后一直翻它,必胜。

因为所有操作一定会翻到(1,1)

否则先手必败

异或起来就是答案

#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
char str[10005];
int T,k,n,m,x,ans;
int main()
{
scanf("%d", &T);
while(T--){
ans=0;
scanf("%d",&k);
while(k--){
scanf("%d%d%d", &n, &m,&x);
ans ^= x;
for(int i=1;i<=n;i++)gets(str);
}
if(ans)printf("lyp win\n");
else printf("ld win\n");
}
return 0;
}

bzoj 4131: 并行博弈 (parallel)的更多相关文章

  1. BZOJ 4131 并行博弈

    发现必胜态只和(1,1)的状态有关. 无法得知必胜的方法,只知道谁会必胜. #include<iostream> #include<cstdio> #include<cs ...

  2. C#并行编程-Parallel

    菜鸟学习并行编程,参考<C#并行编程高级教程.PDF>,如有错误,欢迎指正. 目录 C#并行编程-相关概念 C#并行编程-Parallel C#并行编程-Task C#并行编程-并发集合 ...

  3. [bzoj4131]并行博弈_博弈论

    并行博弈 bzoj-4131 题目大意:题目链接. 注释:略. 想法:我们发现无论如何操作都会使得$(1,1)$发生改变. 所以单个$ACG$的胜利条件就是$(1,1)$是否为黑色. 如果为黑色那么可 ...

  4. 并行网关 Parallel Gateway

    并行网关 Parallel Gateway 作者:Jesai 2018年3月25日 00:26:21 前言: 做工作流时间长后,慢慢的就会发现,很多客户会需要会签的功能,会签的情况也有很多种,实现的方 ...

  5. C#并行编程--命令式数据并行(Parallel.Invoke)---与匿名函数一起理解(转载整理)

    命令式数据并行   Visual C# 2010和.NETFramework4.0提供了很多令人激动的新特性,这些特性是为应对多核处理器和多处理器的复杂性设计的.然而,因为他们包括了完整的新的特性,开 ...

  6. 并行开发——Parallel的使用 -摘自网络

    随着多核时代的到来,并行开发越来越展示出它的强大威力,像我们这样的码农再也不用过多的关注底层线程的实现和手工控制, 要了解并行开发,需要先了解下两个概念:“硬件线程”和“软件线程”. 1. 硬件线程 ...

  7. C#并行编程--命令式数据并行(Parallel.Invoke)

    命令式数据并行   Visual C# 2010和.NETFramework4.0提供了很多令人激动的新特性,这些特性是为应对多核处理器和多处理器的复杂性设计的.然而,因为他们包括了完整的新的特性,开 ...

  8. 第九节:深究并行编程Parallel类中的三大方法 (For、ForEach、Invoke)和几大编程模型(SPM、APM、EAP、TAP)

    一. 并行编程 1. 区分串行编程和串行编程 ①. 串行编程:所谓的串行编程就是单线程的作用下,按顺序执行.(典型代表for循环 下面例子从1-100按顺序执行) ②. 并行编程:充分利用多核cpu的 ...

  9. Python并行(parallel)之谈

    简介 可以先看看并发Concurrent与并行Parallel的区别 在谈并行前,头脑中总会浮出多线程.多进程.线程/进程同步.线程/进程通信等词语. 那为什么需要同步.通信,它们之间的作用是怎样的呢 ...

随机推荐

  1. pymysql 简单操作数据库

    #!/usr/bin/env python #-*- coding:utf-8 -*- # author:leo # datetime:2019/4/24 15:22 # software: PyCh ...

  2. mahout算法解析

    1.下载ubuntu的iso 2.安装虚拟机,vmware,最好英文原版 3.在vm里面安装ubuntu,安装vm tools 4.本地连接设置为共享上网,虚拟机采用NAT,打开ubuntu,自动连接 ...

  3. mysql查看版本,编码

    SELECT * FROM gps_gpsinfo t WHERE t.reportdate < TO_DATE('2019/4/28 10:05:07', 'yyyy-MM-dd hh24:m ...

  4. yum仓库及配置

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近由于服务器需求,需要在公司内网搭建内网yum源. 搭建内网yum源需要分以下几个步骤,如下: 1. yum是什么 2. repo文件是什么 3. r ...

  5. nuxt.js express模板项目IIS部署

    继续上一篇的nuxt/express项目部署,还是windows上要把nuxt的服务端渲染项目跑起来,这次的目的是用已经有的域名windows服务器上一个虚拟目录反向代理部署在其他端口nuxt项目. ...

  6. 如何用eclipse运行导入的maven项目

    1.配置jdk系统环境变量.找到安装的jdk的安装目录,新建系统环境变量,变量名为JAVA_HOME(作为一个引用),变量值为该路径. 找到Path,将%JAVA_HOME%/bin; 添加到变量值的 ...

  7. hive的常用HQL语句

    1.过滤条件 where .limit. distinct. between and . null. is not nullselect * from emp where sal > 3000; ...

  8. Linux常见的系統进程

    前言 在日常运维工作中,经常会看到一些奇怪的系统进程占用资源比较高.而且总是会听到业务线同学询问“xxx这个是啥进程啊?咋开启了这么多?” 而这些系统级的内核进程都是会用中括号括起来的,它们会执行一些 ...

  9. 单片机入门学习笔记5:STC下载器

    STC下载器主要集成了, 1.芯片识别,下载/编程 2.端口识别 3.串口助手 4.KEIL仿真设置 5.芯片选型 6.范例程序 (集成了定时器,串口等例程) 7.波特率计算器 8.定时器计算器 9. ...

  10. HDU 4825 Xor Sum (trie树处理异或)

    Xor Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Others)Total S ...