历届试题 PREV-34 矩阵翻硬币

PackML工业标准解析:统一机器状态管理与数据交换的实践指南 在工业自动化与智能制造领域,实现设备间的互联互通与高效协同是核心挑战。这背后依赖于一套标准化的机器行为与数据交换规范,其原理在于通过定义统一的状态模型与接口协议,消除不同厂商设备间的“语言”隔阂。这项技术的核心价值在于大幅降低系统集成复杂度、提升运维效率与生产透明度,是构建数字化工厂的基石。其典型应用场景包括包装机械、离散制造产线等需要多设备协同的领域。本文聚焦的PackML(包装机械语言)标准,正是这一理念的杰出实践,它通过一套严谨的**状态机模型**和**数据标签(PackTags)** 体系,为机器提 阅读详情

历届试题 矩阵翻硬币  
时间限制:1.0s   内存限制:256.0MB
问题描述
  小明先把硬币摆成了一个 n 行 m 列的矩阵。

  随后,小明对每一个硬币分别进行一次 Q 操作。

  对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进行翻转。

  其中i和j为任意使操作可行的正整数,行号和列号都是从1开始。

  当小明对所有硬币都进行了一次 Q 操作后,他发现了一个奇迹——所有硬币均为正面朝上。

  小明想知道最开始有多少枚硬币是反面朝上的。于是,他向他的好朋友小M寻求帮助。

  聪明的小M告诉小明,只需要对所有硬币再进行一次Q操作,即可恢复到最开始的状态。然而小明很懒,不愿意照做。于是小明希望你给出他更好的方法。帮他计算出答案。
输入格式
  输入数据包含一行,两个正整数 n m,含义见题目描述。
输出格式
  输出一个正整数,表示最开始有多少枚硬币是反面朝上的。
样例输入
2 3
样例输出
1
数据规模和约定
  对于10%的数据,n、m <= 10^3;
  对于20%的数据,n、m <= 10^7;
  对于40%的数据,n、m <= 10^15;
  对于10%的数据,n、m <= 10^1000(10的1000次方)。


看n和m的大小以及要求的时间,很明显的大数加规律题,打表找规律,发现最后答案是

sqrt(n)向下取余 乘以 sqrt(m)向下取余

求大整数平方根用二分法在给定的数据规模下最坏几千次就可以算出来了


打表代码:

#include<cstdio>
#include<cstring>
#include<iostream>

using namespace std;

int main()
{
	freopen("D:\\test.txt", "w", stdout);
	const int maxn = 50, maxm = 50;
	const int mr = maxn + 5, mc = maxm + 5;
	int a[mr][mc];
	int n, m;
	for (n = 1; n <= maxn; n++) {
		for (m = 1; m <= maxm; m++) {
			memset(a, 0, sizeof(a));
			for (int i = 1; i <= n; i++) {
				for (int j = 1; j <= m; j++) {
					for (int k = 1; i * k <= n; k++) {
						for (int q = 1; j * q <= m; q++) {
							a[i * k][j * q] = !a[i * k][j * q];
						}
					}
				}
			}
			int cnt = 0;
			for (int i = 1; i <= n; i++) {
				for (int j = 1; j <= m; j++) {
					if (a[i][j]) {
						cnt++;
					}
				}
			}
			printf("n:%d m:%d cnt:%d\n", n, m, cnt);
		}
	}
	return 0;
}


Java大数二分法求平方根:

import java.math.BigInteger;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		BigInteger n, m, ans;
		
		n = in.nextBigInteger();
		m = in.nextBigInteger();
		
		ans = (sqrt(n)).multiply(sqrt(m));
		System.out.println(ans);
		
		in.close();
	}
	
	static BigInteger sqrt(BigInteger x) {
		BigInteger left, right, mid = null, t;
		BigInteger TWO = BigInteger.valueOf(2);
		left = BigInteger.ZERO;
		right = new BigInteger(x.toString());
		while (true) {
			int cmp = left.compareTo(right);
			if (cmp > 0) break;
			mid = (left.add(right)).divide(TWO);
			t = mid.multiply(mid);
			if (t.compareTo(x) == 0) return mid;
			if (t.compareTo(x) < 0) {
				left = mid.add(BigInteger.ONE);
			} else {
				right = mid.subtract(BigInteger.ONE);
			}
		}
		return right;
	}
}


第7次CCF PTA编程培训师资认证-T1 真题解析(2024下) B。 阅读详情

相关推荐

ArcGIS学习记录—SHP文件转换为KML KMZ数据,并显示面要素相应的标注

使用相应软件操作获取KMZ数据得以下发到外业调查人员,使得矢量数据能够更显而易见,可视化,让外业人员的工作减轻许多。(过程步骤是借鉴于网络上的相关人士给的建议,根据这些建议自己做出来的步骤,可能有些粗略,有问题的话可以再进行探讨)...

qq_41046162的博客 5万+

蓝桥 PREV-34 历届试题 矩阵翻硬币

