当前位置: 首页 > 编程日记 > 正文

【贪心】Google Code Jam Round 1A 2018 Waffle Choppers

题意:给你一个矩阵,有些点是黑的,让你横切h刀,纵切v刀,问你是否能让切出的所有子矩阵的黑点数量相等。

设黑点总数为sum,sum必须能整除(h+1),进而sum/(h+1)必须能整除(v+1)。

先考虑横行,贪心地扫过去,如果到了某一行,当前统计的黑点数恰好为sum/(h+1),就在这里切一刀,接着统计。否则,如果>sum/(h+1),则无解。在这个过程中,每一行被切到哪一横组里就确定了。

然后纵切,过程跟横切类似,只不过统计的不是一个变量,而是一个大小为(h+1)的数组,如果到了某一列,当前统计的数组的每个分量的黑点数恰好为sum/(h+1)/(v+1),就在这里切一刀,接着统计。否则,如果数组的某个分量>sum/(h+1),则无解。

#include<cstdio>
#include<cstring>
using namespace std;
int T,n,m,h,v;
char a[105][105];
int hq[105];
int cnts[105],t;
bool check1(){for(int i=1;i<=h+1;++i){if(cnts[i]!=t){return 0;}}return 1;
}
bool check2(){for(int i=1;i<=h+1;++i){if(cnts[i]>t){return 0;}}return 1;
}
int main(){//freopen("a.in","r",stdin);scanf("%d",&T);for(int zu=1;zu<=T;++zu){printf("Case #%d: ",zu);scanf("%d%d%d%d",&n,&m,&h,&v);for(int i=1;i<=n;++i){scanf("%s",a[i]+1);}int sum=0;for(int i=1;i<=n;++i){for(int j=1;j<=m;++j){sum+=(a[i][j]=='@');}}if(sum%(h+1)!=0){puts("IMPOSSIBLE");continue;}t=sum/(h+1);int cnt=0;bool flag=1;int last=0,num=0;for(int i=1;i<=n;++i){for(int j=1;j<=m;++j){cnt+=(a[i][j]=='@');}if(cnt==t){++num;for(int k=last+1;k<=i;++k){hq[k]=num;}last=i;cnt=0;}else if(cnt>t){flag=0;break;}}if(!flag){puts("IMPOSSIBLE");continue;}if(sum/(h+1)%(v+1)!=0){puts("IMPOSSIBLE");continue;}t=sum/(h+1)/(v+1);memset(cnts,0,sizeof(int)*(2+h));flag=1;for(int i=1;i<=m;++i){for(int j=1;j<=n;++j){cnts[hq[j]]+=(a[j][i]=='@');}if(check1()){memset(cnts,0,sizeof(int)*(2+h));}else if(!check2()){flag=0;break;}}if(!flag){puts("IMPOSSIBLE");continue;}puts("POSSIBLE");}return 0;
}

转载于:https://www.cnblogs.com/autsky-jadek/p/8837036.html

相关文章:

友盟数据—值得手游创业者关注的玩家数据

友盟数据—值得手游创业者关注的玩家数据 你知道“辣妈”是什么游戏的忠诚玩家吗&#xff1f;你知道“大龄玩家”都喜好怎样的游戏&#xff1f;你知道哪类玩家最“多金”&#xff1f;2015年&#xff0c;不仅宅男、宅女们爱玩游戏&#xff0c;辣妈和奶爸们也成了手游行业的主力军…

这个 AI 模型火上 GitHub 热榜第一,在线修复照片

编译 | 禾木木出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;AI 正在对照片编辑产生重大的影响&#xff0c;但结果是还存在很大分歧。支持者说&#xff0c;人工智能释放了新的艺术历年&#xff0c;减少了创作者花在单调工作上的时间。然而&#xff0c;批评者认为这些…

【我的Android进阶之旅】解决SDK升级到27.0.3遇到的GLIBC_2.14 not found、no acceptable C compiler found in $PATH等问题...

一、问题一&#xff1a;Failed to find Build Tools revision 27.0.3 1.1、问题描述 最近公司的Android项目都要进行SDK升级&#xff0c;目前在本地编译的时候将SDK升级到了27.0.3&#xff0c;本地运行正常&#xff0c;然后在jenkins服务器上跑的时候就会出现异常。异常如下所示…

解析大型.NET ERP系统 设计异常处理模块

异常处理模块是大型系统必备的一个组件&#xff0c;精心设计的异常处理模块可提高系统的健壮性。下面从我理解的角度&#xff0c;谈谈异常处理的方方面面。我的设计仅仅限定于Windows Forms&#xff0c;供参考。 1 定义异常类型 .NET 框架定义很多异常类型&#xff0c;ERP系统中…

内含福利|CSDN 携手字节跳动:云原生Meetup北京站报名热烈启动,1月8日见!

