专栏文章

8.20测试总结

算法·理论参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mio84end
此快照首次捕获于
2025/12/02 14:55
3 个月前
此快照最后确认于
2025/12/02 14:55
3 个月前
查看原文

8.208.20测试总结

T638487打扫卫生T638487 打扫卫生

得分:2020

应得:100100

考点:模拟

错误思路:骗分(输出10)

正确思路:从左上角查询是否有kkk*k的由"""*"组成的正方形,如果有都变为"."".",最后如果还有"""*"便失败,没有便成功

正确代码:

CPP
#include<bits/stdc++.h>
using namespace std;
char a[5005][5005];
int ans,n,m,k;
int main()
{
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++)
	{
		
		for(int j=1;j<=m;j++)
		{
			cin>>a[i][j];
		}
	}
	if(n*m<k)
	{
		cout<<"-1";
		return 0;
	}
	for(int zsx=1;zsx+k-1<= n;zsx++)
	{
		for(int zsy=1;zsy+k-1<=m;zsy++)
		{
			int yxx=zsx+k- 1;
			int yxy=zsy+k-1; 
			bool flag=1;
			bool flag1=0;
			for(int i=zsx;i<=yxx;i++)
			{
				if(flag==0)
				{
					break;
				} 
				for(int j=zsy;j<=yxy;j++)
				{
					if(a[i][j]=='*')
					{
						flag1=1 ;
					}
					if(a[i][j]!='*')
					{
						
						flag=0;	
						break;
					}	
				}	
			}
			if(flag1==1&&flag==0)
			{
				cout<<-1;
				return 0;
			}
			if(flag)
			{
				for(int i=zsx;i<=yxx;i++)
				{
					for(int j=zsy;j<=yxy;j++)
					{
						a[i][j]='.';
					}	
				}
				ans++;	
			}			
		}
	}
	cout<<ans;
	return 0 ;
}

T643658落落的去的数学题1T643658 落落的去的数学题1

得分:5050

应得:100100

考点:数学(二进制)

错误思路:模拟

正确思路:

CPP
推断公式:b-c+1

正确代码:

CPP
#include<bits/stdc++.h>
using namespace std;
int a,b,c;
int main()
{
	cin>>a>>b>>c;
	cout<<b-c+1;
	return 0;
}


T640726落落的去的围栏T640726 落落的去的围栏

得分:00

应得:100100

考点:二分

错误思路:模拟(爆00QAQQAQ

正确思路:由于可能性是镜像的,因此使用二分时间复杂度会降低(避免TLETLE

正确代码:

CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
int t,n,m,a[200005];
signed main()
{
	cin>>t;
	while(t--)
	{
		cin>>n>>m;
		for(int i=0;i<m;i++)
		{
			cin>>a[i];
		}
		sort(a,a+m);
		int ans=0;
		for(int i=1;i<n;i++)
		{
			int l=m-(lower_bound(a,a+m,i)-a);
			int r=m-(lower_bound(a,a+m,n-i)-a);
			ans+=l*r-min(l,r);
		}
		cout<<ans<<endl;
	}
	return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...