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

[Python题解] CodeForces 1804 D. Accommodation

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页:小嗷犬的个人主页
🍊个人网站:小嗷犬的技术小站
🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。


本文目录

    • Title
      • Time Limit
      • Memory Limit
      • Problem Description
      • Input
      • Output
      • Sample Input
      • Sample Onput
      • Note
      • Source
    • Solution


Title

CodeForces 1804 D. Accommodation

Time Limit

2 seconds

Memory Limit

512 megabytes

Problem Description

Annie is an amateur photographer. She likes to take pictures of giant residential buildings at night. She just took a picture of a huge rectangular building that can be seen as a table of n×mn \times mn×m windows. That means that the building has nnn floors and each floor has exactly mmm windows. Each window is either dark or bright, meaning there is light turned on in the room behind it.

Annies knows that each apartment in this building is either one-bedroom or two-bedroom. Each one-bedroom apartment has exactly one window representing it on the picture, and each two-bedroom apartment has exactly two consecutive windows on the same floor. Moreover, the value of mmm is guaranteed to be divisible by 444 and it is known that each floor has exactly m4\frac{m}{4}4m two-bedroom apartments and exactly m2\frac{m}{2}2m one-bedroom apartments. The actual layout of apartments is unknown and can be different for each floor.

Annie considers an apartment to be occupied if at least one of its windows is bright. She now wonders, what are the minimum and maximum possible number of occupied apartments if judged by the given picture?

Formally, for each of the floors, she comes up with some particular apartments layout with exactly m4\frac{m}{4}4m two-bedroom apartments (two consecutive windows) and m2\frac{m}{2}2m one-bedroom apartments (single window). She then counts the total number of apartments that have at least one bright window. What is the minimum and maximum possible number she can get?

Input

The first line of the input contains two positive integers nnn and mmm (1≤n⋅m≤5⋅1051 \leq n \cdot m \leq 5 \cdot 10^51nm5105) — the number of floors in the building and the number of windows per floor, respectively. It is guaranteed that mmm is divisible by 444.

Then follow nnn lines containing mmm characters each. The jjj-th character of the iii-th line is “0” if the jjj-th window on the iii-th floor is dark, and is “1” if this window is bright.

Output

Print two integers, the minimum possible number of occupied apartments and the maximum possible number of occupied apartments, assuming each floor can have an individual layout of m4\frac{m}{4}4m two-bedroom and m2\frac{m}{2}2m one-bedroom apartments.

Sample Input

5 4
0100
1100
0110
1010
1011

Sample Onput

7 10

Note

In the first example, each floor consists of one two-bedroom apartment and two one-bedroom apartments.

The following apartment layout achieves the minimum possible number of occupied apartments equal to 777.

|0 1|0|0|
|1 1|0|0|
|0|1 1|0|
|1|0 1|0|
|1|0|1 1|

The following apartment layout achieves the maximum possible number of occupied apartments equal to 101010.

|0 1|0|0|
|1|1 0|0|
|0 1|1|0|
|1|0 1|0|
|1 0|1|1|

Source

CodeForces 1804 D. Accommodation


Solution

n, m = map(int, input().split())
smin = smax = 0for i in range(n):s = input()two = j = 0# 将连续两盏灯都先视为两居室while j < m - 1:if s[j] == '1' and s[j + 1] == '1':j += 1two += 1j += 1two = min(two, m // 4)  # 两居室的数量不能超过总窗户数的四分之一smin += s.count('1') - twotwo = j = 0# 统计可能的不开灯的两居室和只开一盏灯的两居室数量while j < m - 1:if s[j] != '1' or s[j + 1] != '1':j += 1two += 1j += 1two = min(two, m // 4)  # 两居室的数量不能超过总窗户数的四分之一smax += s.count('1') - (m // 4 - two)  # (m // 4 - two) 为开两盏灯的两居室数量
print(smin, smax)
http://www.lryc.cn/news/39384.html

相关文章:

  • 【设计模式】访问者模式
  • 蓝桥杯刷题冲刺 | 倒计时27天
  • RV1126_python人脸识别Retinaface+MobilefaceNet
  • HBase---HBase基础语法
  • 2023年,PMP有多少含金量呢?
  • vue动态路由
  • 被骗进一个很隐蔽的外包公司,入职一个月才发现,已经有了社保记录,简历污了,以后面试有影响吗?...
  • 华为OD机试 -租车骑绿岛(Java) | 机试题+算法思路+考点+代码解析 【2023】
  • 【Java|基础篇】用思维导图理解逻辑控制
  • Go单元测试基础
  • 华为OD机试 -执行时长(Java) | 机试题+算法思路+考点+代码解析 【2023】
  • 互联网检测服务器
  • YOLO系列模型改进指南
  • QML- 在QML定义JavaScript资源
  • php(tp框架)使用七牛云对象存储
  • 八大排序算法之插入排序+希尔排序
  • 蓝桥杯第十四届蓝桥杯模拟赛第三期考场应对攻略(C/C++)
  • 【数论】最大公约数、约数的个数与约数之和定理
  • 第28篇:Java日期Calendar类总结(二)
  • 【Python】字符串 - 集大成篇
  • IDEA: 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤
  • 算法的效率——时间复杂度和空间复杂度
  • 2021年 第12届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2021.04.18】
  • 透过等待看数据库
  • 中科亿海微FPGA
  • 【链表OJ题(三)】链表中倒数第k个结点
  • 华为防火墙的学习
  • SPI 接口OLED 模块 - 兼容5V 和3.3V 电平
  • css布局和定位
  • python -- 批量读取多个文件,并将每个文件中相同变量累加