站外二题求助(主要是讲如何优化)
  • 板块题目总版
  • 楼主Dark_Star
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/12/25 19:11
  • 上次更新2023/12/25 21:37:17
查看原帖
站外二题求助(主要是讲如何优化)
1118893
Dark_Star楼主2023/12/25 19:11

卫星

粉刷匠

这两题我都用 O(n2)O(n^2) 算法(就大模拟呗)一道五个TLE,另一道三个TLE还有四个因为布尔二维数组不够而产生的RE,给大家看看我的代码:

//第一题
#include<bits/stdc++.h>
using namespace std;
int a[10001];bool f[10001];
int main(){
//	freopen("star.in","r",stdin);
//	freopen("star.out","w",stdout);
	int n,dqwz=1;cin>>n;a[1]=f[1]=1;
	for(int i=2;i<=n;i++){
		int jgs=0;
		while(jgs<i){dqwz==n?dqwz=1:dqwz++;if(!f[dqwz])jgs++;}
		a[dqwz]=i;f[dqwz]=1;
	}
	for(int i=1;i<=n;i++)cout<<a[i]<<' ';
//	fclose(stdin);
//	fclose(stdout);
}
//第二题
#include<bits/stdc++.h>
using namespace std;
bool maps[1001][100001];
int main(){
//	freopen("paint.in","r",stdin);
//	freopen("paint.out","w",stdout);
	int n,m,k,ans=0;
	scanf("%d%d%d",&n,&m,&k);
	for(int i=1;i<=k;i++){
		int x,y,z;scanf("%d%d%d",&x,&y,&z);
		for(int i=(x?n:m);i>=1;i--)maps[(x?i:y)][(x?y:i)]=z;
	}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			if(maps[i][j])ans++;
	cout<<ans;
//	fclose(stdin);
//	fclose(stdout);
}
2023/12/25 19:11
加载中...