【数学】Vijos P1582 笨笨的L阵游戏

题目链接:

  https://vijos.org/p/1582

题目大意

  就是o(o<=50)个人在n*m(n,m<=2000)的格子上放L型的东西(有点像俄罗斯方块的L,可对称旋转),问第几个人覆盖全图或无解。

题目思路:

  【数学】

  n*m%8如果为0则(n*m/4-1)%o+1那个人胜利。

  否则无解。

  (当时手画了大概8以内的几种样例,就感觉好像有规律可循,慢慢推但是感觉可能有错,于是偷偷瞄了一眼别人的题解,果然是规律题。但是我并不会证明。)

 1 //
 2 //by coolxxx
 3 //
 4 #include<iostream>
 5 #include<algorithm>
 6 #include<string>
 7 #include<iomanip>
 8 #include<memory.h>
 9 #include<time.h>
10 #include<stdio.h>
11 #include<stdlib.h>
12 #include<string.h>
13 #include<stdbool.h>
14 #include<math.h>
15 #define min(a,b) ((a)<(b)?(a):(b))
16 #define max(a,b) ((a)>(b)?(a):(b))
17 #define abs(a) ((a)>0?(a):(-(a)))
18 #define lowbit(a) (a&(-a))
19 #define sqr(a) (a)*(a)
20 #define swap(a,b) (a)^=(b),(b)^=(a),(a)^=(b)
21 #define eps 1e-8
22 #define MAX 0x7f7f7f7f
23 #define INF 20000
24 #define PI 3.1415926535897
25 #define N 54
26 using namespace std;
27 int n,m,lll,ans,cas;
28 char c[N][N];
29 int main()
30 {
31     #ifndef ONLINE_JUDGE
32 //    freopen("1.txt","r",stdin);
33 //    freopen("2.txt","w",stdout);
34     #endif
35     int i,j;
36     while(~scanf("%d",&cas) && cas)
37     {
38         scanf("%d%d",&n,&m);
39         for(i=1;i<=cas;i++)
40             scanf("%s",c[i]);
41         if(n<2 || m<2 || n*m%8!=0)puts("Nobody can win!");
42         else printf("%s can win!\n",c[(m*n/4+cas-1)%cas+1]);
43     }
44     return 0;
45 }
46
47
48 /*
49 //
50
51 //
52 */

时间: 2024-12-25 04:03:47

【数学】Vijos P1582 笨笨的L阵游戏的相关文章

jquery开发的”天才笨笨碰“游戏

前段时间湖南卫视的快乐大本营里有一款“天才笨笨碰”游戏非常火.这款游戏主要是考选手的声母联想词语的能力. 小篇在看完这个节目后用jquery制作了“天才笨笨碰”网页游戏.先上效果图: 游戏规则: 1.如图点击开始,系统会给中间五个小块随机分配五个声母(哈哈,这边可能有些网友已经忘记声母都有哪些了.声母一共有23个:b p m f d t n l g k h j q x zh ch sh r z c s y w) 2.两位选手用这五个声母来联想词语,或句子.把含声母的色块推到对方那一边就胜利了(注

笨笨的电话网络

笨笨的电话网络 题目描述 多年以后,笨笨长大了,成为了电话线布置师.由于地震使得某市的电话线全部损坏,笨笨是负责接到震中市的负责人.该市周围分布着N(1<=N<=1000)根据1……n顺序编号的废弃的电话线杆,任意两根线杆之间没有电话线连接,一共有p(1<=p<=10000)对电话杆可以拉电话线.其他的由于地震使得无法连接. 第i对电线杆的两个端点分别是ai,bi,它们的距离为li(1<=li<=1000000).数据中每对(ai,bi)只出现一次.编号为1的电话杆已经

20190817笨笨的套题

题 A \(DHOJ 1503\) 笨笨与电影票 B \(DHOJ 1506\) 笨笨玩糖果 C \(DHOJ 1506\) 笨笨玩糖果 正解 求出哪些是必胜态还是必败态 胜利要尽量快,失败要尽量慢 显而易见这道题是有一个博弈的背景的,那么根据博弈的那两个经典结论,只要能转移到一个必败态的就是必胜态,如果一个必败态都转移不到的就是比败态. 那么我们首先将0与1初始化为必败态,对于每一个数i,减去所有比i小的所有质数,如果有必败态即为必胜态,如果都转移不到就是必败态了. 接着再留心一下题目,题目要

笨笨熊搬家交通篇

笨笨熊要搬家,它现在的家在B点,新的豪宅在H点,现在要从B点到H点 地图R表示行,C表示列,其中: -表示能通过 #表示不能通过 B表示笨笨熊原来的家 H表示笨笨熊的新豪宅 输入 R C R×C矩阵 输出 Y//表示可以通过 N//表示不可以通过 #include <iostream> #include <queue> using namespace std; //Point in the grid typedef struct { int x; int y; }Pos; //re

笨笨熊搬家打包篇

笨笨熊搬家打包篇 描述:  森林里的笨笨熊今天可开心啦——他买了新房子,乔迁新喜要搬家了.因此,笨笨熊请了许多好朋友来帮忙搬家,并准备了很多小纸盒用来装需要搬的物品,不过,这些纸盒的容积都是相同的,并且最多只能装两个物品.但是,为了不打扰太多的朋友,笨笨熊想了个“聪明”办法:让每个纸盒使用效率最高(注:只要纸盒容积大于物品的体积之和就认为可以装下:物品体积不会大于纸盒容积),这样需要的纸盒最少.为了帮助笨笨熊提前通知朋友,请你根据笨笨熊的办法,帮忙算出:需要纸盒的最少数目是多少?        

IO-08. 输出倒三角图案(for循环写的不符合,用笨笨的println,%&gt;_&lt;%)

本题要求编写程序,输出指定的由“*”组成的倒三角图案. 输入格式:本题目没有输入. 输出格式:按照下列格式输出由“*”组成的倒三角图案. * * * * * * * * * *注意:严格按照下面截图的样式. 无奈用for循环写不出,只好用笨笨的println一行行的输出了. public class Main { public static void main(String[] args) { System.out.println("* * * *"); System.out.prin

集训第六周 数学概念与方法 计数 排列 L题

Description 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了! 做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易的道理一样. 话虽这样说,我还是要告诉大家,要想失败到一定程度也是不容易的.比如,我高中的时候,就有一个神奇的女生,在英语考试的时候,竟然把40个单项选择题全部做错了!大家都学过概率论,应该知道出现这种情况的概率,所以至今我都觉得这是一件神奇的事情.如果套用一句经典的评语,我们可以这样总结:一个人做错一道选择题并不

python 中的特殊方法,纠正自己笨笨的记忆

1. __new__ 和 __init__ 的区别 python 2.x 老式类(默认继承type) class A: pass 老式类中没有__new__类方法(也就是说定义也不会执行,它不是老式类的类方法),__Init__ 作为构造函数,创建实例对象,并初始化. 过程: 类 => __init__() => 实例(self)创建并初始化 __init__: 不能有返回值 python 3 和 python 2.x(显示继承新式类) class A(object): pass 注: 在Py

Bzoj-1059-ZJOI-矩阵游戏

发现了一道类似于水题的水题>_< 自动脑补算法:图论...(雾) 开始码... W?!!! 调了20+min 回去再看一波题 mdzz Yes(No)打成YES(NO)... 然后接着就AC了... 因为可以进行若干次,所以我们可以吧这个图抽象成一个二分图...然后...就呵呵呵了 果然蒟蒻还是要多刷题QAQ Code: #include <cmath> #include <cstring> #include <cstdio> #include <io