伴随云原生技术的成熟与落地&#xff0c;越来越多框架、中间件等开源项目相继涌现&#xff0c;帮助开发者和企业有效解决业务问题。2022年1月8日&#xff0c;CSDN携手字节跳动基础架构&#xff0c;将在北京举办第四场云原生线下Meetup。在这里&#xff0c;您可以与众多开源技术…

用Thymeleaf在前台下拉列表取值

转自&#xff1a;https://blog.csdn.net/u013600907/article/details/76165748转载于:https://www.cnblogs.com/sharpest/p/8875698.html

PHP使用JSON

JSON 基础 简 单地说&#xff0c;JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串&#xff0c;然后就可以在函数之间轻松地传递这个字符串&#xff0c;或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪&#xff08;稍后会看…

(原创)Python文件与文件系统系列(5)——stat模块

stat模块中定义了许多的常量和函数&#xff0c;可以帮助解释 os.stat()、os.fstat()、os.lstat()等函数返回的 st_result 类型的对象。 通常使用 os.path.is*() 这类函数来测试一个文件的类型&#xff0c;这些方法对同一个文件进行多次测试时&#xff0c;stat()系统调用都是不可…

Azure Neural TTS能让AI语音自然逼真到什么程度?

摘要&#xff1a;微软Azure Neural TTS让AI语音像真人一样富有感情&#xff0c;自然逼真。 Neural TTS&#xff08;神经网络文本转语音&#xff09;是微软Azure认知服务的强大语音合成功能&#xff0c;自推出以来&#xff0c;已被广泛应用于从语音助手、新闻阅读到有声读物创作…

ReentrantLock与synchronized

1、ReentrantLock 拥有Synchronized相同的并发性和内存语义&#xff0c;此外还多了 锁投票&#xff0c;定时锁等候和中断锁等候线程A和B都要获取对象O的锁定&#xff0c;假设A获取了对象O锁&#xff0c;B将等待A释放对O的锁定&#xff0c;如果使用 synchronized &#xff0c;如…

EXT按钮事件

在EXT中&#xff0c;当我们要为按钮点击添加处理function的时候&#xff0c;可以看到一般人的实现分成2类&#xff1a;1.使用onClick: function xx()2.使用handler: function xx()完成后&#xff0c;我们会发现&#xff0c;无论用哪一种实现&#xff0c;再点击按钮时都能触发xx…

浅谈HTTP中Get与Post的区别

Http定义了与服务器交互的不同方法&#xff0c;最基本的方法有4种&#xff0c;分别是GET&#xff0c;POST&#xff0c;PUT&#xff0c;DELETE。URL全称是资源描述符&#xff0c;我们可以这样认为&#xff1a;一个URL地址&#xff0c;它用于描述一个网络上的资源&#xff0c;而H…

达摩院年终预测重磅出炉:AI for Science 高居榜首,2022 十大科技趋势!

整理 | 郑丽媛出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;作为“一所探索科技未知的研究院”&#xff0c;阿里巴巴达摩院成立至今已经四年了。这四年来&#xff0c;达摩院秉持着“探索科技位置&#xff0c;以人类愿景为驱动力&#xff0c;开展基础科学和颠覆式…

TensorFlow——入门基础

TensorFlow原理&#xff1a; TensorFlow使用Graph来描述计算任务,图中的节点被称之为op.一个op可以接受0或多个tensor作为输入,也可产生0或多个tensor作为输出.任何一个Graph要想运行,都必须借助上下文Session.通过Session启动Graph,并将Graph中的op分发到CPU或GPU上,借助Sessi…

EXT iconCls说明

今天学习ext 看examples中的事例&#xff0c;其中有一个地方是这样写的&#xff1a; new ButtonPanel( Icon Only, [{ iconCls: add16 },{ iconCls: add24, scale: medium },{ …

25个好用到爆的一行 Python 代码,建议收藏

作者 | 欣一来源 | Pyhton爱好集中营在学习Python的过程当中&#xff0c;有很多复杂的任务其实只需要一行代码就可以解决&#xff0c;那么今天小编我就来给大家介绍实用的一行Python代码&#xff0c;希望对大家能够有所帮助。1.两个字典的合并x {a: 1, b: 2} y {c: 3, d: 4}将…

【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动

SuperIO相关资料下载&#xff1a;http://pan.baidu.com/s/1pJ7lZWf 1.1 服务接口的作用 围绕着设备驱动模块采集的数据&#xff0c;根据需求提供多种应用服务&#xff0c;例如&#xff1a;数据上传服务、数据请求服务、4-20mA服务、短信服务、LED服务以及OPC服务等。保障数…

usermod命令,用户密码管理和mkpasswd命令

