Binary Table (Hard Version)-(思维)

Chain of Code:可验证编程推理链的技术原理与工程实践 编程推理链(Reasoning Chain)是大模型在代码生成中实现逻辑可追溯、可分解与可验证的关键范式,其核心在于将‘写代码’转化为‘先建模再执行’的结构化思维过程。它融合符号推理与神经网络,通过状态断言、控制流分支、复杂度标注和循环不变式等中间表示,支撑形式化验证与沙盒执行闭环。该技术显著提升算法正确性保障能力,适用于代码助手构建、高可靠性系统开发及自动化契约生成等场景,为下一代智能编程基础设施提供可解释、可审计、可演进的底层支撑。 阅读详情
题目描述:点击进入
题意

给你一个大小为n×m的二进制表,这个表由符号 0 和符号 1 组成。
你可以进行这样的操作:
选择属于一个 2 × 2 正方形的 3 个不同的单元格,并更改这些单元格中的符号(将 0 更改为1, 1 更改为 0 )。
你的任务是使表中的所有符号都等于0。您最多可以进行 nm次 操作。
你不需要最小化操作的数量。

思路

这是上一题的加强版,操作次数变为 nm 了,我上一次的代码过不去,无奈只能优化,但也只是对边界处理优化了一下,却神奇过了(神奇神奇,用xy哥的话来说那就是可蒸馏啊)
优化:边界特判的时候由看包含边界的 整个 2*2 矩形 变为 只看边界线 ,可以减少一些操作次数

