首页 > 其他分享 >cats 的电脑中毒

cats 的电脑中毒

时间:2024-08-14 14:15:41浏览次数:13  
标签:tmp cnt min int 电脑 tot -- cats 中毒

  • 要把二进制数的“每一位”取反,用^((1<<n)-1),(~运算会得到一个负数,而且也没有取出前n位)
点击查看代码
#include <bits/stdc++.h>
using namespace std;
string s[5];
int cnt[10],tot[10];//1表示可以通过改变这一位使得tot+1
void change(int x)
{
	cnt[x]--;
	for(int i=0;i<3;i++)
	{
		if(((x>>i)&1)==1)
		{
			tot[i]++;
		}
		else
		{
			tot[i]--;
		}
	} 
	cnt[x^7]++;
}
void restore(int x)
{
	cnt[x]++;
	for(int i=0;i<3;i++)
	{
		if(((x>>i)&1)==1)
		{
			tot[i]--;
		}
		else
		{
			tot[i]++;
		}
	} 
	cnt[x^7]--;
}
int calc()
{
	while(1)
	{
		/*
		cout<<tot[0]<<' '<<tot[1]<<' '<<tot[2]<<endl;
		for(int i=1;i<7;i++)
		{
			cout<<i<<':'<<cnt[i]<<endl;
		}
		*/
		bool f=false;
		for(int i=1;i<7;i++)
		{
			if(cnt[i]>0)
			{
				int tmp=min(min(tot[0],tot[1]),tot[2]),s=tot[0]+tot[1]+tot[2];
				change(i);
				if(min(min(tot[0],tot[1]),tot[2])>tmp||min(min(tot[0],tot[1]),tot[2])==tmp&&tot[0]+tot[1]+tot[2]>s)
				{
					f=true;
					break;
				}
				restore(i);
			}
		}
		if(f==false)
		{
			for(int i=1;i<7;i++)
			{
				if(cnt[i]>0)
				{
					for(int j=i+1;j<7;j++)
					{
						if(cnt[j]>0)
						{
							int tmp=min(min(tot[0],tot[1]),tot[2]),s=tot[0]+tot[1]+tot[2];
							change(i);change(j);
							if(min(min(tot[0],tot[1]),tot[2])>tmp||min(min(tot[0],tot[1]),tot[2])==tmp&&tot[0]+tot[1]+tot[2]>s)
							{
								f=true;
								break;
							}
							restore(i);restore(j);
						}
					}
					if(f==true)
					{
						break;
					}
				}
			}
			if(f==false)
			{
				break;
			}
		}
	}
	return min(min(tot[0],tot[1]),tot[2]);
} 
int main()
{
//	freopen("1012.in","r",stdin);
//	freopen("1012.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0);
	int T;
	cin>>T;
	while(T--)
	{
		int n,ans=0;
		cin>>n;
		cin>>s[0]>>s[1]>>s[2];
		tot[0]=tot[1]=tot[2]=0;
		for(int i=1;i<7;i++)
		{
			cnt[i]=0;
		}
		for(int i=0;i<n;i++)
		{
			if(s[0][i]==s[1][i]&&s[1][i]==s[2][i])
			{
				ans++;
			}
			else
			{
				cnt[(s[2][i]-'0')*4+(s[1][i]-'0')*2+s[0][i]-'0']++;
				for(int j=0;j<3;j++)
				{
					tot[j]+=(s[j][i]=='0');
				}
			}
		}
		cout<<ans+calc()<<endl;
	}
	return 0;
}

标签:tmp,cnt,min,int,电脑,tot,--,cats,中毒
From: https://www.cnblogs.com/watersail/p/18358886