历届试题 矩阵翻硬币 时间限制:1.0s 内存限制:256.0MB 问题描述   小明先把硬币摆成了一个 n 行 m 列的矩阵。  随后,小明对每一个硬币分别进行一次 Q 操作。  对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进行翻转。  其中i和j为任意使操作可行的正整数,行号和列号都是从1开始。  ...

PHILIP0917的博客 198

西门子【Automation Framework V1.2】AF架构:从软件栈到高效自动化项目的构建蓝图

本文深入解析西门子Automation Framework V1.2 (AF架构) 的核心价值与实施蓝图。该框架通过定义标准化的软件栈(如TIA Portal V19、STEP7、WinCC Unified)和严格的安装配置流程,将自动化项目开发从依赖个人经验的“手工作坊”模式,转变为高效、可复制的工业化模式。遵循此架构,工程师能快速构建稳定可靠的项目基础,规避环境冲突,从而专注于核心工艺与逻辑设计,大幅提升团队协作与项目交付效率。

weixin_29230059的博客 428

蓝桥 PREV-34 历届试题 矩阵翻硬币 【高精度】

历届试题 矩阵翻硬币   时间限制:1.0s   内存限制:256.0MB      问题描述   小明先把硬币摆成了一个 n 行 m 列的矩阵。   随后,小明对每一个硬币分别进行一次 Q 操作。   对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进行翻转。   其中i和j为任意使操作可行的正整数,行号和列号

Coolxxx的博客 535

【cmd】Win10家庭版找不到 gpedit.msc (组策略)的解决方法

目录 一、创建cmd文件 二、以“管理员身份”运行“gpedit.cmd”文件 三、运行“gpedit.msc”命令查看组策略 一、创建cmd文件 (1)新建一个文件名为“gpedit.txt”的txt文本文档: (2)文本中写入以下内容: @echo off pushd "%~dp0" dir /b C:\Windows\servicing\Packages\Micros...

顾三殇 —— 博客空间(软件测试) 4万+

Kriging克里金模型实现数据回归预测Matlab代码

Kriging克里金模型实现数据回归预测Matlab代码

天天酷科研的博客 603

蓝桥杯 历届试题 PREV-34 矩阵翻硬币

历届试题 矩阵翻硬币 时间限制:1.0s 内存限制:256.0MB 问题描述   小明先把硬币摆成了一个 n 行 m 列的矩阵。  随后,小明对每一个硬币分别进行一次 Q 操作。  对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进行翻转。  其中i和j为任意使操作可行的正整数,行号和列号都是从1开始。  当小明对所有硬币都进...

dcpvpf6917的博客 152

基于STM32+RFID设计的宿舍检修管理系统

设计一个上位机,用来管理查看维修检修信息,当维修寝室的设备或者检修完成时,通过STM32上的RC522刷一下这个寝室的IC卡,识别这是哪个寝室,识别成功后在软件上弹出一个对话框,填写本次维修或者检修的事件,填写完毕点击提交即可。...

2555

PREV-34 矩阵翻硬币

历届试题 矩阵翻硬币   时间限制:1.0s   内存限制:256.0MB      问题描述   小明先把硬币摆成了一个 n 行 m 列的矩阵。   随后,小明对每一个硬币分别进行一次 Q 操作。   对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进行翻转。   其中i和j为任意使操作可行的正整数,行号和列号

Every Master was once a disaster or beginner. 248

手把手教你学SOME/IP「3.2.1.发布/订阅行为」

本文详细介绍了SOME/IP协议中的服务发现机制,重点解析了发布/订阅行为的流程。主要内容包括:1)服务发布与Method通信流程,涵盖find/offer报文交互、TTL保活机制及异常处理;2)服务订阅与Event通信流程,包括subscribe/ack报文交互和组播延迟机制;3)特殊场景如快速发送、半周期回复、重置订阅等机制。通过邮局订阅报纸的类比,帮助理解服务发现的核心原理,并强调流程图对于问题定位的重要性。文章为SOME/IP协议的工程实现提供了实用指导。

nihaoljq2010的博客 1220

IDM 的免费替代品来了!这款开源下载器速度提升500%

💡分享一款开源的下载管理工具,支持多线程加速(最高提升500%)、队列管理、计划任务和浏览器集成,界面现代化且支持深色模式,跨平台支持Windows/Linux,是IDM的优秀替代方案🎈

XiaoqiangClub的博客 726

蓝桥杯历届试题oj

历届试题 蓝桥杯历届试题自我编辑解析 试题编号 试题名称 关键字 更新时间 试题状态 参考答案 PREV-55 小计算器 2017-12-18 已打开 PREV-54 合根植物 2017-12-18 已打开 PREV-53 分考场 2017-...

qq_42794545的博客 2850

YOLO11改进|注意力机制篇|引入先验卷积注意力机制CPCA

YOLO11中添加先验卷积注意力机制CAPA

A1983Z的博客 2374

