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

AcWing 6138 奶牛体检

题目:选择a的一个区间并反转该区间(可以选择大小为1的区间),使得a与b恰有0~n个元素相同,有几种不同区间的选择方法

思路:

 原本暴力n^2枚举区间,再n统计ab是否相等,总n^3,超时;

优化:枚举中点,从中点向两边扩展,扩展过程中重复利用已经反转过的元素,只需再统计两边是否一样并计算贡献即可




const int N = 7500 + 10,T = 20;

int n;
LL a[N],b[N],cnt[N];//cnt记录0~n头奶牛被检查的不同方案


void solve()
{
	cin >> n;
	for (int i = 1;i <= n;i ++) cin >> a[i];
	for (int i = 1;i <= n;i ++) cin >> b[i];
	
	LL ans = 0;
	//统计初始有多少被检查
	for (int i = 1;i <= n;i ++) 
		if (a[i] == b[i]) 
			ans ++;
	
	for (int i = 1;i <= n;i ++)//枚举中点
		for (int j = 0;j <= 1;j ++)//枚举奇数长度还是偶数长度
		{
			LL tmp = ans;	//反转前保证初始情况	
			for (int l = i,r = i + j;l >= 1 && r <= n;l --,r ++)
			{
				//反转
				if (a[l] == b[l]) tmp --;
				if (a[r] == b[r]) tmp --;
		
				if (a[l] == b[r]) tmp ++;
				if (a[r] == b[l]) tmp ++;
				
				cnt[tmp] ++;
			}
		}
		
	for (int i = 0;i <= n;i ++) cout << cnt[i] << endl;
	
}




 


http://www.kler.cn/a/570910.html

相关文章:

  • 长时间目标跟踪算法(3)-GlobalTrack:A Simple and Strong Baseline for Long-termTracking
  • SOUI基于Zint生成EAN码
  • 详解DeepSeek模型底层原理及和ChatGPT区别点
  • VMware虚拟机IP配置
  • 2.css简介
  • VUE表单项无法重置的问题
  • ### **Android核心系统服务深度解析(AMS/ATMS/WMS/DMS)**
  • 注意力机制详解笔记 Attention is all I donot understand!
  • 机试题——通讯录合并
  • 基于值函数的强化学习算法之SARSA详解
  • 字节跳动发布 Trae AI IDE!支持 DeepSeek R1 V3,AI 编程新时代来了!
  • spark 常见操作命令
  • 【三.大模型实战应用篇】【7.自然语言转SQL升级版:更智能的查询生成】
  • 蓝队学习一
  • leetcode 138. 随机链表的复制
  • 基于Servlet + JSP 的药店管理系统
  • Elasticsearch简单学习
  • AcWing 蓝桥杯集训·每日一题2025·5439. 农夫约翰真的种地
  • 如何升级Python版本。以下是详细的步骤和注意事项:检查当前Python版本:在命令行或终端中输入以下命令来查看当前安装的Python版本: bash复制代
  • 5.Linux配置虚拟机