代码
#include<iostream>
#include<string>
#include<map>
#include<set>
//#include<unordered_map>
#include<queue>
#include<cstdio>
#include<vector>
#include<cstring>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<fstream>
#define X first
#define Y second
#define INF 0x3f3f3f3f
#define pii pair<int, int>
//#define pdi pair<double,int>
//#define int long long 
using namespace std;
typedef long long ll;
typedef unsigned long long llu; 
const int maxn=1e5+10;
const int mod=1000000007;
int t,n,k,m,tot;
vector<int>ax;
vector<int>ay;
char a[110][110];
int check(int x,int y)
{
	int sum=0;
	for(int i=x;i<=x+1;i++)
	{
		for(int j=y;j<=y+1;j++)
		{
			if(a[i][j]=='0') 
				sum++; 
		}
	}
	return sum;
}
void check1(int x,int y)
{
	for(int i=x;i<=x+1;i++)
	{
		for(int j=y;j<=y+1;j++)
		{
			if(a[i][j]=='1')
			{
				ax.push_back(i);
				ay.push_back(j);
				a[i][j]='0';
			}
		}
	}
}
void check2(int x,int y)
{
	int flag=1;
	for(int i=x;i<=x+1;i++)
	{
		for(int j=y;j<=y+1;j++)
		{
			if(a[i][j]=='0'||a[i][j]=='1'&&flag)
			{
				if(a[i][j]=='1') flag--;
				ax.push_back(i);
				ay.push_back(j);
				if(a[i][j]=='0') a[i][j]='1';
				else a[i][j]='0';
			}
		}
	}
	check1(x,y);
}
void check3(int x,int y)
{
	int flag=2;
	for(int i=x;i<=x+1;i++)
	{
		for(int j=y;j<=y+1;j++)
		{
			if(flag&&a[i][j]=='0'||a[i][j]=='1')
			{
				if(a[i][j]=='0') flag--;
				ax.push_back(i);
				ay.push_back(j);
				if(a[i][j]=='0') a[i][j]='1';
				else a[i][j]='0';
			}
		}
	}
	check2(x,y);
}
void check0(int x,int y)
{
	int flag=3;
	for(int i=x;i<=x+1;i++)
	{
		for(int j=y;j<=y+1;j++)
		{
			if(flag)
			{
				flag--;
				ax.push_back(i);
				ay.push_back(j);
				a[i][j]='0';
			}
		}
	}
	check3(x,y);
}
int main( )
{
	ios::sync_with_stdio(false);
	cin>>t;
	while(t--)
	{
		ax.clear();
		ay.clear();
		cin>>n>>m;
		for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++) 
		    cin>>a[i][j];
		if(m&1)
		{
			for(int i=1;i<=n-1;i+=2)
			{
				int cnt=0;
				if(a[i][m]=='1')
				{
					cnt++;
					a[i][m]='0';
					ax.push_back(i);
					ay.push_back(m);
				}
				if(a[i+1][m]=='1')
				{
					cnt++;
					a[i+1][m]='0';
					ax.push_back(i+1);
					ay.push_back(m);
				}
				if(cnt==0) continue;
				else if(cnt==1)
				{
					if(a[i][m-1]=='0') a[i][m-1]='1';
			    	else a[i][m-1]='0';
					ax.push_back(i);
					ay.push_back(m-1);
					if(a[i+1][m-1]=='0') a[i+1][m-1]='1';
			    	else a[i+1][m-1]='0';
					ax.push_back(i+1);
					ay.push_back(m-1);
				}
				if(cnt==2)
				{
					if(a[i][m-1]=='0') a[i][m-1]='1';
			    	else a[i][m-1]='0';
					ax.push_back(i);
					ay.push_back(m-1);
				}
			}
		}
		if(n&1)
		{
			for(int j=1;j<=m-1;j+=2)
			{
				int cnt=0;
				if(a[n][j]=='1')
				{
					cnt++;
					a[n][j]='0';
					ax.push_back(n);
					ay.push_back(j);
				}
				if(a[n][j+1]=='1')
				{
					cnt++;
					a[n][j+1]='0';
					ax.push_back(n);
					ay.push_back(j+1);
				}
				if(cnt==0) continue;
				else if(cnt==1)
				{
					if(a[n-1][j]=='0') a[n-1][j]='1';
			    	else a[n-1][j]='0';
					ax.push_back(n-1);
					ay.push_back(j);
					if(a[n-1][j+1]=='0') a[n-1][j+1]='1';
			    	else a[n-1][j+1]='0';
					ax.push_back(n-1);
					ay.push_back(j+1);
				}
				if(cnt==2)
				{
					if(a[n-1][j]=='0') a[n-1][j]='1';
			    	else a[n-1][j]='0';
					ax.push_back(n-1);
					ay.push_back(j);
				}
			}
		}
		for(int i=1;i<=n-1;i+=2)
		{
			for(int j=1;j<=m-1;j+=2)
			{
				int sum=check(i,j);
				if(sum==4) continue; 
				else if(sum==3)
			    	check3(i,j);
			    else if(sum==2)
			    	check2(i,j);
		    	else if(sum==1)
		    		check1(i,j);
		    	else if(sum==0)
		    		check0(i,j);
			}
		}
		for(int i=1;i<=n-1;i++)
		{
			for(int j=1;j<=m-1;j++)
			{
				int sum=check(i,j);
				if(sum==4) continue; 
				else if(sum==3)
			    	check3(i,j);
			    else if(sum==2)
			    	check2(i,j);
		    	else if(sum==1)
		    		check1(i,j);
		    	else if(sum==0)
		    		check0(i,j);
			}
		}
        int len=ax.size();
		cout<<len/3<<endl; 
		for(int i=0;i<len;i+=3)
		{
			cout<<ax[i]<<' '<<ay[i]<<' '<<ax[i+1]<<' '<<ay[i+1]<<' '<<ax[i+2]<<' '<<ay[i+2]<<' '<<endl;		
		}
	}
    return 0;
}