蓝桥杯题库 历届试题部分(C++、Java)代码实现(31-45)

文章目录五、历届试题PREV-31 小朋友排队PREV-32 分糖果PREV-33 兰顿蚂蚁PREV-34 矩阵翻硬币PREV-35 正则问题PREV-36 包子凑数PREV-37 分巧克力PREV-38 油漆面积PREV-39 日期问题PREV-40 k倍区间PREV-41 Excel地址PREV-42 九宫幻方PREV-43 拉马车PREV-44 青蛙跳杯子PREV-45 图形排版 将定期更新...

薛崇祥的博客 1146

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

蓝桥杯题库题解合集(C/C++实现)

文章目录二、基础练习BASIC-1 闰年判断BASIC-2 01字串BASIC-3 字母图形BASIC-4 数列特征BASIC-5 查找整数BASIC-6 杨辉三角形BASIC-7 特殊的数字BASIC-8 回文数BASIC-9 特殊回文数BASIC-10 十进制转十六进制BASIC-11 十六进制转十进制BASIC-12 十六进制转八进制BASIC-13 数列排序二、算法训练ALGO-1 区间k...

薛崇祥的博客 5481

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

“蓝桥杯”练习系统试题集,题解答案(C/C++)

基础练习 BASIC-1 闰年判断 #include&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; using namespace std; bool f(int x){ if(x%4==0&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;a

薛崇祥的博客 7568

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

蓝桥杯---历届真题 题解

试题编号 题解 问题描述 PREV-55 小计算器 模拟 PREV-54 合根植物 并查集 PREV-53 分考场 回溯 PREV-52...

Nicolas的博客 5687

2016蓝桥杯C/C++省赛B组第6题 方格填数 DFS

方格填数 如下的10个格子    +--+--+--+    |  |  |  | +--+--+--+--+ |  |  |  |  | +--+--+--+--+ |  |  |  | +--+--+--+ (如果显示有问题,也可以参看【图1.jpg】) 填入0~9的数字。要求:连续的两个数字不能相邻。 (左右、上下、对角都算相邻) 一共

EventQueue的博客 9505

2016蓝桥杯省赛C/C++B组7题剪邮票 DFS枚举组合情况BFS判联通

剪邮票 如【图1.jpg】, 有12张连在一起的12生肖的邮票。 现在你要从中剪下5张来,要求必须是连着的。 (仅仅连接一个角不算相连) 比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。 请你计算,一共有多少种不同的剪取方法。 请填写表示方案数目的整数。 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

EventQueue的博客 6970

蓝桥杯练习系统试题集 算法提高 ADV-147 学霸的迷宫

问题描述   学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗。但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫。因为班长还有妹子要陪,磨刀不误砍柴功,他为了节约时间,从线人那里搞到了迷宫的地图,准备提前计算最短的路线。可是他现在正向妹子解释这件事情,于是就委托你帮他找一条最短的路线。 输入格式   第一行两个整数n,

EventQueue的博客 3377

蓝桥杯 历届试题 九宫重排 BFS Java

标准的BFS题,将九宫格哈希以后记录搜索的状态,用Set边搜索边去重,写的代码用了点面向对象的东西     AC代码: import java.util.*; public class Main { //f为初始状态,e为最终状态 static int f[][] = new int[3][3], e[][] = new int[3][3]; //将'.'表示成9这个数字 s

EventQueue的博客 1719

蓝桥杯 历届试题 PREV-12 危险系数 并查集找割点 Java

历届试题 危险系数   时间限制:1.0s   内存限制:256.0MB        问题描述 抗日战争时期,冀中平原的地道战曾发挥重要作用。 地道的多个站点间有通道连接,形成了庞大的网络。但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系。 我们来定义一个危险系数DF(x,y): 对于两个站点x和y (x != y), 如果能

EventQueue的博客 1267

蓝桥杯某题 dfs 符合要求的14位整数排列

今有7对数字:两个1,两个2,两个3,...两个7,把它们排成一行。 要求,两个1间有1个其它数字,两个2间有2个其它数字,以此类推,两个7之间有7个其它数字。如下就是一个符合要求的排列:   17126425374635   当然,如果把它倒过来,也是符合要求的。   请你找出另一种符合要求的排列法,并且这个排列法是以74开头的。   注意:只填写这个14位的整数,不能填写任何

EventQueue的博客 1260

蓝桥杯历届试题 PREV-27 蚂蚁感冒 循环暴力模拟

历届试题 蚂蚁感冒   时间限制:1.0s   内存限制:256.0MB      问题描述   长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。   每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。   当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。   这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰

EventQueue的博客 857

蓝桥杯历届试题 大臣的旅费 记忆化搜索DFS

历届试题 大臣的旅费   时间限制:1.0s   内存限制:256.0MB        问题描述 很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都

EventQueue的博客 828
上一篇: hdu5512 Pagodas 规律题 gcd
下一篇: Java中对于二维数组的clone
Daemoonn
博客等级 码龄11年 42粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值