相关文章

  • 电脑怎么设置禁止访问网页|深度干货!0基础也能懂!
    在一个忙碌的下午,人力资源部的张莉正坐在她的办公桌前,盯着电脑屏幕上的报表。突然,她的目光不经意间扫到了隔壁工位的小王,只见他正津津有味地浏览着某购物网站,完全沉浸在自己的小世界里。张莉心中不禁有些担忧,毕竟,在工作时间上网闲逛不仅影响工作效率,还可能带来网络安全风险。......
  • 2024“钉耙编程”中国大学生算法设计超级联赛(8)1006 cats 的最小生成树
    题目大意:给出有\(n\)个点\(m\)条边的图,接下来进行若干次操作,每次操作取出当前图的最小生成树,然后删去这些构成最小生成树的边,知道该图不连通,输出每条边在第几次操作时被删除思路:由于构成最小生成树的边数是\(n-1\)条边,所以最多操作次数为\(\lfloor\frac{m}{n-1}\rfloor\),每次......
  • 手机上怎么用电脑 -极光云
    家里只有台式机?出门没法带电脑?我们怎么才能只用手机来使用电脑呢.其实很简单,只需要你去找一台免费云电脑.这里我推荐极光云美好未来云端起航-Aurora极光云(zcaurora.com)远程软件:Microsoft远程桌面(MicrosoftRemoteDesktop)安卓手机只需要在浏览器上搜索下载即可。苹果用户......
  • 电脑提示缺失highgui100.dll怎么办?dll的修复指南
    在使用某些应用程序或游戏时,您可能会遇到系统提示“找不到highgui100.dll”或“highgui100.dll缺失”的错误信息。这个错误通常意味着您的系统中缺少了一个重要的动态链接库(DLL)文件,而这个文件对于程序的正常运行是必要的。以下是几个简单步骤来帮助您解决这个问题:1.确认文件......
  • cats的二分答案
    可以证明在k次二分后区间长度最多只有两种,且差最多为1(符合直觉的结论)可以将二分视为对数的划分,而与l和r的取值无关用unordered_map时常会出现奇怪的问题,改成map就好了点击查看代码#include<bits/stdc++.h>usingnamespacestd;longlongK;map<longlong,longlong>q[1......
  • [题解 hduoj-7522] 2024HDU 暑假多校7 - cats 的最小生成树
    原题链接题意有一个有重边的无向图,每次找到它的最小生成树,并删除生成树的边,直到不存在最小生成树,问被每条边在第几次被删除.思路考虑用类似Kruskal算法,但是是遍历一遍所有边,同时处理出来所有的生成树.具体这样做:如Kruskal一样,把所有边按边权排序,......
  • 开发效率翻倍攻略!大学生电脑小白管理秘籍,资料秒搜技巧大公开!C盘满了怎么办?如何快速安
    如何正确管理自己的第一台电脑?大一新生如何管理自己的电脑?老鸟如何追求快捷操作电脑?文章目录如何正确管理自己的第一台电脑?大一新生如何管理自己的电脑?老鸟如何追求快捷操作电脑?前言初级基础分区操作分区规律动态磁盘用户数据变更磁盘文件清理/C盘文件清理常见网络问题......
  • 想玩Steam的《黑神话:悟空》但是电脑配置不够怎么办?试试ToDesk云电脑
    小编注意到,不少游戏博主在试玩《黑神话:悟空》之后纷纷感慨国产游戏之光要来了,是好玩的!这是一款以中国神话为背景的动作角色扮演游戏,游戏中,玩家将扮演一位“天命人”,为了探寻昔日传说的真相,踏上一条充满危险与惊奇的西游之路。在亲自试玩过程几小时的流程中,看到有十多种敌人,遇......
  • 电脑弹窗“找不到libmmd.dll文件”怎么处理?Win11系统缺少libmmd.dll文件的修复方法一
    当电脑弹窗提示“找不到libmmd.dll文件”时,有几种可行的修复方法。可以在网上搜索该文件并下载,将其放置到正确的系统目录中。也可以通过运行系统文件检查工具,对缺失的文件进行扫描和修复,恢复系统的正常运行。本篇将为大家带来电脑弹窗“找不到libmmd.dll文件”的内容,感兴趣的小......
  • 电脑外接设备管理软件有哪些(三款USB外设管理软件推荐)
    “小张,你上次用U盘拷贝资料时,有没有担心过数据安全问题?”“是啊,李姐,我总感觉用U盘传文件不太放心,万一数据被误删或者泄露就麻烦了。”正是这样的担忧,促使了电脑外接设备管理软件的出现。这些软件通过提供设备识别、访问控制、数据加密等功能,为企业的数据安全保驾护航。本......