2026年Hermes Agent与OpenClaw生产级手动部署指南 AI Agent并非即插即用的黑盒工具,而是一套需深度掌控运行时环境的智能系统。其核心原理在于模型调度、技能加载与上下文管理的协同——依赖精确的Linux发行版兼容性(如Rocky Linux源配置)、容器化运行时(Docker版本与cgroup v2支持)及安全的外部服务集成(百炼API Key动态注入)。技术价值体现在稳定性、可塑性与生产就绪性:避免因glibc版本错配导致Rust插件加载失败,杜绝镜像预装带来的ABI不兼容风险,并通过硬链接挂载、原子热重载等机制保障高并发下的低延迟响应。典型应用场景包 阅读详情

相关推荐

pgAdmin 4 服务器模式部署与生产就绪实践指南

pgAdmin 4 是 PostgreSQL 最主流的图形化管理工具,其服务器模式(Server Mode)并非简单安装,而是构建数据库治理控制平面的关键基础设施。它基于 Flask+WSGI 架构,依赖 Nginx 反向代理与 Gunicorn 应用服务器协同工作,支持 LDAP/OAuth2 企业级认证、细粒度权限控制、结构化审计日志及高并发会话管理。相比单机桌面版,服务器模式提供真正的多用户隔离、集中配置、TLS 安全传输与 CI/CD 集成能力,是金融、SaaS 等合规场景下实现数据库操作可追溯、可

cri5768的博客 711

软件项目工作量评估方法COSMIC重点笔记

若本文对你有帮助,记得点赞、关注我哟! Cosmic(Common Software Measurement International Consortium通用软件度量国际联盟)是PMO(项目管理办公室,是不同于PM项目经理的一种岗位)需要掌握的一个基础软件规模度量方法——估算功能点。 优点:简单易用;原理科学;适用范围广,应用软件与嵌入式都可;客观准确;易于扩充;适用于软件开发的各阶段。 适用于:业务应用软件;实施软件;平台软件;一些科学/工程软件。 我自学过一阵子COSMIC,学习成本很底,大

鸽子的博客 1万+

【信息科学与工程学】【数据科学】 第四十四篇 数据湖 系列二 函数库01

2. 近似最近邻搜索(ANN): 通过HNSW等图索引模型加速,模型定义为构建一个层次化导航小世界图。依赖于消息队列(Kafka/Pulsar)、分布式文件系统(HDFS/S3)的客户端及连接库。依赖专门的向量检索库(如FAISS, Milvus)。管控目标: 召回率(Recall@K) > 95%,查询延迟 < 100ms。管控目标: < 1% (核心业务字段) 或 < 5% (一般字段)依赖数据处理框架(如Spark, Pandas)的核心统计函数。,通过牺牲精确性(ANN)来换取搜索速度的大幅提升。

weixin_49199313的博客 346

快速学习COSMIC方法之二:COSMIC方法的度量过程

COSMIC方法的度量分为三个阶段:1 度量策略阶段2 映射阶段3 度量阶段在度量策略阶段,主要包括四个活动:    1)确定度量目的:为什么执行本次度量。比如你要度量一个房子的面积,是为了卖房子?是要装修?还是为了装中央空调?目的不同,度量的范围不同,度量的结果也不同。卖房子是要包含建筑面积与分摊面积的,装修房子要考虑套内面积与晾台面积,而装中央空调时只考虑套内面积,目的不同,度量的范围不同,度

麦哲思科技 1万+

MIMIC-IV数据库中患者院内死亡的单因素生存分析

目的 由易到难,对mimic-iv的查询进行实际操作,体现先前文章中提到的mimic-iv数据查询的规律。 数据分析计划 死亡,是重症患者最重要的结局指标,在MIMIC数据库中收录了院内死亡的数据,以及进出ICU的时间(和进出医院的时间),所以我们可以获得是否死亡,以及从入ICU(或入院)到死亡发生之间的时间,有了这两个指标,我们可以通过Cox单因素(参数和非参数)模型来观察ICU(和医院)内死亡的趋势,以及某个变量(比如,性别和种族等)对死亡趋势的影响,以为后续的分析奠定基础。 数据的获取 我们需要数个变

skyskytotop的博客 3185

Arduino——GY39大气压、温湿度、光照模块

