警示自己与后人
查看原帖
警示自己与后人
519986
Luxe877楼主2023/10/30 20:44

逆天写法:

#include<bits/stdc++.h>
using namespace std;
int n;
int lock[12][12],base[12];
map<int,int> rec;
bool vis[100002];
queue<int> q;
int main()
{
	freopen("lock.in","r",stdin);
	freopen("lock.out","w",stdout);
	cin>>n;
	int x;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=5;j++)
		{
			cin>>lock[i][j];
			base[i]=base[i]*10+lock[i][j];
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<5;j++)//同时拨两位 
		{
			for(int k=1;k<=10;k++)
			{
				lock[i][j]=(lock[i][j]+1)%10;
				lock[i][j+1]=(lock[i][j+1]+1)%10;
				if(k!=10)
				{
					rec[lock[i][1]*10000+lock[i][2]*1000+lock[i][3]*100+lock[i][4]*10+lock[i][5]]++;
				}
			}
		}
		for(int j=1;j<=5;j++)//只拨一位 
		{
			for(int k=1;k<=10;k++)
			{
				lock[i][j]=(lock[i][j]+1)%10;
				if(k!=10)
				{
					rec[lock[i][1]*10000+lock[i][2]*1000+lock[i][3]*100+lock[i][4]*10+lock[i][5]]++;
				}
			}
		}
	}
	int ans=0;
	for(map<int,int>::iterator it=rec.begin();it!=rec.end();it++)
	{
		if(it->second==n)
		{
			ans++;
		}
	}
	cout<<ans;
	return 0;
}

这个代码会CE,原因是 <mutex> 头文件中有 std::lock 这个函数,改成其他名就AC了

因为这个我保龄了,下次只会写abc变量名了

2023/10/30 20:44
加载中...