2019独角兽企业重金招聘Python工程师标准>>> usermod 设置扩展组 概念&#xff1a;更改用户属性的一个命令。 用法&#xff1a;usermod [选项] 后面跟你需要操作的内容 [用户名] 选项&#xff1a;-c, --comment 注释 GECOS 字段的新值-d, --home HO…

extjs关于jsonreader

在JavaScript中&#xff0c;JSON是一种非常重要的数据格式&#xff0c;key:value的形式比XML那种复杂的标签结构更容易理解&#xff0c;代码量也更小&#xff0c;很多人倾向于使用它作为EXT的数据交换格式。JsonReader支持分页&#xff0c;与JSON数据对应格式如下&#xff1a;t…

求逆元 - HNU 13412 Cookie Counter

Cookie Counter Problems Link: http://acm.hnu.cn/online/?actionproblem&typeshow&id13412&courseid0 Mean: 将N分为D份&#xff0c;每份不超过X&#xff0c;有多少种分法&#xff1f; analyse: 首先我们想到的是迭代&#xff0c;但是数据太大&#xff0c;…

IEEE 发布年终总结,AI 奇迹不再是故事

编译 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 2021 年&#xff0c;人工智能奇迹不再只是故事&#xff01; 人工智能正在迅速融入各行各业&#xff0c;IEEE Spectrum 总结了 2021 年 10 篇最受读者欢迎的 AI 文章&#xff0c;按时间排名&#xff0c;…

一则利用内核漏洞获取root权限的案例【转】

转自&#xff1a;https://blog.csdn.net/u014089131/article/details/73933649 目录(?)[-] 漏洞描述漏洞的影响范围漏洞曝光时间漏洞产生的原因漏洞的利用exploit代码分析kernel 最近出了一个新的本地提权安全漏洞CVE-2013-1763&#xff0c;影响范围比较广泛&#xff0c;ubunt…

Ext.data库

Ext.data 库主要包括以下几个类&#xff1a;Ext.data.Store >DataSetExt.data.Record >DataSet.RowExt.data.DataProxy >SqlConnectionExt.data.DataReader >SqlDataAdapter以下分别进行介绍:1.Ext.data.Record可以用来定义一行数据的格式,它有几个重要的属性和方法…

2021年最有用的数据清洗 Python 库

作者 | 周萝卜来源 | 萝卜大杂烩大多数调查表明&#xff0c;数据科学家和数据分析师需要花费 70-80% 的时间来清理和准备数据以进行分析。对于许多数据工作者来说&#xff0c;数据的清理和准备也往往是他们工作中最不喜欢的部分&#xff0c;因此他们将另外 20-30% 的时间花在抱…

组合与继承之重写方法和字段

为什么80%的码农都做不了架构师&#xff1f;>>> 接上篇blog&#xff0c;scala里的字段和方法属于相同的命名空间&#xff0c;这让字段可以重写无参数方法。例如&#xff0c;你可以通过改变ArrayElement类中contents的实现将其从一个方法变为一个字段&#xff0c;而…

20165334 四则运算阶段性总结(第二周)

四则运算阶段性总结&#xff08;第二周&#xff09; 结对对象 学号 &#xff1a;20165334 姓名 &#xff1a; 李天龙 担任角色 &#xff08;驾驶员&#xff09;&#xff1a;李天龙 &#xff08;副驾驶&#xff09;&#xff1a;陈国超 一、实验实现步骤 整数计算类分数计算类自动…

取消掉Transfer-Encoding:chunked

有时候&#xff0c;Web服务器生成HTTP Response是无法在Header就确定消息大小的&#xff0c;这时一般来说服务器将不会提供Content-Length的头信息&#xff0c;而采用Chunked编码动态的提供body内容的长度。进行Chunked编码传输的HTTP Response会在消息头部设置&#xff1a;Tra…

【LeetCode】142 - Linked List Cycle II

Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Follow up:Can you solve it without using extra space? Solution&#xff1a; Discuss上的分析&#xff1a;Suppose the first meet at step k,the length of the Cycle …

3000 字详解 Pandas 数据查询,建议收藏

作者 | 俊欣来源 | 关于数据分析与可视化今天小编来和大家说一说怎么从DataFrame数据集中筛选符合指定条件的数据&#xff0c;希望会对读者朋友有所帮助。导入数据集和模块我们先导入pandas模块&#xff0c;并且读取数据&#xff0c;代码如下import pandas as pd df pd.read_c…

stylus使用文档总结:内置方法+参数+条件+迭代+导入+继承

一、内置方法 返回各种颜色的比重&#xff08;如red(color)等&#xff09; 颜色函数是CSS预处里器中内置的颜色函数功能&#xff0c;这些功能可以对颜色值进行处理&#xff0c;例如颜色的变亮、变暗、渐变颜色等处理十分的方便。 lighten(color, 10%); /* 返回的颜色在color基础…