前几天买东西的时候买了一个GY39,这个模块集成了温湿度,大气压,海拔,光照一体,使用起来很方面。它有两种工作模式使用串口模式时需要搭配转接板,我选择了IIC模式,看一下通信协议吧,就是关于高八位和低八位的数据。看一下接线。

戚晨夕的博客 2604

软件评估 cosmic

软件评估 cosmic

weixin_45616499的博客 2511

VSCode连接SAP ABAP开发环境

本文介绍了使用VSCode连接ABAP开发环境的详细步骤。首先通过SICF或SMICM事务码获取ABAP连接地址,然后安装ABAP remote filesystem插件。提供了两种创建连接的方法:通过命令面板逐步配置(输入服务器地址、账号、系统标识等)或直接编辑JSON配置文件。最后通过命令面板选择已创建的连接即可完成连接,连接成功后可在VSCode左侧工作区查看ABAP系统内容进行开发。JSON配置方式更为简便推荐。整个流程帮助开发者摆脱复杂的Eclipse配置,实现快速便捷的ABAP开发环境搭建。

weixin_45293769的博客 2210

COSMIC 方法 - 需求评估 度量阶段和方法的优势

然后我们可以将度量阶段的规则应用到该模型,来度量软件 FUR 的功能规模。• 对一个数据移动(新增、修改或删除)变更的规模,约定为 1CFP。(“修改”可能包括对数据移动和/或该数据组任何属性相关联的数据运算的变更)。• 一个软件块变更的规模等于其所有功能处理中新增、修改或删除的数据移动之和。• 因此,对功能处理的变更的最小规模是 1 CFP。• 软件块的规模等于其功能处理的规模的总和。• 功能处理的规模等于其数据移动的数量。软件块的功能规模等于其数据移动的数量。规模可以在不同的级别上进行汇总。

KKwan的博客 1819

【AI开源】Understand-Anything 完整使用教程(2026最新版)

Understand-Anything是一款基于交互式知识图谱的AI学习与开发平台,能够将代码库转化为可视化知识结构,支持语义搜索、上下文问答和全流程开发。核心功能包括代码知识图谱化、AI辅助学习和多编码代理集成。支持TypeScript/JavaScript、Python等多种语言,要求Node.js 20+和16GB以上内存。提供NPM、Docker和源码三种安装方式,支持增量更新和团队知识共享。与同类产品相比,在交互式图谱、语义搜索和AI集成方面更具优势。适用于代码学习、大型项目维护和团队协作等场景。

与时俱进,开放共享 7208

2025年7月5日全国青少年信息素养大赛图形化(Scratch)编程小学低年级组复赛真题+答案

2025年7月5日全国青少年信息素养大赛图形化(Scratch)编程小学低年级组复赛真题+答案

伶俐角少儿编程 898

快速学习COSMIC软件规模度量方法

COSMIC

hd12321的博客 5123

论文阅读: 2024 ICLR AutoDAN: Generating Stealthy Jailbreak Prompts on Aligned Large Language Models

AutoDAN: Generating Stealthy Jailbreak Prompts on Aligned Large Language Models这篇论文名为“AUTODAN: GENERATING STEALTHY JAILBREAK PROMPTS ON ALIGNED LARGE LANGUAGE MODELS”,主要研究大语言模型(LLMs)的越狱攻击问题,提出了一种名为AutoDAN的新方法,能自动生成隐蔽的越狱提示,具体内容如下:

CSPhD-winston的博客 1177

#658 (Div. 2) C2.Prefix Flip (Hard Version)

题目描述 This is the hard version of the problem. The difference between the versions is the constraint on n and the required number of operations. You can make hacks only if all versions of the problem are solved. There are two binary strings a and b of leng

li_wen_zhuo的博客 523

dolphinscheduler集群服务一键安装启动实现流程剖析

通过以上分析我们基本梳理清楚了整个dolphinscheduler项目的一键安装启动逻辑, 我们现在在通过一张图正好理一下整个实现流程。关于一键停止集群服务及一件查询集群各个角色服务实例运行状态的实现也都在stop-all.sh/status-all.sh及dolphinscheduler-daemon.sh这三个脚本中, 有兴趣自行研究。写这篇文章的核心目的不仅在于给大家分享如何优秀的开源项目的一键安装部署的实现过程。

最爱嫣夜来 1207

对角两对双差速轮AGV的平移、直行、转弯和原地旋转之PID控制

本示例将展示如何使用PID控制算法,控制具有对角线布置的两对双差速轮(左前和右后)的AGV,实现平移、直行、转弯和原地旋转等运动。通过对车辆的运动学和PID控制器的设计,我们可以精确地控制AGV的运动

xiaoc100200的博客 1510

Python深度学习:从入门到实战

亲爱的读者,欢迎您翻开这本书。我们即将探索的,是深度学习的宇宙——一个由数据、算法与算力构筑的奇妙世界。它既是严谨的科学,也是创造的艺术,更是一条通往未来智慧的修行之路。本书将带您从最基础的数学原理出发,亲手搭建神经网络,驾驭Transformer等前沿模型,最终将智慧转化为现实世界的价值。请放下畏惧,保持好奇。这不仅是一次知识的学习,更是一场思维的远行。来,随我一起,开启这趟非凡的旅程吧。

weixin_45747731的博客 296

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Kimi K2.5开源实战:视觉理解+代码生成+Agent一体化模型

多模态大模型正从概念走向工程落地,其核心在于能否统一处理图像理解、程序生成与任务编排三类异构能力。Kimi K2.5通过任务感知路由机制,将视觉编码、代码词法分析与Agent状态机解耦协同,在保持7B参数量级的同时实现低延迟、低显存、高鲁棒性。它不依赖超高分辨率输入,专为手机拍摄、工业反光、模糊遮挡等真实场景优化;代码生成嵌入环境约束与执行校验,直出可部署脚本;Agent框架摒弃黑盒推理,输出结构化动作指令,保障企业级可控性。本文聚焦K2.5的开源部署、提示词工程、本地化调优与行业闭环实践,覆盖制造业质检、

diaoju3333的博客 490

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Ai-Agent学习历程—— 阶段3——RAG 与记忆机制

基于学习大纲我们有了一个简单的地图,从官网的资料进行对应,主要是以下三部分过程中可以进行参考官方文档,但有一些可能会基于目前最新的资料进行适当的更改,让我们愉快的开始吧!这里为您梳理第一节:ETL 数据智能清洗与高阶分块的学习地图。本节将带您攻克数据进入向量数据库之前的“清洗、结构化解析、智能切分与父子文档关联”全流程,彻底打牢 RAG 的数据地基。以现在大模型的发展来说,200K的上下文甚至接近300K的都有,几本书是不成问题的,那切片的意义又在哪?核心原因有三个:在 RAG 系统中,用户提问后,我们不能

蓝桉 849

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

COSMIC 方法 - 需求评估 映射阶段

COSMIC 方法没有刻意度量数据运算,因为目前还没有被普遍接受的度量数据运算的方法,因此它可以与数据移动的度量相结合,生成有意义的功能规模。原则 b)和 h)告诉我们,软件的任务是响应在其功能用户的世界中发生的事件。(边界是正在度量的软件与其功能用户之间的接口。如图的实时案例,传感器可以看作是发送关于自身数据的功能用户,即功能用户扮演兴趣对象的角色,因此它将在度量策略阶段的早期被识别出来。这个图通常的解释是,事件引发功能用户生成消息(数据组),该消息由“触发输入”移动到其功能处理中,从而启动功能处理。

KKwan的博客 2475
上一篇: Binary Table (Easy Version)-(思维)
下一篇: Breaking Good(最短路+记录路径)
Cosmic_Tree
博客等级 码龄7年 134粉丝 337原创
评论 12
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值